mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-05-03 02:34:48 +12:00
Merge pull request #113 from wheremyfoodat/ir
Merging despite it still being partially broken because I don't want this to be isolated in a random branch
This commit is contained in:
commit
4a24a331da
2 changed files with 119 additions and 2 deletions
include/services
|
@ -11,6 +11,10 @@
|
|||
class Kernel;
|
||||
|
||||
class IRUserService {
|
||||
enum class DeviceID : u8 {
|
||||
CirclePadPro = 1,
|
||||
};
|
||||
|
||||
Handle handle = KernelHandles::IR_USER;
|
||||
Memory& mem;
|
||||
Kernel& kernel;
|
||||
|
@ -20,10 +24,35 @@ class IRUserService {
|
|||
void disconnect(u32 messagePointer);
|
||||
void finalizeIrnop(u32 messagePointer);
|
||||
void getConnectionStatusEvent(u32 messagePointer);
|
||||
void getReceiveEvent(u32 messagePointer);
|
||||
void initializeIrnopShared(u32 messagePointer);
|
||||
void requireConnection(u32 messagePointer);
|
||||
void sendIrnop(u32 messagePointer);
|
||||
|
||||
std::optional<Handle> connectionStatusEvent = std::nullopt;
|
||||
using IREvent = std::optional<Handle>;
|
||||
|
||||
IREvent connectionStatusEvent = std::nullopt;
|
||||
IREvent receiveEvent = std::nullopt;
|
||||
|
||||
std::optional<MemoryBlock> sharedMemory = std::nullopt;
|
||||
bool connectedDevice = false;
|
||||
|
||||
// Header of the IR shared memory containing various bits of info
|
||||
// https://www.3dbrew.org/wiki/IRUSER_Shared_Memory
|
||||
struct SharedMemoryStatus {
|
||||
u32 latestReceiveError;
|
||||
u32 latestSharedError;
|
||||
|
||||
u8 connectionStatus;
|
||||
u8 connectionAttemptStatus;
|
||||
u8 connectionRole;
|
||||
u8 machineID;
|
||||
u8 isConnected;
|
||||
u8 networkID;
|
||||
u8 isInitialized; // https://github.com/citra-emu/citra/blob/c10ffda91feb3476a861c47fb38641c1007b9d33/src/core/hle/service/ir/ir_user.cpp#L41
|
||||
u8 unk1;
|
||||
};
|
||||
static_assert(sizeof(SharedMemoryStatus) == 16);
|
||||
|
||||
public:
|
||||
IRUserService(Memory& mem, Kernel& kernel) : mem(mem), kernel(kernel) {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue