usb-enumerator 0.1.0.3 → 0.2
raw patch · 2 files changed
+57/−52 lines, 2 filesdep +monad-peeldep −MonadCatchIO-transformersdep −MonadCatchIO-transformers-foreigndep ~iteratee
Dependencies added: monad-peel
Dependencies removed: MonadCatchIO-transformers, MonadCatchIO-transformers-foreign
Dependency ranges changed: iteratee
Files
System/USB/IO/Synchronous/Enumerator.hs view
@@ -22,45 +22,50 @@ -------------------------------------------------------------------------------- -- from base:-import Prelude ( fromInteger, fromIntegral )-import Data.Function ( ($) )-import Data.Word ( Word8 )-import Data.Maybe ( Maybe(Nothing, Just) )-import Control.Monad ( return, (>>=), fail )-import Foreign.Storable ( peek )-import Foreign.Ptr ( castPtr )+import Prelude ( fromIntegral )+import Data.Function ( ($) )+import Data.Word ( Word8 )+import Data.Maybe ( Maybe(Nothing, Just) )+import Control.Monad ( return )+import Foreign.Storable ( peek )+import Foreign.Ptr ( castPtr )+import Foreign.Marshal.Alloc ( alloca, allocaBytes ) +#if __GLASGOW_HASKELL__ < 701+import Prelude ( fromInteger )+import Control.Monad ( (>>=), fail )+#endif+ -- from base-unicode-symbols:-import Data.Eq.Unicode ( (≡), (≢) )-import Data.Bool.Unicode ( (∧) )+import Data.Eq.Unicode ( (≡), (≢) )+import Data.Bool.Unicode ( (∧) ) -- from bindings-libusb:-import Bindings.Libusb ( c'libusb_bulk_transfer, c'libusb_interrupt_transfer- , c'LIBUSB_SUCCESS, c'LIBUSB_ERROR_TIMEOUT- )+import Bindings.Libusb ( c'libusb_bulk_transfer+ , c'libusb_interrupt_transfer+ , c'LIBUSB_SUCCESS+ , c'LIBUSB_ERROR_TIMEOUT+ ) -- from transformers:-import Control.Monad.IO.Class ( liftIO )---- from MonadCatchIO-transformers:-import Control.Monad.CatchIO ( MonadCatchIO )+import Control.Monad.IO.Class ( liftIO ) --- from MonadCatchIO-transformers-foreign:-import Control.Monad.CatchIO.Foreign ( alloca, allocaBytes )+-- from monad-peel:+import Control.Monad.IO.Peel ( MonadPeelIO, liftIOOp ) -- from usb:-import System.USB.DeviceHandling ( DeviceHandle )-import System.USB.Descriptors ( EndpointAddress )-import System.USB.IO.Synchronous ( Timeout, Size )+import System.USB.DeviceHandling ( DeviceHandle )+import System.USB.Descriptors ( EndpointAddress )+import System.USB.IO.Synchronous ( Timeout, Size ) -import System.USB.Unsafe ( C'TransferFunc- , getDevHndlPtr- , marshalEndpointAddress- , convertUSBException- )+import System.USB.Unsafe ( C'TransferFunc+ , getDevHndlPtr+ , marshalEndpointAddress+ , convertUSBException+ ) #ifdef __HADDOCK__-import System.USB.Descriptors ( maxPacketSize, endpointMaxPacketSize )+import System.USB.Descriptors ( maxPacketSize, endpointMaxPacketSize ) #endif #if MIN_VERSION_iteratee(0,4,0)@@ -71,23 +76,23 @@ import Data.NullPoint ( NullPoint(empty) ) -- from base:-import Control.Exception ( toException )+import Control.Exception ( toException ) -- from base-unicode-symbols:-import Data.Function.Unicode ( (∘) )+import Data.Function.Unicode ( (∘) ) #else -- from iteratee:-import Data.Iteratee.Base ( EnumeratorGM- , StreamG(Chunk)- , IterGV(Done, Cont)- , runIter- , enumErr- , throwErr- )-import Data.Iteratee.Base.StreamChunk ( ReadableChunk(readFromPtr) )+import Data.Iteratee.Base ( EnumeratorGM+ , StreamG(Chunk)+ , IterGV(Done, Cont)+ , runIter+ , enumErr+ , throwErr+ )+import Data.Iteratee.Base.StreamChunk ( ReadableChunk(readFromPtr) ) -- from base:-import Text.Show ( show )+import Text.Show ( show ) #endif @@ -95,7 +100,7 @@ -- Enumerators -------------------------------------------------------------------------------- #if MIN_VERSION_iteratee(0,4,0)-enumReadBulk ∷ (ReadableChunk s Word8, NullPoint s, MonadCatchIO m)+enumReadBulk ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m) ⇒ DeviceHandle -- ^ A handle for the device to communicate with. → EndpointAddress -- ^ The address of a valid 'In' and 'Bulk' -- endpoint to communicate with. Make sure the@@ -111,7 +116,7 @@ → Enumerator s m α enumReadBulk = enumRead c'libusb_bulk_transfer -enumReadInterrupt ∷ (ReadableChunk s Word8, NullPoint s, MonadCatchIO m)+enumReadInterrupt ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m) ⇒ DeviceHandle -- ^ A handle for the device to communicate -- with. → EndpointAddress -- ^ The address of a valid 'In' and@@ -133,7 +138,7 @@ -------------------------------------------------------------------------------- -enumRead ∷ (ReadableChunk s Word8, NullPoint s, MonadCatchIO m)+enumRead ∷ (ReadableChunk s Word8, NullPoint s, MonadPeelIO m) ⇒ C'TransferFunc → ( DeviceHandle → EndpointAddress → Size@@ -144,8 +149,8 @@ endpoint chunkSize timeout → \iter →- alloca $ \transferredPtr →- allocaBytes chunkSize $ \dataPtr →+ liftIOOp alloca $ \transferredPtr →+ liftIOOp (allocaBytes chunkSize) $ \dataPtr → let loop i = runIter i idoneM on_cont on_cont _ (Just e) = return $ throwErr e on_cont k Nothing = do@@ -170,7 +175,7 @@ -------------------------------------------------------------------------------- #else-enumReadBulk ∷ (ReadableChunk s Word8, MonadCatchIO m)+enumReadBulk ∷ (ReadableChunk s Word8, MonadPeelIO m) ⇒ DeviceHandle -- ^ A handle for the device to communicate with. → EndpointAddress -- ^ The address of a valid 'In' and 'Bulk' -- endpoint to communicate with. Make sure the@@ -186,7 +191,7 @@ → EnumeratorGM s Word8 m α enumReadBulk = enumRead c'libusb_bulk_transfer -enumReadInterrupt ∷ (ReadableChunk s Word8, MonadCatchIO m)+enumReadInterrupt ∷ (ReadableChunk s Word8, MonadPeelIO m) ⇒ DeviceHandle -- ^ A handle for the device to communicate -- with. → EndpointAddress -- ^ The address of a valid 'In' and@@ -208,7 +213,7 @@ -------------------------------------------------------------------------------- -enumRead ∷ (ReadableChunk s Word8, MonadCatchIO m)+enumRead ∷ (ReadableChunk s Word8, MonadPeelIO m) ⇒ C'TransferFunc → ( DeviceHandle → EndpointAddress → Size@@ -219,8 +224,8 @@ endpoint chunkSize timeout → \iter →- alloca $ \transferredPtr →- allocaBytes chunkSize $ \dataPtr →+ liftIOOp alloca $ \transferredPtr →+ liftIOOp (allocaBytes chunkSize) $ \dataPtr → let loop i1 = do err ← liftIO $ c'transfer (getDevHndlPtr devHndl) (marshalEndpointAddress endpoint)
usb-enumerator.cabal view
@@ -1,5 +1,5 @@ name: usb-enumerator-version: 0.1.0.3+version: 0.2 cabal-version: >=1.6 build-type: Custom license: BSD3@@ -18,12 +18,12 @@ Library GHC-Options: -Wall+ build-depends: base >= 4 && < 4.4 , base-unicode-symbols >= 0.1.1 && < 0.3 , bindings-libusb >= 1.3 && < 1.5- , iteratee >= 0.3.5 && < 0.5+ , iteratee >= 0.3.5 && < 0.6 , transformers >= 0.2 && < 0.3- , MonadCatchIO-transformers >= 0.2 && < 0.3- , MonadCatchIO-transformers-foreign >= 0.1 && < 0.2+ , monad-peel >= 0.1 && < 0.2 , usb >= 0.5 && < 0.7 exposed-modules: System.USB.IO.Synchronous.Enumerator