{-| A database of USB identifiers. Databases with vendor names and identifiers can be loaded from string, file or directly from or . Example usage: @ 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.org 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\") @ -} module System.USB.IDDB ( -- *Types IDDB , VendorID, VendorName , ProductID, ProductName , ClassID, ClassName , SubClassID, SubClassName , ProtocolID, ProtocolName , emptyDb -- *Query database , vendorName , vendorId , productName , productId , className , subClassName , protocolName ) where import System.USB.IDDB.Base