packages feed

usb-id-database-0.2: example.hs

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")