]> Chaos Git - corbenik/ctrulib.git/commitdiff
Implement PTMU_GetShellState and PTMU_GetPedometerState
authorThibaut Girka <thib@sitedethib.com>
Sat, 22 Nov 2014 19:56:55 +0000 (20:56 +0100)
committerThibaut Girka <thib@sitedethib.com>
Sat, 22 Nov 2014 21:04:34 +0000 (22:04 +0100)
libctru/include/3ds/services/ptm.h
libctru/source/services/ptm.c

index 825d503d73006648543597b38b4d61d9028a4985..586b4564e28a030011b23793a73145a4ea96347f 100644 (file)
@@ -3,6 +3,8 @@
 Result ptmInit();
 Result ptmExit();
 
+Result PTMU_GetShellState(Handle* servhandle, u8 *out);
 Result PTMU_GetBatteryLevel(Handle* servhandle, u8 *out);
 Result PTMU_GetBatteryChargeState(Handle* servhandle, u8 *out);
+Result PTMU_GetPedometerState(Handle* servhandle, u8 *out);
 Result PTMU_GetTotalStepCount(Handle* servhandle, u32 *steps);
index ddd298c48077e1c1be469cbf6c20036678445b64..e9abfb64230f494e8d56a193ff32aa897c3f4467 100644 (file)
@@ -13,6 +13,21 @@ Result ptmExit()
        return svcCloseHandle(ptmHandle);
 }
 
+Result PTMU_GetShellState(Handle* servhandle, u8 *out)
+{
+       if(!servhandle)servhandle=&ptmHandle;
+       Result ret=0;
+       u32 *cmdbuf = getThreadCommandBuffer();
+
+       cmdbuf[0] = 0x00060000;
+
+       if((ret = svcSendSyncRequest(*servhandle))!=0)return ret;
+
+       *out = (u8)cmdbuf[2];
+
+       return (Result)cmdbuf[1];
+}
+
 Result PTMU_GetBatteryLevel(Handle* servhandle, u8 *out)
 {
        if(!servhandle)servhandle=&ptmHandle;
@@ -43,6 +58,21 @@ Result PTMU_GetBatteryChargeState(Handle* servhandle, u8 *out)
        return (Result)cmdbuf[1];
 }
 
+Result PTMU_GetPedometerState(Handle* servhandle, u8 *out)
+{
+       if(!servhandle)servhandle=&ptmHandle;
+       Result ret=0;
+       u32 *cmdbuf = getThreadCommandBuffer();
+
+       cmdbuf[0] = 0x00090000;
+
+       if((ret = svcSendSyncRequest(*servhandle))!=0)return ret;
+
+       *out = (u8)cmdbuf[2];
+
+       return (Result)cmdbuf[1];
+}
+
 Result PTMU_GetTotalStepCount(Handle* servhandle, u32 *steps)
 {
        if(!servhandle)servhandle=&ptmHandle;