{-| A database of USB identifiers.
Databases with vendor names and identifiers can be loaded from string,
file or directly from <http://www.usb.org> or <http://linux-usb.org>.
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
, ID, Name
, 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