module Main where import Data.ByteString.Char8 (pack, unpack) import System.USB.IDDB import System.USB.IDDB.LinuxUsbIdRepo import Text.Printf main :: IO () main = do -- Load a snapshot from the linux-usb.sourceforget.net database. db <- staticDb -- Print the name of vendor 0x1d6b putStrLn $ maybe "unknown VID!" unpack $ vendorName db 0x1d6b -- Print the ID of "Linux Foundation" putStrLn $ maybe "unknown vendor name!" (printf "0x%04x") $ vendorId db (pack "Linux Foundation") -- Print the name of the product with ID 0x0101 from the -- vendor with ID 0x1d6b. putStrLn $ maybe "unknown PID!" unpack $ productName db 0x1d6b 0x0101 -- Print the ID of the product with the name "Audio Gadget" -- from the vendor with ID 0x1d6b. putStrLn $ maybe "unknown product name!" (printf "0x%04x") $ productId db 0x1d6b (pack "Audio Gadget")