packages feed

usb-id-database-0.4.0.3: example.hs

module Main where

import System.USB.IDDB
import qualified System.USB.IDDB.UsbDotOrg      as U (staticDb)
import qualified System.USB.IDDB.LinuxUsbIdRepo as L (staticDb)
import Text.Printf (printf)


main :: IO ()
main = do putStrLn "Data from usb.org:"
          example =<< U.staticDb
          putStrLn ""
          putStrLn "Data from linux-usb.org:"
          example =<< L.staticDb

example :: IDDB -> IO ()
example db =
  do -- 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"