mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
Added hiddbgUpdateControllerColor and hiddbgUpdateDesignInfo.
This commit is contained in:
parent
a065244e4b
commit
e1e2a05a34
@ -51,6 +51,12 @@ typedef struct {
|
|||||||
Result hiddbgInitialize(void);
|
Result hiddbgInitialize(void);
|
||||||
void hiddbgExit(void);
|
void hiddbgExit(void);
|
||||||
|
|
||||||
|
/// Writes the input RGB colors to the spi-flash for the specified controller (offset 0x6050 size 0x6). See hidsys.h for UniquePadId. Only available with [3.0.0+].
|
||||||
|
Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, u64 UniquePadId);
|
||||||
|
|
||||||
|
/// Writes the input RGB colors followed by inval to the spi-flash for the specified controller (offset 0x6050 size 0xD). See hidsys.h for UniquePadId. Only available with [5.0.0+].
|
||||||
|
Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, u64 UniquePadId);
|
||||||
|
|
||||||
/// Reads spi-flash for the specified controller. See hidsys.h for UniquePadId.
|
/// Reads spi-flash for the specified controller. See hidsys.h for UniquePadId.
|
||||||
/// This doesn't seem to be usable?
|
/// This doesn't seem to be usable?
|
||||||
Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, u64 UniquePadId);
|
Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, u64 UniquePadId);
|
||||||
|
@ -140,6 +140,94 @@ static Result _hiddbgCmdInU64NoOut(u64 cmd_id, u64 val) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, u64 UniquePadId) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
IpcCommand c;
|
||||||
|
ipcInitialize(&c);
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u64 magic;
|
||||||
|
u64 cmd_id;
|
||||||
|
u32 colorBody;
|
||||||
|
u32 colorButtons;
|
||||||
|
u64 UniquePadId;
|
||||||
|
} *raw;
|
||||||
|
|
||||||
|
raw = serviceIpcPrepareHeader(&g_hiddbgSrv, &c, sizeof(*raw));
|
||||||
|
|
||||||
|
raw->magic = SFCI_MAGIC;
|
||||||
|
raw->cmd_id = 221;
|
||||||
|
raw->colorBody = colorBody;
|
||||||
|
raw->colorButtons = colorButtons;
|
||||||
|
raw->UniquePadId = UniquePadId;
|
||||||
|
|
||||||
|
Result rc = serviceIpcDispatch(&g_hiddbgSrv);
|
||||||
|
|
||||||
|
if (R_SUCCEEDED(rc)) {
|
||||||
|
IpcParsedCommand r;
|
||||||
|
struct {
|
||||||
|
u64 magic;
|
||||||
|
u64 result;
|
||||||
|
} *resp;
|
||||||
|
|
||||||
|
serviceIpcParse(&g_hiddbgSrv, &r, sizeof(*resp));
|
||||||
|
resp = r.Raw;
|
||||||
|
|
||||||
|
rc = resp->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, u64 UniquePadId) {
|
||||||
|
if (hosversionBefore(5,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
IpcCommand c;
|
||||||
|
ipcInitialize(&c);
|
||||||
|
|
||||||
|
struct {
|
||||||
|
u64 magic;
|
||||||
|
u64 cmd_id;
|
||||||
|
u32 colorBody;
|
||||||
|
u32 colorButtons;
|
||||||
|
u32 colorLeftGrip;
|
||||||
|
u32 colorRightGrip;
|
||||||
|
u8 inval;
|
||||||
|
u64 UniquePadId;
|
||||||
|
} *raw;
|
||||||
|
|
||||||
|
raw = serviceIpcPrepareHeader(&g_hiddbgSrv, &c, sizeof(*raw));
|
||||||
|
|
||||||
|
raw->magic = SFCI_MAGIC;
|
||||||
|
raw->cmd_id = 224;
|
||||||
|
raw->colorBody = colorBody;
|
||||||
|
raw->colorButtons = colorButtons;
|
||||||
|
raw->colorLeftGrip = colorLeftGrip;
|
||||||
|
raw->colorRightGrip = colorRightGrip;
|
||||||
|
raw->inval = inval;
|
||||||
|
raw->UniquePadId = UniquePadId;
|
||||||
|
|
||||||
|
Result rc = serviceIpcDispatch(&g_hiddbgSrv);
|
||||||
|
|
||||||
|
if (R_SUCCEEDED(rc)) {
|
||||||
|
IpcParsedCommand r;
|
||||||
|
struct {
|
||||||
|
u64 magic;
|
||||||
|
u64 result;
|
||||||
|
} *resp;
|
||||||
|
|
||||||
|
serviceIpcParse(&g_hiddbgSrv, &r, sizeof(*resp));
|
||||||
|
resp = r.Raw;
|
||||||
|
|
||||||
|
rc = resp->result;
|
||||||
|
}
|
||||||
|
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
static Result _hiddbgReadSerialFlash(TransferMemory *tmem, u32 offset, u64 size, u64 UniquePadId) {
|
static Result _hiddbgReadSerialFlash(TransferMemory *tmem, u32 offset, u64 size, u64 UniquePadId) {
|
||||||
IpcCommand c;
|
IpcCommand c;
|
||||||
ipcInitialize(&c);
|
ipcInitialize(&c);
|
||||||
|
Loading…
Reference in New Issue
Block a user