{-| A database of USB identifiers. Databases with vendor names and identifiers can be loaded from string or file. To get the most up-to-date database download the files directly from or . Each database's module contains an URL to the database file. Example usage: @ import System.USB.IDDB import System.USB.IDDB.LinuxUsbIdRepo (staticDb) import Text.Printf (printf) main :: IO () main = do -- Load a snapshot from the linux-usb.org database. db <- 'staticDb' @ @ -- Print the name of vendor 0x1d6b putStrLn $ maybe \"unknown VID!\" id $ 'vendorName' db 0x1d6b @ @ -- Print the ID of \"Linux Foundation\" putStrLn $ maybe \"unknown vendor name!\" ('printf' \"0x%04x\") $ 'vendorId' db \"Linux Foundation\" @ @ -- Print the name of the product with ID 0x0101 from the -- vendor with ID 0x1d6b. putStrLn $ maybe \"unknown PID!\" id $ '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 \"Audio Gadget\" @ -} module System.USB.IDDB ( -- *Types IDDB , emptyDb -- *Query database , vendorName , vendorId , productName , productId , className , subClassName , protocolName , audioClassTerminalTypeName , videoClassTerminalTypeName , hidDescTypeName , hidDescItemName , hidDescCountryCodeName , hidUsagePageName , hidUsageName , physicalDescBiasName , physicalDescItemName , langName , subLangName ) where import System.USB.IDDB.Base