mirror of https://github.com/AxioDL/boo.git
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
|
#include "boo/inputdev/NintendoPowerA.hpp"
|
||
|
#include <memory.h>
|
||
|
namespace boo
|
||
|
{
|
||
|
NintendoPowerA::NintendoPowerA(DeviceToken* token)
|
||
|
: DeviceBase(token)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
NintendoPowerA::~NintendoPowerA()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void NintendoPowerA::deviceDisconnected()
|
||
|
{
|
||
|
if (m_callback)
|
||
|
m_callback->controllerDisconnected();
|
||
|
}
|
||
|
|
||
|
void NintendoPowerA::initialCycle() {}
|
||
|
|
||
|
void NintendoPowerA::transferCycle()
|
||
|
{
|
||
|
uint8_t payload[8];
|
||
|
size_t recvSz = receiveUSBInterruptTransfer(payload, sizeof(payload));
|
||
|
if (recvSz != 8)
|
||
|
return;
|
||
|
|
||
|
NintendoPowerAState state = *reinterpret_cast<NintendoPowerAState*>(&payload);
|
||
|
|
||
|
if (state != m_last && m_callback)
|
||
|
m_callback->controllerUpdate(state);
|
||
|
m_last = state;
|
||
|
}
|
||
|
|
||
|
void NintendoPowerA::finalCycle() {}
|
||
|
|
||
|
void NintendoPowerA::receivedHIDReport(const uint8_t* data, size_t length, HIDReportType tp, uint32_t message)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
bool NintendoPowerAState::operator==(const NintendoPowerAState &other)
|
||
|
{
|
||
|
return !memcmp(this, &other, sizeof(NintendoPowerAState));
|
||
|
}
|
||
|
|
||
|
bool NintendoPowerAState::operator!=(const NintendoPowerAState &other)
|
||
|
{
|
||
|
return memcmp(this, &other, sizeof(NintendoPowerAState));
|
||
|
}
|
||
|
|
||
|
}
|