yuzu-emu
/
yuzu-mainline
Archived
1
0
Fork 0

HID: Moved some docstrings to the header.

This commit is contained in:
bunnei 2015-03-08 00:13:49 -05:00
parent 83a66dd701
commit 3229b048d9
2 changed files with 16 additions and 24 deletions

View File

@ -32,7 +32,7 @@ static s16 next_pad_circle_y = 0;
/** /**
* Gets a pointer to the PadData structure inside HID shared memory * Gets a pointer to the PadData structure inside HID shared memory
*/ */
static inline SharedMem* GetPadData() { static inline SharedMem* GetSharedMem() {
if (g_shared_mem == nullptr) if (g_shared_mem == nullptr)
return nullptr; return nullptr;
return reinterpret_cast<SharedMem*>(g_shared_mem->GetPointer().ValueOr(nullptr)); return reinterpret_cast<SharedMem*>(g_shared_mem->GetPointer().ValueOr(nullptr));
@ -66,28 +66,18 @@ static void UpdateNextCirclePadState() {
next_pad_circle_y += next_state.circle_up ? max_value : 0x0; next_pad_circle_y += next_state.circle_up ? max_value : 0x0;
} }
/**
* Sets a Pad state (button or button combo) as pressed
*/
void PadButtonPress(const PadState& pad_state) { void PadButtonPress(const PadState& pad_state) {
next_state.hex |= pad_state.hex; next_state.hex |= pad_state.hex;
UpdateNextCirclePadState(); UpdateNextCirclePadState();
} }
/**
* Sets a Pad state (button or button combo) as released
*/
void PadButtonRelease(const PadState& pad_state) { void PadButtonRelease(const PadState& pad_state) {
next_state.hex &= ~pad_state.hex; next_state.hex &= ~pad_state.hex;
UpdateNextCirclePadState(); UpdateNextCirclePadState();
} }
/**
* Called after all Pad changes to be included in this update have been made,
* including both Pad key changes and analog circle Pad changes.
*/
void PadUpdateComplete() { void PadUpdateComplete() {
SharedMem* shared_mem = GetPadData(); SharedMem* shared_mem = GetSharedMem();
if (shared_mem == nullptr) if (shared_mem == nullptr)
return; return;
@ -135,17 +125,6 @@ void PadUpdateComplete() {
g_event_pad_or_touch_2->Signal(); g_event_pad_or_touch_2->Signal();
} }
// If we just updated index 0, provide a new timestamp
if (pad_data->index == 0) {
pad_data->index_reset_ticks_previous = pad_data->index_reset_ticks;
pad_data->index_reset_ticks = (s64)Core::g_app_core->GetTicks();
}
// Signal both handles when there's an update to Pad or touch
g_event_pad_or_touch_1->Signal();
g_event_pad_or_touch_2->Signal();
}
void GetIPCHandles(Service::Interface* self) { void GetIPCHandles(Service::Interface* self) {
u32* cmd_buff = Kernel::GetCommandBuffer(); u32* cmd_buff = Kernel::GetCommandBuffer();

View File

@ -162,9 +162,22 @@ const PadState PAD_CIRCLE_DOWN = {{1u << 31}};
*/ */
void GetIPCHandles(Interface* self); void GetIPCHandles(Interface* self);
// Methods for updating the HID module's state /**
* Sets a Pad state (button or button combo) as pressed
* @param pad_state PadState data indicating which buttons have been pressed
*/
void PadButtonPress(const PadState& pad_state); void PadButtonPress(const PadState& pad_state);
/**
* Sets a Pad state (button or button combo) as released
* @param pad_state PadState data indicating which buttons have been released
*/
void PadButtonRelease(const PadState& pad_state); void PadButtonRelease(const PadState& pad_state);
/**
* Called after all Pad changes to be included in this update have been made, including both Pad
* key changes and analog circle Pad changes.
*/
void PadUpdateComplete(); void PadUpdateComplete();
void HIDInit(); void HIDInit();