Split PTM services

This commit is contained in:
wheremyfoodat 2023-09-14 17:16:39 +03:00
parent 1332488326
commit 712be4ce72
4 changed files with 62 additions and 16 deletions

View file

@ -38,7 +38,9 @@ namespace KernelHandles {
NDM, // ?????
NWM_UDS, // Local multiplayer
NEWS_U, // This service literally has 1 command (AddNotification) and I don't even understand what it does
PTM, // PTM service (Used for accessing various console info, such as battery, shell and pedometer state)
PTM_U, // PTM service (Used for accessing various console info, such as battery, shell and pedometer state)
PTM_SYSM, // PTM system service
PTM_PLAY, // PTM Play service, ues for retrieving play history
SOC, // Socket service
SSL, // SSL service (Totally didn't expect that)
Y2R, // Also does camera stuff
@ -96,7 +98,9 @@ namespace KernelHandles {
case NWM_UDS: return "nwm::UDS";
case NFC: return "NFC";
case NIM: return "NIM";
case PTM: return "PTM";
case PTM_U: return "PTM:U";
case PTM_SYSM: return "PTM:SYSM";
case PTM_PLAY: return "PTM:PLAY";
case SOC: return "SOC";
case SSL: return "SSL";
case Y2R: return "Y2R";

View file

@ -7,7 +7,6 @@
#include "result/result.hpp"
class PTMService {
Handle handle = KernelHandles::PTM;
Memory& mem;
MAKE_LOG_FUNCTION(log, ptmLogger)
@ -19,12 +18,19 @@ class PTMService {
void getBatteryChargeState(u32 messagePointer);
void getBatteryLevel(u32 messagePointer);
void getStepHistory(u32 messagePointer);
void getStepHistoryAll(u32 messagePointer);
void getTotalStepCount(u32 messagePointer);
public:
enum class Type {
U, // ptm:u
SYSM, // ptm:sysm
PLAY, // ptm:play
};
PTMService(Memory& mem, const EmulatorConfig& config) : mem(mem), config(config) {}
void reset();
void handleSyncRequest(u32 messagePointer);
void handleSyncRequest(u32 messagePointer, Type type);
// 0% -> 0 (shutting down)
// 1-5% -> 1