#pragma once // ============================================================================== // USB transport (IOKit / IOUSBFamily) // ============================================================================== // Owns the physical Xbox Wireless Dongle: // VID 0x045E, PIDs 0x02E6 (old), 0x02FE (new), 0x02F9 (ASUS/Lenovo built-in), // 0x091E (Surface Book 2). // // Port target: medusalix/xone transport/dongle.c + transport/mt76.c USB calls. // Linux usb_control_msg()/usb_bulk_msg() map to IOUSBDeviceInterface // DeviceRequest / IOUSBInterfaceInterface WritePipe+ReadPipe. // ============================================================================== #include namespace xone::usb { // Probe for a connected dongle and claim its WLAN interface // (bInterfaceNumber 1). // TODO(phase 2): IOKit implementation (IOServiceMatching, interface open, // EP 0x04 bulk in/out + EP 0x05 interrupt in). auto probe() -> bool; } // namespace xone::usb