#[cfg(feature = "highspeed-usb")]
pub const PACKET_SIZE: usize = 512;
#[cfg(not(feature = "highspeed-usb"))]
pub const PACKET_SIZE: usize = 64;
pub const CLASS_CCID: u8 = 0x0B;
pub const SUBCLASS_NONE: u8 = 0x0;
#[repr(u8)]
pub enum TransferMode {
Bulk = 0,
ControlA = 1,
ControlB = 2,
}
pub const FUNCTIONAL_INTERFACE: u8 = 0x21;
pub const FUNCTIONAL_INTERFACE_STRING: &str = "CCID/ICCD Interface";
pub const CLOCK_FREQUENCY_KHZ: [u8; 4] = [0xfc, 0x0d, 0x00, 0x00];
pub const DATA_RATE_BPS: [u8; 4] = [0x80, 0x25, 0x00, 0x00];
pub const MAX_IFSD: [u8; 4] = [0xfe, 0x00, 0x00, 0x00];
pub const MAX_MSG_LENGTH: usize = 3072;
pub const MAX_MSG_LENGTH_LE: [u8; 4] = [0x00, 0x0C, 0x00, 0x00];
pub const NUM_SLOTS: u8 = 1;
pub const MAX_BUSY_SLOTS: u8 = 1;
pub const PIN_SUPPORT: u8 = 0;
pub const FUNCTIONAL_INTERFACE_DESCRIPTOR: [u8; 52] = [
0x10,
0x01,
0x00,
0x01,
0x02,
0x00,
0x00,
0x00,
CLOCK_FREQUENCY_KHZ[0],
CLOCK_FREQUENCY_KHZ[1],
CLOCK_FREQUENCY_KHZ[2],
CLOCK_FREQUENCY_KHZ[3],
CLOCK_FREQUENCY_KHZ[0],
CLOCK_FREQUENCY_KHZ[1],
CLOCK_FREQUENCY_KHZ[2],
CLOCK_FREQUENCY_KHZ[3],
0x00,
DATA_RATE_BPS[0],
DATA_RATE_BPS[1],
DATA_RATE_BPS[2],
DATA_RATE_BPS[3],
DATA_RATE_BPS[0],
DATA_RATE_BPS[1],
DATA_RATE_BPS[2],
DATA_RATE_BPS[3],
0x00,
MAX_IFSD[0],
MAX_IFSD[1],
MAX_IFSD[2],
MAX_IFSD[3],
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x40,
0x08,
0x04,
0x00,
MAX_MSG_LENGTH_LE[0],
MAX_MSG_LENGTH_LE[1],
MAX_MSG_LENGTH_LE[2],
MAX_MSG_LENGTH_LE[3],
0xFF,
0xFF,
0x00,
0x00,
PIN_SUPPORT,
MAX_BUSY_SLOTS,
];