bindings-libusb 1.4.4.1 → 1.4.5.0
raw patch · 9 files changed
+146/−5 lines, 9 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Bindings.Libusb.DeviceHotplugEventNotification: c'LIBUSB_HOTPLUG_ENUMERATE :: Num a => a
+ Bindings.Libusb.DeviceHotplugEventNotification: c'LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED :: Num a => a
+ Bindings.Libusb.DeviceHotplugEventNotification: c'LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT :: Num a => a
+ Bindings.Libusb.DeviceHotplugEventNotification: c'LIBUSB_HOTPLUG_MATCH_ANY :: Num a => a
+ Bindings.Libusb.DeviceHotplugEventNotification: c'libusb_hotplug_deregister_callback :: Ptr C'libusb_context -> C'libusb_hotplug_callback_handle -> IO ()
+ Bindings.Libusb.DeviceHotplugEventNotification: c'libusb_hotplug_register_callback :: Ptr C'libusb_context -> C'libusb_hotplug_event -> C'libusb_hotplug_flag -> CInt -> CInt -> CInt -> C'libusb_hotplug_callback_fn -> Ptr () -> Ptr C'libusb_hotplug_callback_handle -> IO CInt
+ Bindings.Libusb.DeviceHotplugEventNotification: mK'libusb_hotplug_callback_fn :: C'libusb_hotplug_callback_fn -> (Ptr C'libusb_context -> Ptr C'libusb_device -> C'libusb_hotplug_event -> Ptr () -> IO CInt)
+ Bindings.Libusb.DeviceHotplugEventNotification: mk'libusb_hotplug_callback_fn :: (Ptr C'libusb_context -> Ptr C'libusb_device -> C'libusb_hotplug_event -> Ptr () -> IO CInt) -> IO C'libusb_hotplug_callback_fn
+ Bindings.Libusb.DeviceHotplugEventNotification: p'libusb_hotplug_deregister_callback :: FunPtr (Ptr C'libusb_context -> C'libusb_hotplug_callback_handle -> IO ())
+ Bindings.Libusb.DeviceHotplugEventNotification: p'libusb_hotplug_register_callback :: FunPtr (Ptr C'libusb_context -> C'libusb_hotplug_event -> C'libusb_hotplug_flag -> CInt -> CInt -> CInt -> C'libusb_hotplug_callback_fn -> Ptr () -> Ptr C'libusb_hotplug_callback_handle -> IO CInt)
+ Bindings.Libusb.DeviceHotplugEventNotification: type C'libusb_hotplug_callback_fn = FunPtr (Ptr C'libusb_context -> Ptr C'libusb_device -> C'libusb_hotplug_event -> Ptr () -> IO CInt)
+ Bindings.Libusb.DeviceHotplugEventNotification: type C'libusb_hotplug_callback_handle = CInt
+ Bindings.Libusb.DeviceHotplugEventNotification: type C'libusb_hotplug_event = CUInt
+ Bindings.Libusb.DeviceHotplugEventNotification: type C'libusb_hotplug_flag = CUInt
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BM_LPM_SUPPORT :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BM_LTM_SUPPORT :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BT_CONTAINER_ID :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BT_SS_USB_DEVICE_CAPABILITY :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BT_USB_2_0_EXTENSION :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_FULL_SPEED_OPERATION :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_HIGH_SPEED_OPERATION :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_LOW_SPEED_OPERATION :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SPEED_FULL :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SPEED_HIGH :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SPEED_LOW :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SPEED_SUPER :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SPEED_UNKNOWN :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'LIBUSB_SUPER_SPEED_OPERATION :: Num a => a
+ Bindings.Libusb.HandlingAndEnumeration: c'libusb_get_device_speed :: Ptr C'libusb_device -> IO CInt
+ Bindings.Libusb.HandlingAndEnumeration: c'libusb_get_parent :: Ptr C'libusb_device -> IO (Ptr C'libusb_device)
+ Bindings.Libusb.HandlingAndEnumeration: c'libusb_get_port_number :: Ptr C'libusb_device -> IO Word8
+ Bindings.Libusb.HandlingAndEnumeration: c'libusb_get_port_numbers :: Ptr C'libusb_device -> Ptr Word8 -> CInt -> IO CInt
+ Bindings.Libusb.HandlingAndEnumeration: c'libusb_set_auto_detach_kernel_driver :: Ptr C'libusb_device_handle -> CInt -> IO CInt
+ Bindings.Libusb.HandlingAndEnumeration: p'libusb_get_device_speed :: FunPtr (Ptr C'libusb_device -> IO CInt)
+ Bindings.Libusb.HandlingAndEnumeration: p'libusb_get_parent :: FunPtr (Ptr C'libusb_device -> IO (Ptr C'libusb_device))
+ Bindings.Libusb.HandlingAndEnumeration: p'libusb_get_port_number :: FunPtr (Ptr C'libusb_device -> IO Word8)
+ Bindings.Libusb.HandlingAndEnumeration: p'libusb_get_port_numbers :: FunPtr (Ptr C'libusb_device -> Ptr Word8 -> CInt -> IO CInt)
+ Bindings.Libusb.HandlingAndEnumeration: p'libusb_set_auto_detach_kernel_driver :: FunPtr (Ptr C'libusb_device_handle -> CInt -> IO CInt)
+ Bindings.Libusb.HandlingAndEnumeration: type C'libusb_bos_type = CUInt
+ Bindings.Libusb.HandlingAndEnumeration: type C'libusb_speed = CUInt
+ Bindings.Libusb.HandlingAndEnumeration: type C'libusb_ss_usb_device_capability_attributes = CUInt
+ Bindings.Libusb.HandlingAndEnumeration: type C'libusb_supported_speed = CUInt
+ Bindings.Libusb.HandlingAndEnumeration: type C'libusb_usb_2_0_extension_attributes = CUInt
+ Bindings.Libusb.InitializationDeinitialization: C'libusb_version :: Word16 -> Word16 -> Word16 -> Word16 -> CString -> CString -> C'libusb_version
+ Bindings.Libusb.InitializationDeinitialization: c'LIBUSB_LOG_LEVEL_DEBUG :: Num a => a
+ Bindings.Libusb.InitializationDeinitialization: c'LIBUSB_LOG_LEVEL_ERROR :: Num a => a
+ Bindings.Libusb.InitializationDeinitialization: c'LIBUSB_LOG_LEVEL_INFO :: Num a => a
+ Bindings.Libusb.InitializationDeinitialization: c'LIBUSB_LOG_LEVEL_NONE :: Num a => a
+ Bindings.Libusb.InitializationDeinitialization: c'LIBUSB_LOG_LEVEL_WARNING :: Num a => a
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_get_version :: IO (Ptr C'libusb_version)
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'describe :: C'libusb_version -> CString
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'major :: C'libusb_version -> Word16
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'micro :: C'libusb_version -> Word16
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'minor :: C'libusb_version -> Word16
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'nano :: C'libusb_version -> Word16
+ Bindings.Libusb.InitializationDeinitialization: c'libusb_version'rc :: C'libusb_version -> CString
+ Bindings.Libusb.InitializationDeinitialization: data C'libusb_version
+ Bindings.Libusb.InitializationDeinitialization: instance Eq C'libusb_version
+ Bindings.Libusb.InitializationDeinitialization: instance Show C'libusb_version
+ Bindings.Libusb.InitializationDeinitialization: instance Storable C'libusb_version
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_get_version :: FunPtr (IO (Ptr C'libusb_version))
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'describe :: Ptr (C'libusb_version) -> Ptr (CString)
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'major :: Ptr (C'libusb_version) -> Ptr (Word16)
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'micro :: Ptr (C'libusb_version) -> Ptr (Word16)
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'minor :: Ptr (C'libusb_version) -> Ptr (Word16)
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'nano :: Ptr (C'libusb_version) -> Ptr (Word16)
+ Bindings.Libusb.InitializationDeinitialization: p'libusb_version'rc :: Ptr (C'libusb_version) -> Ptr (CString)
+ Bindings.Libusb.InitializationDeinitialization: type C'libusb_log_level = CUInt
+ Bindings.Libusb.Miscellaneous: c'LIBUSB_CAP_HAS_CAPABILITY :: Num a => a
+ Bindings.Libusb.Miscellaneous: c'LIBUSB_CAP_HAS_HID_ACCESS :: Num a => a
+ Bindings.Libusb.Miscellaneous: c'LIBUSB_CAP_HAS_HOTPLUG :: Num a => a
+ Bindings.Libusb.Miscellaneous: c'LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER :: Num a => a
+ Bindings.Libusb.Miscellaneous: c'libusb_has_capability :: C'libusb_capability -> CInt
+ Bindings.Libusb.Miscellaneous: p'libusb_has_capability :: FunPtr (C'libusb_capability -> CInt)
+ Bindings.Libusb.Miscellaneous: type C'libusb_capability = CUInt
+ Bindings.Libusb.PollingAndTiming: c'libusb_handle_events_completed :: Ptr C'libusb_context -> Ptr CInt -> IO CInt
+ Bindings.Libusb.PollingAndTiming: c'libusb_handle_events_timeout_completed :: Ptr C'libusb_context -> Ptr C'timeval -> Ptr CInt -> IO CInt
+ Bindings.Libusb.PollingAndTiming: p'libusb_handle_events_completed :: FunPtr (Ptr C'libusb_context -> Ptr CInt -> IO CInt)
+ Bindings.Libusb.PollingAndTiming: p'libusb_handle_events_timeout_completed :: FunPtr (Ptr C'libusb_context -> Ptr C'timeval -> Ptr CInt -> IO CInt)
- Bindings.Libusb.HandlingAndEnumeration: type C'ssize_t = CInt
+ Bindings.Libusb.HandlingAndEnumeration: type C'ssize_t = Int64
Files
- bindings-libusb.cabal +4/−3
- default.nix +15/−0
- shell.nix +19/−0
- src/Bindings/Libusb.hs +3/−1
- src/Bindings/Libusb/DeviceHotplugEventNotification.hsc +42/−0
- src/Bindings/Libusb/HandlingAndEnumeration.hsc +32/−0
- src/Bindings/Libusb/InitializationDeinitialization.hsc +18/−0
- src/Bindings/Libusb/Miscellaneous.hsc +9/−1
- src/Bindings/Libusb/PollingAndTiming.hsc +4/−0
bindings-libusb.cabal view
@@ -1,5 +1,5 @@ name: bindings-libusb-version: 1.4.4.1+version: 1.4.5.0 cabal-version: >= 1.6 license: BSD3 license-file: LICENSE@@ -22,7 +22,7 @@ . <http://hackage.haskell.org/package/usb> -extra-source-files: README.markdown+extra-source-files: README.markdown, default.nix, shell.nix source-repository head Type: git@@ -35,6 +35,7 @@ bindings-DSL >= 1.0.15 && < 1.1 exposed-modules: Bindings.Libusb+ Bindings.Libusb.DeviceHotplugEventNotification Bindings.Libusb.Asynchronous Bindings.Libusb.Descriptors Bindings.Libusb.HandlingAndEnumeration@@ -50,4 +51,4 @@ extra-libraries: libusb-1.0 cc-options: -DBINDINGS_STDCALLCONV else- pkgconfig-depends: libusb-1.0 >= 1.0.5+ pkgconfig-depends: libusb-1.0 >= 1.0.16
+ default.nix view
@@ -0,0 +1,15 @@+{ cabal, bindingsDSL, libusb1 }:++cabal.mkDerivation (self: {+ pname = "bindings-libusb";+ version = "1.4.5.0";+ src = ./.;+ buildDepends = [ bindingsDSL ];+ pkgconfigDepends = [ libusb1 ];+ meta = {+ homepage = "https://github.com/basvandijk/bindings-libusb";+ description = "Low level bindings to libusb";+ license = self.stdenv.lib.licenses.bsd3;+ platforms = self.ghc.meta.platforms;+ };+})
+ shell.nix view
@@ -0,0 +1,19 @@+let+ pkgs = import <nixpkgs> {};+ haskellPackages = pkgs.haskellPackages.override {+ extension = self: super: {+ bindingsLibusb = self.callPackage ./. {};+ };+ };++in pkgs.myEnvFun {+ name = haskellPackages.bindingsLibusb.name;+ buildInputs = [+ pkgs.pkgconfig+ pkgs.libusb1+ (haskellPackages.ghcWithPackages (hs: ([+ hs.cabalInstall+ hs.hscolour+ ] ++ hs.bindingsLibusb.propagatedNativeBuildInputs)))+ ];+ }
src/Bindings/Libusb.hs view
@@ -1,5 +1,6 @@ module Bindings.Libusb- ( module Bindings.Libusb.Asynchronous+ ( module Bindings.Libusb.DeviceHotplugEventNotification+ , module Bindings.Libusb.Asynchronous , module Bindings.Libusb.Descriptors , module Bindings.Libusb.HandlingAndEnumeration , module Bindings.Libusb.InitializationDeinitialization@@ -8,6 +9,7 @@ , module Bindings.Libusb.Synchronous ) where +import Bindings.Libusb.DeviceHotplugEventNotification import Bindings.Libusb.Asynchronous import Bindings.Libusb.Descriptors import Bindings.Libusb.HandlingAndEnumeration
+ src/Bindings/Libusb/DeviceHotplugEventNotification.hsc view
@@ -0,0 +1,42 @@+{-# LANGUAGE ForeignFunctionInterface #-}++#include <bindings.dsl.h>+#include <libusb.h>++-- | <http://libusb.sourceforge.net/api-1.0/group__hotplug.html>++module Bindings.Libusb.DeviceHotplugEventNotification where+#strict_import++import Bindings.Libusb.InitializationDeinitialization+import Bindings.Libusb.HandlingAndEnumeration++#num LIBUSB_HOTPLUG_MATCH_ANY++#integral_t libusb_hotplug_callback_handle++#callback libusb_hotplug_callback_fn , Ptr <libusb_context> -> \+ Ptr <libusb_device> -> <libusb_hotplug_event> -> Ptr () -> IO CInt++#integral_t libusb_hotplug_flag++#num LIBUSB_HOTPLUG_ENUMERATE++#integral_t libusb_hotplug_event++#num LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED+#num LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT++#ccall libusb_hotplug_register_callback , Ptr <libusb_context> -> \+ <libusb_hotplug_event> -> \+ <libusb_hotplug_flag> -> \+ CInt -> \+ CInt -> \+ CInt -> \+ <libusb_hotplug_callback_fn> -> \+ Ptr () -> \+ Ptr <libusb_hotplug_callback_handle> -> \+ IO CInt++#ccall libusb_hotplug_deregister_callback , Ptr <libusb_context> -> \+ <libusb_hotplug_callback_handle> -> IO ()
src/Bindings/Libusb/HandlingAndEnumeration.hsc view
@@ -14,12 +14,42 @@ #integral_t ssize_t +#integral_t enum libusb_speed+#num LIBUSB_SPEED_UNKNOWN+#num LIBUSB_SPEED_LOW+#num LIBUSB_SPEED_FULL+#num LIBUSB_SPEED_HIGH+#num LIBUSB_SPEED_SUPER++#integral_t enum libusb_supported_speed+#num LIBUSB_LOW_SPEED_OPERATION+#num LIBUSB_FULL_SPEED_OPERATION+#num LIBUSB_HIGH_SPEED_OPERATION+#num LIBUSB_SUPER_SPEED_OPERATION++#integral_t enum libusb_usb_2_0_extension_attributes+#num LIBUSB_BM_LPM_SUPPORT++#integral_t enum libusb_ss_usb_device_capability_attributes+#num LIBUSB_BM_LTM_SUPPORT++#integral_t enum libusb_bos_type+#num LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY+#num LIBUSB_BT_USB_2_0_EXTENSION+#num LIBUSB_BT_SS_USB_DEVICE_CAPABILITY+#num LIBUSB_BT_CONTAINER_ID+ #ccall libusb_get_device_list , Ptr <libusb_context> -> \ Ptr (Ptr (Ptr <libusb_device>)) -> IO <ssize_t> #ccall libusb_free_device_list , Ptr (Ptr <libusb_device>) -> \ CInt -> IO () #ccall libusb_get_bus_number , Ptr <libusb_device> -> IO Word8+#ccall libusb_get_port_number , Ptr <libusb_device> -> IO Word8+#ccall libusb_get_port_numbers , Ptr <libusb_device> -> Ptr Word8 -> \+ CInt -> IO CInt+#ccall libusb_get_parent , Ptr <libusb_device> -> IO (Ptr <libusb_device>) #ccall libusb_get_device_address , Ptr <libusb_device> -> IO Word8+#ccall libusb_get_device_speed , Ptr <libusb_device> -> IO CInt #ccall libusb_get_max_packet_size , Ptr <libusb_device> -> \ CUChar -> IO CInt #ccall libusb_get_max_iso_packet_size , Ptr <libusb_device> -> CUChar -> IO CInt@@ -52,4 +82,6 @@ #ccall libusb_detach_kernel_driver , Ptr <libusb_device_handle> -> \ CInt -> IO CInt #ccall libusb_attach_kernel_driver , Ptr <libusb_device_handle> -> \+ CInt -> IO CInt+#ccall libusb_set_auto_detach_kernel_driver , Ptr <libusb_device_handle> -> \ CInt -> IO CInt
src/Bindings/Libusb/InitializationDeinitialization.hsc view
@@ -10,6 +10,24 @@ #opaque_t libusb_context +#integral_t enum libusb_log_level++#num LIBUSB_LOG_LEVEL_NONE+#num LIBUSB_LOG_LEVEL_ERROR+#num LIBUSB_LOG_LEVEL_WARNING+#num LIBUSB_LOG_LEVEL_INFO+#num LIBUSB_LOG_LEVEL_DEBUG++#starttype struct libusb_version+#field major , Word16+#field minor , Word16+#field micro , Word16+#field nano , Word16+#field rc , CString+#field describe , CString+#stoptype+ #ccall libusb_set_debug , Ptr <libusb_context> -> CInt -> IO () #ccall libusb_init , Ptr (Ptr <libusb_context>) -> IO CInt #ccall libusb_exit , Ptr <libusb_context> -> IO ()+#ccall libusb_get_version , IO (Ptr <libusb_version>)
src/Bindings/Libusb/Miscellaneous.hsc view
@@ -8,6 +8,15 @@ module Bindings.Libusb.Miscellaneous where #strict_import +#integral_t enum libusb_capability++#num LIBUSB_CAP_HAS_CAPABILITY+#num LIBUSB_CAP_HAS_HOTPLUG+#num LIBUSB_CAP_HAS_HID_ACCESS+#num LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER++#ccall libusb_has_capability , <libusb_capability> -> CInt+ #cinline libusb_cpu_to_le16 , Word16 -> Word16 #cinline libusb_le16_to_cpu , Word16 -> Word16 @@ -55,4 +64,3 @@ #num LIBUSB_ERROR_NO_MEM #num LIBUSB_ERROR_NOT_SUPPORTED #num LIBUSB_ERROR_OTHER-
src/Bindings/Libusb/PollingAndTiming.hsc view
@@ -30,6 +30,10 @@ Ptr <timeval> -> IO CInt #ccall libusb_handle_events_timeout , Ptr <libusb_context> -> \ Ptr <timeval> -> IO CInt+#ccall libusb_handle_events_completed , Ptr <libusb_context> -> \+ Ptr CInt -> IO CInt+#ccall libusb_handle_events_timeout_completed , Ptr <libusb_context> -> \+ Ptr <timeval> -> Ptr CInt -> IO CInt #ccall libusb_handle_events , Ptr <libusb_context> -> IO CInt #ccall libusb_handle_events_locked , Ptr <libusb_context> -> \ Ptr <timeval> -> IO CInt