feat: show live controller input
Route paired controller QoS data through the existing GIP protocol layer and expose the latest gamepad report through the C API. Add a SwiftUI monitor for buttons, d-pad, triggers, and stick positions without registering a native HID device. Co-Authored-By: openai/gpt-5.6-luna: GIP bridge and live input monitor
This commit is contained in:
@@ -77,6 +77,12 @@ public:
|
||||
// then bulk-writes it to EP OUT.
|
||||
auto send_wlan(std::span<std::uint8_t const> frame) -> int;
|
||||
|
||||
// Send a GIP payload in an upstream QoS-data frame for one client.
|
||||
auto send_client_frame(std::uint8_t wcid,
|
||||
std::span<std::uint8_t const> addr,
|
||||
std::span<std::uint8_t const> frame,
|
||||
bool encrypted) -> int;
|
||||
|
||||
// Associate a controller: program its WCID MAC, ADD_CLIENT ms_command,
|
||||
// and transmit an ASSOC_RESP mgmt frame.
|
||||
auto associate_client(std::uint8_t wcid, std::span<std::uint8_t const> addr)
|
||||
|
||||
@@ -458,10 +458,12 @@ constexpr std::uint16_t ieee80211_fctl_ftype = 0x0c;
|
||||
constexpr std::uint16_t ieee80211_fctl_stype = 0xf0;
|
||||
constexpr std::uint16_t ieee80211_ftype_mgmt = 0x00;
|
||||
constexpr std::uint16_t ieee80211_ftype_data = 0x08;
|
||||
constexpr std::uint16_t ieee80211_fctl_from_ds = 0x0200;
|
||||
constexpr std::uint16_t ieee80211_fctl_protected = 0x4000;
|
||||
constexpr std::uint16_t ieee80211_stype_assoc_req = 0x00;
|
||||
constexpr std::uint16_t ieee80211_stype_assoc_resp = 0x10;
|
||||
constexpr std::uint16_t ieee80211_stype_disassoc = 0xa0;
|
||||
constexpr std::uint16_t ieee80211_stype_qos_data = 0x70;
|
||||
constexpr std::uint16_t ieee80211_stype_qos_data = 0x80;
|
||||
// MGMT subtype for reserved (pairing) frames.
|
||||
constexpr std::uint16_t ieee80211_stype_wlan_reserved = 0x70;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user