mirror of
https://github.com/AxioDL/boo.git
synced 2025-12-08 21:17:50 +00:00
Windows build fixes and cleanups
This commit is contained in:
@@ -280,7 +280,7 @@ class HIDDeviceWinUSB final : public IHIDDevice
|
||||
|
||||
if (Error != ERROR_IO_PENDING)
|
||||
{
|
||||
fprintf(stderr, "Write Failed %08X\n", Error);
|
||||
fprintf(stderr, "Write Failed %08X\n", int(Error));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -288,7 +288,7 @@ class HIDDeviceWinUSB final : public IHIDDevice
|
||||
if (!GetOverlappedResult(m_hidHandle, &Overlapped, &BytesWritten, TRUE))
|
||||
{
|
||||
DWORD Error = GetLastError();
|
||||
fprintf(stderr, "Write Failed %08X\n", Error);
|
||||
fprintf(stderr, "Write Failed %08X\n", int(Error));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -297,7 +297,7 @@ class HIDDeviceWinUSB final : public IHIDDevice
|
||||
DWORD useLength = DWORD(std::max(length, m_minFeatureSz));
|
||||
if (!HidD_SetFeature(m_hidHandle, (PVOID)m_sendBuf.data(), useLength))
|
||||
{
|
||||
int error = GetLastError();
|
||||
//int error = GetLastError();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -377,7 +377,7 @@ public:
|
||||
}
|
||||
else if (Error != ERROR_IO_PENDING)
|
||||
{
|
||||
fprintf(stderr, "Read Failed: %08X\n", Error);
|
||||
fprintf(stderr, "Read Failed: %08X\n", int(Error));
|
||||
return;
|
||||
}
|
||||
else if (!GetOverlappedResultEx(m_hidHandle, &m_overlapped, &BytesRead, 10, TRUE))
|
||||
|
||||
@@ -323,59 +323,6 @@ const char* HIDMainItem::GetUsageName() const
|
||||
}
|
||||
}
|
||||
|
||||
static HIDParser::ParserStatus
|
||||
AdvanceIt(const uint8_t*& it, const uint8_t* end, size_t adv)
|
||||
{
|
||||
it += adv;
|
||||
if (it > end)
|
||||
{
|
||||
it = end;
|
||||
return HIDParser::ParserStatus::Error;
|
||||
}
|
||||
else if (it == end)
|
||||
{
|
||||
return HIDParser::ParserStatus::Done;
|
||||
}
|
||||
return HIDParser::ParserStatus::OK;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
GetByteValue(const uint8_t*& it, const uint8_t* end, HIDParser::ParserStatus& status)
|
||||
{
|
||||
const uint8_t* oldIt = it;
|
||||
status = AdvanceIt(it, end, 1);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *oldIt;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
GetShortValue(const uint8_t*& it, const uint8_t* end, int adv, HIDParser::ParserStatus& status)
|
||||
{
|
||||
const uint8_t* oldIt = it;
|
||||
switch (adv)
|
||||
{
|
||||
case 1:
|
||||
status = AdvanceIt(it, end, 1);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *oldIt;
|
||||
case 2:
|
||||
status = AdvanceIt(it, end, 2);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *reinterpret_cast<const uint16_t*>(&*oldIt);
|
||||
case 3:
|
||||
status = AdvanceIt(it, end, 4);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *reinterpret_cast<const uint32_t*>(&*oldIt);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct HIDReports
|
||||
{
|
||||
std::map<int32_t, std::vector<HIDMainItem>> m_inputReports;
|
||||
@@ -479,6 +426,59 @@ HIDParser::ParserStatus HIDParser::Parse(const PHIDP_PREPARSED_DATA descriptorDa
|
||||
#endif
|
||||
#else
|
||||
|
||||
static HIDParser::ParserStatus
|
||||
AdvanceIt(const uint8_t*& it, const uint8_t* end, size_t adv)
|
||||
{
|
||||
it += adv;
|
||||
if (it > end)
|
||||
{
|
||||
it = end;
|
||||
return HIDParser::ParserStatus::Error;
|
||||
}
|
||||
else if (it == end)
|
||||
{
|
||||
return HIDParser::ParserStatus::Done;
|
||||
}
|
||||
return HIDParser::ParserStatus::OK;
|
||||
}
|
||||
|
||||
static uint8_t
|
||||
GetByteValue(const uint8_t*& it, const uint8_t* end, HIDParser::ParserStatus& status)
|
||||
{
|
||||
const uint8_t* oldIt = it;
|
||||
status = AdvanceIt(it, end, 1);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *oldIt;
|
||||
}
|
||||
|
||||
static uint32_t
|
||||
GetShortValue(const uint8_t*& it, const uint8_t* end, int adv, HIDParser::ParserStatus& status)
|
||||
{
|
||||
const uint8_t* oldIt = it;
|
||||
switch (adv)
|
||||
{
|
||||
case 1:
|
||||
status = AdvanceIt(it, end, 1);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *oldIt;
|
||||
case 2:
|
||||
status = AdvanceIt(it, end, 2);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *reinterpret_cast<const uint16_t*>(&*oldIt);
|
||||
case 3:
|
||||
status = AdvanceIt(it, end, 4);
|
||||
if (status == HIDParser::ParserStatus::Error)
|
||||
return 0;
|
||||
return *reinterpret_cast<const uint32_t*>(&*oldIt);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
HIDParser::ParserStatus
|
||||
HIDParser::ParseItem(HIDReports& reportsOut,
|
||||
std::stack<HIDItemState>& stateStack,
|
||||
|
||||
Reference in New Issue
Block a user