diff --git a/include/services/ac.hpp b/include/services/ac.hpp index a6f68698..d53134aa 100644 --- a/include/services/ac.hpp +++ b/include/services/ac.hpp @@ -17,6 +17,7 @@ class ACService { void closeAsync(u32 messagePointer); void createDefaultConfig(u32 messagePointer); void getConnectingInfraPriority(u32 messagePointer); + void getNZoneBeaconNotFoundEvent(u32 messagePointer); void getStatus(u32 messagePointer); void getLastErrorCode(u32 messagePointer); void isConnected(u32 messagePointer); diff --git a/src/core/services/ac.cpp b/src/core/services/ac.cpp index 3feddebe..0998e933 100644 --- a/src/core/services/ac.cpp +++ b/src/core/services/ac.cpp @@ -9,6 +9,7 @@ namespace ACCommands { GetLastErrorCode = 0x000A0000, GetStatus = 0x000C0000, GetConnectingInfraPriority = 0x000F0000, + GetNZoneBeaconNotFoundEvent = 0x002F0004, RegisterDisconnectEvent = 0x00300004, IsConnected = 0x003E0042, SetClientVersion = 0x00400042, @@ -28,6 +29,7 @@ void ACService::handleSyncRequest(u32 messagePointer) { case ACCommands::CreateDefaultConfig: createDefaultConfig(messagePointer); break; case ACCommands::GetConnectingInfraPriority: getConnectingInfraPriority(messagePointer); break; case ACCommands::GetLastErrorCode: getLastErrorCode(messagePointer); break; + case ACCommands::GetNZoneBeaconNotFoundEvent: getNZoneBeaconNotFoundEvent(messagePointer); break; case ACCommands::GetStatus: getStatus(messagePointer); break; case ACCommands::IsConnected: isConnected(messagePointer); break; case ACCommands::RegisterDisconnectEvent: registerDisconnectEvent(messagePointer); break; @@ -120,4 +122,13 @@ void ACService::registerDisconnectEvent(u32 messagePointer) { mem.write32(messagePointer, IPC::responseHeader(0x30, 1, 0)); mem.write32(messagePointer + 4, Result::Success); +} + +void ACService::getNZoneBeaconNotFoundEvent(u32 messagePointer) { + const u32 processID = mem.read32(messagePointer + 8); + const Handle event = mem.read32(messagePointer + 16); + log("AC::GetNZoneBeaconNotFoundEvent (process ID = %X, event = %X) (stubbed)\n", processID, event); + + mem.write32(messagePointer, IPC::responseHeader(0x2F, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); } \ No newline at end of file