HID services: Difference between revisions

Line 9,822: Line 9,822:
The following devices are used via hidbus:
The following devices are used via hidbus:
* [[Ring-Con]]
* [[Ring-Con]]
** [[#BusType]] is 0 (LeftJoyRail) or 1 (RightJoyRail). [[#GetExternalDeviceId|DeviceId]] is 0x20 ("Ronde").
** [[#BusType]] is 0 (LeftJoyRail) or 1 (RightJoyRail).
** [[#GetExternalDeviceId|DeviceId]] is 0x20 ("Ronde").
* Famicom right controller (with microphone)
* Famicom right controller (with microphone)
** [[#BusType]] is 2 (InternalBus). [[#GetExternalDeviceId|DeviceId]] is 0x21 ("LarkMic").
** [[#BusType]] is 2 (InternalBus).
** [[#GetExternalDeviceId|DeviceId]] is 0x21 ("LarkMic").
** SendAndReceive is not used. EnableJoyPollingReceiveMode is used where the input buffer is an u32 with value 0, [[#JoyPollingMode]] = 2. GetJoyPollingReceivedData is used to get the output data.
** SendAndReceive is not used. EnableJoyPollingReceiveMode is used where the input buffer is an u32 with value 0, [[#JoyPollingMode]] = 2. GetJoyPollingReceivedData is used to get the output data.
* "Starlink: Battle For Atlas" controller mount
* "Starlink: Battle For Atlas" controller mount
** [[#BusType]] is 1 (RightJoyRail). [[#GetExternalDeviceId|DeviceId]] is 0x28.
** [[#BusType]] is 1 (RightJoyRail).
** [[#GetExternalDeviceId|DeviceId]] is 0x28.
** EnableJoyPollingReceiveMode is used where the input buffer is an u16 with value 0x09, [[#JoyPollingMode]] = 0. SendAndReceive is called from 1 func. GetJoyPollingReceivedData is used to determine whether to call the same func which calls SendAndReceive, which is only done if <code>out_size==0x4 && data[0]==0x09 && (data[1] & 1 == 1)</code>.
** EnableJoyPollingReceiveMode is used where the input buffer is an u16 with value 0x09, [[#JoyPollingMode]] = 0. SendAndReceive is called from 1 func. GetJoyPollingReceivedData is used to determine whether to call the same func which calls SendAndReceive, which is only done if <code>out_size==0x4 && data[0]==0x09 && (data[1] & 1 == 1)</code>.