! Copyright (C) 2010 Erik Charlebois.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors alien alien.c-types alien.libraries
+USING: accessors alien alien.c-types alien.data alien.libraries
alien.syntax classes.struct combinators endian io.binary
kernel locals math sequences specialized-arrays
system unix.time unix.types ;
{ LIBUSB_CLASS_MASS_STORAGE 8 }
{ LIBUSB_CLASS_HUB 9 }
{ LIBUSB_CLASS_DATA 10 }
- { LIBUSB_CLASS_VENDOR_SPEC HEX: ff } ;
+ { LIBUSB_CLASS_VENDOR_SPEC 0xff } ;
ENUM: libusb_descriptor_type
- { LIBUSB_DT_DEVICE HEX: 01 }
- { LIBUSB_DT_CONFIG HEX: 02 }
- { LIBUSB_DT_STRING HEX: 03 }
- { LIBUSB_DT_INTERFACE HEX: 04 }
- { LIBUSB_DT_ENDPOINT HEX: 05 }
- { LIBUSB_DT_HID HEX: 21 }
- { LIBUSB_DT_REPORT HEX: 22 }
- { LIBUSB_DT_PHYSICAL HEX: 23 }
- { LIBUSB_DT_HUB HEX: 29 } ;
+ { LIBUSB_DT_DEVICE 0x01 }
+ { LIBUSB_DT_CONFIG 0x02 }
+ { LIBUSB_DT_STRING 0x03 }
+ { LIBUSB_DT_INTERFACE 0x04 }
+ { LIBUSB_DT_ENDPOINT 0x05 }
+ { LIBUSB_DT_HID 0x21 }
+ { LIBUSB_DT_REPORT 0x22 }
+ { LIBUSB_DT_PHYSICAL 0x23 }
+ { LIBUSB_DT_HUB 0x29 } ;
CONSTANT: LIBUSB_DT_DEVICE_SIZE 18
CONSTANT: LIBUSB_DT_CONFIG_SIZE 9
CONSTANT: LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9
CONSTANT: LIBUSB_DT_HUB_NONVAR_SIZE 7
-CONSTANT: LIBUSB_ENDPOINT_ADDRESS_MASK HEX: 0f
-CONSTANT: LIBUSB_ENDPOINT_DIR_MASK HEX: 80
+CONSTANT: LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f
+CONSTANT: LIBUSB_ENDPOINT_DIR_MASK 0x80
ENUM: libusb_endpoint_direction
- { LIBUSB_ENDPOINT_IN HEX: 80 }
- { LIBUSB_ENDPOINT_OUT HEX: 00 } ;
+ { LIBUSB_ENDPOINT_IN 0x80 }
+ { LIBUSB_ENDPOINT_OUT 0x00 } ;
-CONSTANT: LIBUSB_TRANSFER_TYPE_MASK HEX: 03
+CONSTANT: LIBUSB_TRANSFER_TYPE_MASK 0x03
ENUM: libusb_transfer_type
{ LIBUSB_TRANSFER_TYPE_CONTROL 0 }
{ LIBUSB_TRANSFER_TYPE_INTERRUPT 3 } ;
ENUM: libusb_standard_request
- { LIBUSB_REQUEST_GET_STATUS HEX: 00 }
- { LIBUSB_REQUEST_CLEAR_FEATURE HEX: 01 }
- { LIBUSB_REQUEST_SET_FEATURE HEX: 03 }
- { LIBUSB_REQUEST_SET_ADDRESS HEX: 05 }
- { LIBUSB_REQUEST_GET_DESCRIPTOR HEX: 06 }
- { LIBUSB_REQUEST_SET_DESCRIPTOR HEX: 07 }
- { LIBUSB_REQUEST_GET_CONFIGURATION HEX: 08 }
- { LIBUSB_REQUEST_SET_CONFIGURATION HEX: 09 }
- { LIBUSB_REQUEST_GET_INTERFACE HEX: 0A }
- { LIBUSB_REQUEST_SET_INTERFACE HEX: 0B }
- { LIBUSB_REQUEST_SYNCH_FRAME HEX: 0C } ;
+ { LIBUSB_REQUEST_GET_STATUS 0x00 }
+ { LIBUSB_REQUEST_CLEAR_FEATURE 0x01 }
+ { LIBUSB_REQUEST_SET_FEATURE 0x03 }
+ { LIBUSB_REQUEST_SET_ADDRESS 0x05 }
+ { LIBUSB_REQUEST_GET_DESCRIPTOR 0x06 }
+ { LIBUSB_REQUEST_SET_DESCRIPTOR 0x07 }
+ { LIBUSB_REQUEST_GET_CONFIGURATION 0x08 }
+ { LIBUSB_REQUEST_SET_CONFIGURATION 0x09 }
+ { LIBUSB_REQUEST_GET_INTERFACE 0x0A }
+ { LIBUSB_REQUEST_SET_INTERFACE 0x0B }
+ { LIBUSB_REQUEST_SYNCH_FRAME 0x0C } ;
ENUM: libusb_request_type
- { LIBUSB_REQUEST_TYPE_STANDARD HEX: 00 }
- { LIBUSB_REQUEST_TYPE_CLASS HEX: 20 }
- { LIBUSB_REQUEST_TYPE_VENDOR HEX: 40 }
- { LIBUSB_REQUEST_TYPE_RESERVED HEX: 60 } ;
+ { LIBUSB_REQUEST_TYPE_STANDARD 0x00 }
+ { LIBUSB_REQUEST_TYPE_CLASS 0x20 }
+ { LIBUSB_REQUEST_TYPE_VENDOR 0x40 }
+ { LIBUSB_REQUEST_TYPE_RESERVED 0x60 } ;
ENUM: libusb_request_recipient
- { LIBUSB_RECIPIENT_DEVICE HEX: 00 }
- { LIBUSB_RECIPIENT_INTERFACE HEX: 01 }
- { LIBUSB_RECIPIENT_ENDPOINT HEX: 02 }
- { LIBUSB_RECIPIENT_OTHER HEX: 03 } ;
+ { LIBUSB_RECIPIENT_DEVICE 0x00 }
+ { LIBUSB_RECIPIENT_INTERFACE 0x01 }
+ { LIBUSB_RECIPIENT_ENDPOINT 0x02 }
+ { LIBUSB_RECIPIENT_OTHER 0x03 } ;
-CONSTANT: LIBUSB_ISO_SYNC_TYPE_MASK HEX: 0C
+CONSTANT: LIBUSB_ISO_SYNC_TYPE_MASK 0x0C
ENUM: libusb_iso_sync_type
{ LIBUSB_ISO_SYNC_TYPE_NONE 0 }
{ LIBUSB_ISO_SYNC_TYPE_ADAPTIVE 2 }
{ LIBUSB_ISO_SYNC_TYPE_SYNC 3 } ;
-CONSTANT: LIBUSB_ISO_USAGE_TYPE_MASK HEX: 30
+CONSTANT: LIBUSB_ISO_USAGE_TYPE_MASK 0x30
ENUM: libusb_iso_usage_type
{ LIBUSB_ISO_USAGE_TYPE_DATA 0 }
: libusb_set_iso_packet_lengths ( transfer length -- )
[ [ iso_packet_desc>> >c-ptr ]
[ num_iso_packets>> ] bi
- <direct-libusb_iso_packet_descriptor-array>
+ libusb_iso_packet_descriptor <c-direct-array>
] dip [ >>length drop ] curry each ; inline
:: libusb_get_iso_packet_buffer ( transfer packet -- data )
transfer
[ iso_packet_desc>> >c-ptr ]
[ num_iso_packets>> ] bi
- <direct-libusb_iso_packet_descriptor-array> 0
+ libusb_iso_packet_descriptor <c-direct-array> 0
[ length>> + ] reduce
transfer buffer>> <displaced-alien>
] if ;
0 transfer
[ iso_packet_desc>> >c-ptr ]
[ num_iso_packets>> ] bi
- <direct-libusb_iso_packet_descriptor-array> nth
+ libusb_iso_packet_descriptor <c-direct-array> nth
length>> packet *
transfer buffer>> <displaced-alien>
] if ;