mirror of
https://github.com/AxioDL/boo.git
synced 2025-06-28 09:23:31 +00:00
final messsage added
This commit is contained in:
parent
79b9e0fd9b
commit
cf0eaad388
@ -25,6 +25,7 @@ public:
|
|||||||
bool sendInterruptTransfer(uint8_t pipe, const uint8_t* data, size_t length);
|
bool sendInterruptTransfer(uint8_t pipe, const uint8_t* data, size_t length);
|
||||||
size_t receiveInterruptTransfer(uint8_t pipe, uint8_t* data, size_t length);
|
size_t receiveInterruptTransfer(uint8_t pipe, uint8_t* data, size_t length);
|
||||||
virtual void transferCycle() {};
|
virtual void transferCycle() {};
|
||||||
|
virtual void finalCycle() {};
|
||||||
|
|
||||||
/* High-Level API */
|
/* High-Level API */
|
||||||
bool sendReport(const uint8_t* data, size_t length);
|
bool sendReport(const uint8_t* data, size_t length);
|
||||||
|
@ -49,6 +49,7 @@ class CDolphinSmashAdapter final : public CDeviceBase
|
|||||||
bool m_didHandshake;
|
bool m_didHandshake;
|
||||||
void deviceDisconnected();
|
void deviceDisconnected();
|
||||||
void transferCycle();
|
void transferCycle();
|
||||||
|
void finalCycle();
|
||||||
public:
|
public:
|
||||||
CDolphinSmashAdapter(CDeviceToken* token);
|
CDolphinSmashAdapter(CDeviceToken* token);
|
||||||
~CDolphinSmashAdapter();
|
~CDolphinSmashAdapter();
|
||||||
|
@ -48,9 +48,9 @@ parseState(IDolphinSmashAdapterCallback::SDolphinControllerState* stateOut, uint
|
|||||||
stateOut->m_btns = (uint16_t)payload[1] << 8 | (uint16_t)payload[2];
|
stateOut->m_btns = (uint16_t)payload[1] << 8 | (uint16_t)payload[2];
|
||||||
|
|
||||||
stateOut->m_leftStick[0] = payload[3];
|
stateOut->m_leftStick[0] = payload[3];
|
||||||
stateOut->m_leftStick[1] = payload[4] ^ 0xFF;
|
stateOut->m_leftStick[1] = payload[4];
|
||||||
stateOut->m_rightStick[0] = payload[5];
|
stateOut->m_rightStick[0] = payload[5];
|
||||||
stateOut->m_rightStick[1] = payload[6] ^ 0xFF;
|
stateOut->m_rightStick[1] = payload[6];
|
||||||
stateOut->m_analogTriggers[0] = payload[7];
|
stateOut->m_analogTriggers[0] = payload[7];
|
||||||
stateOut->m_analogTriggers[1] = payload[8];
|
stateOut->m_analogTriggers[1] = payload[8];
|
||||||
|
|
||||||
@ -118,6 +118,15 @@ void CDolphinSmashAdapter::transferCycle()
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void CDolphinSmashAdapter::finalCycle()
|
||||||
|
{
|
||||||
|
if (m_didHandshake)
|
||||||
|
{
|
||||||
|
uint8_t rumbleMessage[5] = {0x11, 0, 0, 0, 0};
|
||||||
|
sendInterruptTransfer(0, rumbleMessage, sizeof(rumbleMessage));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void CDolphinSmashAdapter::deviceDisconnected()
|
void CDolphinSmashAdapter::deviceDisconnected()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -146,9 +146,8 @@ class CHIDDeviceIOKit final : public IHIDDevice
|
|||||||
|
|
||||||
/* Start transfer loop */
|
/* Start transfer loop */
|
||||||
while (device->m_runningTransferLoop)
|
while (device->m_runningTransferLoop)
|
||||||
{
|
|
||||||
device->m_devImp.transferCycle();
|
device->m_devImp.transferCycle();
|
||||||
}
|
device->m_devImp.finalCycle();
|
||||||
|
|
||||||
/* Cleanup */
|
/* Cleanup */
|
||||||
(*intf)->USBInterfaceClose(intf);
|
(*intf)->USBInterfaceClose(intf);
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
|
|
||||||
|
#if __APPLE__
|
||||||
#include <CoreFoundation/CoreFoundation.h>
|
#include <CoreFoundation/CoreFoundation.h>
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <boo.hpp>
|
#include <boo.hpp>
|
||||||
|
|
||||||
@ -55,7 +58,10 @@ int main(int argc, char** argv)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if __APPLE__
|
||||||
CFRunLoopRun();
|
CFRunLoopRun();
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
|
|
||||||
delete ctx;
|
delete ctx;
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user