From b3742567d40d199629f33027b2260e5440dc7591 Mon Sep 17 00:00:00 2001 From: Joel Date: Sun, 2 Apr 2017 22:55:37 -0500 Subject: [PATCH] Implement GSPLCD::GetBrightness (#351) * Implement GSPLCD::GetBrightness * Split input and output params --- libctru/include/3ds/services/gsplcd.h | 9 ++++++++- libctru/source/services/gsplcd.c | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/libctru/include/3ds/services/gsplcd.h b/libctru/include/3ds/services/gsplcd.h index 0ac9a97..15f3fce 100644 --- a/libctru/include/3ds/services/gsplcd.h +++ b/libctru/include/3ds/services/gsplcd.h @@ -35,4 +35,11 @@ Result GSPLCD_PowerOffBacklight(u32 screen); * @brief Gets the LCD screens' vendors. Stubbed on old 3ds. * @param vendor Pointer to output the screen vendors to. */ -Result GSPLCD_GetVendors(u8 *vendors); \ No newline at end of file +Result GSPLCD_GetVendors(u8 *vendors); + +/** + * @brief Gets the LCD screens' brightness. Stubbed on old 3ds. + * @param screen Screen to get the brightness value of. + * @param brightness Brightness value returned. + */ +Result GSPLCD_GetBrightness(u32 screen, u32 *brightness); \ No newline at end of file diff --git a/libctru/source/services/gsplcd.c b/libctru/source/services/gsplcd.c index d293efe..f9dcd67 100644 --- a/libctru/source/services/gsplcd.c +++ b/libctru/source/services/gsplcd.c @@ -66,3 +66,17 @@ Result GSPLCD_GetVendors(u8 *vendors) return cmdbuf[1]; } +Result GSPLCD_GetBrightness(u32 screen, u32 *brightness) +{ + u32 *cmdbuf = getThreadCommandBuffer(); + + cmdbuf[0] = IPC_MakeHeader(0x15,1,0); // 0x150040 + cmdbuf[1] = screen; + + Result ret = 0; + if (R_FAILED(ret = svcSendSyncRequest(gspLcdHandle))) return ret; + + *brightness = cmdbuf[2]; + + return cmdbuf[2]; +} \ No newline at end of file