2025-06-22 21:05:09 +02:00
|
|
|
#include <pd/drivers/hid.hpp>
|
|
|
|
#include <pd/drivers/pd_p_api.hpp>
|
|
|
|
|
|
|
|
namespace PD {
|
|
|
|
PD_DEF_EXP(HidDriver::Ref, Hid::pHid);
|
|
|
|
|
|
|
|
bool HidDriver::IsEvent(Event e, Key keys) { return KeyEvents[0][e] & keys; }
|
2025-08-14 20:37:55 +02:00
|
|
|
bool HidDriver::IsEvent(Event e, KbKey keys) {
|
|
|
|
return KbKeyEvents[0][e].Has(keys);
|
2025-07-23 23:21:34 +02:00
|
|
|
}
|
2025-06-22 21:05:09 +02:00
|
|
|
|
|
|
|
void HidDriver::SwapTab() {
|
|
|
|
auto tkd = KeyEvents[1][Event_Down];
|
|
|
|
auto tkh = KeyEvents[1][Event_Held];
|
|
|
|
auto tku = KeyEvents[1][Event_Up];
|
|
|
|
KeyEvents[1][Event_Down] = KeyEvents[0][Event_Down];
|
|
|
|
KeyEvents[1][Event_Held] = KeyEvents[0][Event_Held];
|
|
|
|
KeyEvents[1][Event_Up] = KeyEvents[0][Event_Up];
|
|
|
|
KeyEvents[0][Event_Down] = tkd;
|
|
|
|
KeyEvents[0][Event_Held] = tkh;
|
|
|
|
KeyEvents[0][Event_Up] = tku;
|
|
|
|
}
|
2025-08-14 20:37:55 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* If this func has no verride, still clear the stats
|
|
|
|
* cause if they are empty this leads to a crash
|
|
|
|
*/
|
|
|
|
void HidDriver::Update() {
|
|
|
|
// Clear States
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
|
|
KeyEvents[i][Event_Down] = 0;
|
|
|
|
KeyEvents[i][Event_Held] = 0;
|
|
|
|
KeyEvents[i][Event_Up] = 0;
|
|
|
|
for (auto& it : KbKeyEvents[i]) {
|
|
|
|
it.second = Event_Null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2025-06-22 21:05:09 +02:00
|
|
|
} // namespace PD
|