diff --git a/libctru/include/3ds/services/ptmu.h b/libctru/include/3ds/services/ptmu.h index a5822ce..1ba4e97 100644 --- a/libctru/include/3ds/services/ptmu.h +++ b/libctru/include/3ds/services/ptmu.h @@ -40,3 +40,8 @@ Result PTMU_GetPedometerState(u8 *out); */ Result PTMU_GetTotalStepCount(u32 *steps); +/** + * @brief Gets whether the adapter is plugged in or not + * @param out Pointer to write the adapter state to. + */ +Result PTMU_GetAdapterState(bool *out); diff --git a/libctru/source/services/ptmu.c b/libctru/source/services/ptmu.c index e302e63..8db305d 100644 --- a/libctru/source/services/ptmu.c +++ b/libctru/source/services/ptmu.c @@ -94,3 +94,16 @@ Result PTMU_GetTotalStepCount(u32 *steps) return (Result)cmdbuf[1]; } +Result PTMU_GetAdapterState(bool *out) +{ + Result ret=0; + u32 *cmdbuf = getThreadCommandBuffer(); + + cmdbuf[0] = IPC_MakeHeader(0x5,0,0); // 0x50000 + + if(R_FAILED(ret = svcSendSyncRequest(ptmuHandle)))return ret; + + *out = cmdbuf[2] & 0xFF; + + return (Result)cmdbuf[1]; +}