packages feed

usb-1.3.0.3: usb.cabal

name:          usb
version:       1.3.0.3
cabal-version: >=1.6
build-type:    Custom
license:       BSD3
license-file:  LICENSE
copyright:     2009–2014 Bas van Dijk <v.dijk.bas@gmail.com>
author:        Bas van Dijk <v.dijk.bas@gmail.com>
maintainer:    Bas van Dijk <v.dijk.bas@gmail.com>
homepage:      http://basvandijk.github.com/usb
bug-reports:   https://github.com/basvandijk/usb/issues
category:      System, Hardware
synopsis:      Communicate with USB devices
description:   This library enables you to communicate with USB devices from
               userspace. It is implemented as a high-level wrapper around
               @bindings-libusb@
               (<http://hackage.haskell.org/package/bindings-libusb>)
               which is a low-level binding to the C library:
               @libusb-1.*@ (<http://libusb.org/>).
               .
               The USB transfer functions in this library have a simple synchronous
               interface (they block) but are implemented using the @libusb@
               asynchronous interface. They integrate with the GHC event manager
               making them efficient (no busy-loops) and interruptible (throwing an
               exception to the thread executing a transfer immediately cancels the
               transfer).
               .
               If the GHC event manager is not available (because you're either not
               using GHC or because you're on Windows) the library degrades
               gracefully to the @libusb@ synchronous implementation.
               .
               This documentation assumes knowledge of how to operate USB
               devices from a software standpoint (descriptors, configurations,
               interfaces, endpoints, control\/bulk\/interrupt\/isochronous
               transfers, etc). Full information can be found in the
               USB 2.0 specification (<http://www.usb.org/developers/docs/>).
               .
               For an example how to use this library see the
               @usb-example@ package (<https://github.com/basvandijk/usb-example>)
               or the @ls-usb@ package (<http://hackage.haskell.org/package/ls-usb>).
               .
               Besides this API documentation the following sources might be
               interesting:
               .
               * The @libusb 1.0@ documentation (<http://libusb.sourceforge.net/api-1.0/>).
               .
               * The USB 2.0 specification (<http://www.usb.org/developers/docs/>).
               .
               * The @bindings-libusb@ documentation (<http://hackage.haskell.org/package/bindings-libusb>).
               .
               * \"USB in a NutShell\" (<http://www.beyondlogic.org/usbnutshell/usb1.htm>).


extra-source-files: README.markdown, Changelog, default.nix, shell.nix

source-repository head
  Type:     git
  Location: git://github.com/basvandijk/usb.git

Library
  GHC-Options: -Wall

  build-depends: base                 >= 4     && < 4.9
               , bindings-libusb      >= 1.4.5 && < 1.5
               , bytestring           >= 0.9   && < 0.11
               , text                 >= 0.5   && < 1.3
               , vector               >= 0.5   && < 0.11

  exposed-modules: System.USB
                   System.USB.Initialization
                   System.USB.Misc
                   System.USB.Enumeration
                   System.USB.DeviceHandling
                   System.USB.Descriptors
                   System.USB.IO
                   System.USB.IO.StandardDeviceRequests
                   System.USB.Exceptions
  other-modules: System.USB.Base, Utils

  if !os(windows) && impl(ghc>7)
    cpp-options: -DHAS_EVENT_MANAGER
    exposed-modules: System.USB.IO.Transfers
    other-modules: Poll, Event, SystemEventManager
    build-depends: containers >= 0.1 && < 0.6

  if impl(ghc >= 7.2.1)
    cpp-options: -DGENERICS
    build-depends: ghc-prim >= 0.2 && < 0.5