mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-06-04 04:47:22 +12:00
[HID] Implement events
This commit is contained in:
parent
5465eb31c1
commit
6419098851
7 changed files with 34 additions and 15 deletions
|
@ -41,12 +41,6 @@ namespace KernelHandles {
|
|||
|
||||
MinSharedMemHandle = GSPSharedMemHandle,
|
||||
MaxSharedMemHandle = HIDSharedMemHandle,
|
||||
|
||||
HIDEvent0,
|
||||
HIDEvent1,
|
||||
HIDEvent2,
|
||||
HIDEvent3,
|
||||
HIDEvent4
|
||||
};
|
||||
|
||||
// Returns whether "handle" belongs to one of the OS services
|
||||
|
|
|
@ -198,4 +198,5 @@ public:
|
|||
|
||||
void sendGPUInterrupt(GPUInterrupt type) { serviceManager.requestGPUInterrupt(type); }
|
||||
void signalDSPEvents() { serviceManager.signalDSPEvents(); }
|
||||
void updateInputs() { serviceManager.updateInputs(); }
|
||||
};
|
|
@ -1,17 +1,26 @@
|
|||
#pragma once
|
||||
#include <array>
|
||||
#include <optional>
|
||||
#include "helpers.hpp"
|
||||
#include "kernel_types.hpp"
|
||||
#include "logger.hpp"
|
||||
#include "memory.hpp"
|
||||
|
||||
// Circular dependency because we need HID to spawn events
|
||||
class Kernel;
|
||||
|
||||
class HIDService {
|
||||
Handle handle = KernelHandles::HID;
|
||||
Memory& mem;
|
||||
Kernel& kernel;
|
||||
u8* sharedMem = nullptr; // Pointer to HID shared memory
|
||||
|
||||
bool accelerometerEnabled;
|
||||
bool eventsInitialized;
|
||||
bool gyroEnabled;
|
||||
|
||||
std::array<std::optional<Handle>, 5> events;
|
||||
|
||||
MAKE_LOG_FUNCTION(log, hidLogger)
|
||||
|
||||
// Service commands
|
||||
|
@ -22,9 +31,10 @@ class HIDService {
|
|||
void getIPCHandles(u32 messagePointer);
|
||||
|
||||
public:
|
||||
HIDService(Memory& mem) : mem(mem) {}
|
||||
HIDService(Memory& mem, Kernel& kernel) : mem(mem), kernel(kernel) {}
|
||||
void reset();
|
||||
void handleSyncRequest(u32 messagePointer);
|
||||
void updateInputs();
|
||||
|
||||
void setSharedMem(u8* ptr) {
|
||||
sharedMem = ptr;
|
||||
|
|
|
@ -82,4 +82,5 @@ public:
|
|||
void setHIDSharedMem(u8* ptr) { hid.setSharedMem(ptr); }
|
||||
|
||||
void signalDSPEvents() { dsp.signalEvents(); }
|
||||
void updateInputs() { hid.updateInputs(); }
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue