mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-05 10:52:15 +02:00
nfc: add support for CONTROLLER_P1_AUTO
This commit is contained in:
parent
8b0fe90af6
commit
0f25c30a90
@ -144,6 +144,9 @@ Result nfpuGetDeviceState(HidControllerID id, NfpuDeviceState *out);
|
|||||||
Result nfpuListDevices(u32 *count, HidControllerID *out, size_t num_elements);
|
Result nfpuListDevices(u32 *count, HidControllerID *out, size_t num_elements);
|
||||||
Result nfpuGetNpadId(HidControllerID id, u32 *out);
|
Result nfpuGetNpadId(HidControllerID id, u32 *out);
|
||||||
|
|
||||||
|
/// Wrapper for \ref nfpuListDevices.
|
||||||
|
Result nfpuUpdateP1Auto(void);
|
||||||
|
|
||||||
Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget mount_target);
|
Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget mount_target);
|
||||||
Result nfpuUnmount(HidControllerID id);
|
Result nfpuUnmount(HidControllerID id);
|
||||||
|
|
||||||
|
@ -8,6 +8,8 @@ static u64 g_refCnt;
|
|||||||
static Service g_nfpuSrv;
|
static Service g_nfpuSrv;
|
||||||
static Service g_nfpuInterface;
|
static Service g_nfpuInterface;
|
||||||
|
|
||||||
|
static HidControllerID g_controllerP1AutoID;
|
||||||
|
|
||||||
static Result _nfpuCreateInterface(void);
|
static Result _nfpuCreateInterface(void);
|
||||||
static Result _nfpuInterfaceInitialize(u64 aruid, const NfpuInitConfig *config);
|
static Result _nfpuInterfaceInitialize(u64 aruid, const NfpuInitConfig *config);
|
||||||
static Result _nfpuInterfaceFinalize(void);
|
static Result _nfpuInterfaceFinalize(void);
|
||||||
@ -53,6 +55,9 @@ Result nfpuInitialize(void) {
|
|||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
rc = _nfpuInterfaceInitialize(aruid, &g_nfpuDefaultInitConfig);
|
rc = _nfpuInterfaceInitialize(aruid, &g_nfpuDefaultInitConfig);
|
||||||
|
|
||||||
|
if (R_SUCCEEDED(rc))
|
||||||
|
rc = nfpuUpdateP1Auto();
|
||||||
|
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
nfpuExit();
|
nfpuExit();
|
||||||
|
|
||||||
@ -289,18 +294,22 @@ static inline Result _nfpuInterfaceFinalize(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuStartDetection(HidControllerID id) {
|
inline Result nfpuStartDetection(HidControllerID id) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdNoOut(3, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(3, id);
|
return _nfpuInterfaceCmdInIdNoOut(3, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuStopDetection(HidControllerID id) {
|
inline Result nfpuStopDetection(HidControllerID id) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdNoOut(4, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(4, id);
|
return _nfpuInterfaceCmdInIdNoOut(4, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuAttachActivateEvent(HidControllerID id, Event *out) {
|
inline Result nfpuAttachActivateEvent(HidControllerID id, Event *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutEvent(17, g_controllerP1AutoID, out);
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(17, id, out);
|
return _nfpuInterfaceCmdInIdOutEvent(17, id, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuAttachDeactivateEvent(HidControllerID id, Event *out) {
|
inline Result nfpuAttachDeactivateEvent(HidControllerID id, Event *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutEvent(18, g_controllerP1AutoID, out);
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(18, id, out);
|
return _nfpuInterfaceCmdInIdOutEvent(18, id, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,6 +385,8 @@ Result nfpuGetState(NfpuState *out) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result nfpuGetDeviceState(HidControllerID id, NfpuDeviceState *out) {
|
Result nfpuGetDeviceState(HidControllerID id, NfpuDeviceState *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return nfpuGetDeviceState(g_controllerP1AutoID, out);
|
||||||
|
|
||||||
IpcCommand c;
|
IpcCommand c;
|
||||||
ipcInitialize(&c);
|
ipcInitialize(&c);
|
||||||
|
|
||||||
@ -458,7 +469,14 @@ Result nfpuListDevices(u32 *count, HidControllerID *out, size_t num_elements) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result nfpuUpdateP1Auto(void) {
|
||||||
|
u32 dummy;
|
||||||
|
return nfpuListDevices(&dummy, &g_controllerP1AutoID, 1);
|
||||||
|
}
|
||||||
|
|
||||||
Result nfpuGetNpadId(HidControllerID id, u32 *out) {
|
Result nfpuGetNpadId(HidControllerID id, u32 *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return nfpuGetNpadId(g_controllerP1AutoID, out);
|
||||||
|
|
||||||
IpcCommand c;
|
IpcCommand c;
|
||||||
ipcInitialize(&c);
|
ipcInitialize(&c);
|
||||||
|
|
||||||
@ -497,6 +515,7 @@ Result nfpuGetNpadId(HidControllerID id, u32 *out) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget mount_target) {
|
Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget mount_target) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return nfpuMount(g_controllerP1AutoID, device_type, mount_target);
|
||||||
IpcCommand c;
|
IpcCommand c;
|
||||||
ipcInitialize(&c);
|
ipcInitialize(&c);
|
||||||
|
|
||||||
@ -535,21 +554,26 @@ Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuUnmount(HidControllerID id) {
|
inline Result nfpuUnmount(HidControllerID id) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdNoOut(6, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(6, id);
|
return _nfpuInterfaceCmdInIdNoOut(6, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetTagInfo(HidControllerID id, NfpuTagInfo *out) {
|
inline Result nfpuGetTagInfo(HidControllerID id, NfpuTagInfo *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutBuffer(13, g_controllerP1AutoID, out, sizeof(NfpuTagInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(13, id, out, sizeof(NfpuTagInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(13, id, out, sizeof(NfpuTagInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetRegisterInfo(HidControllerID id, NfpuRegisterInfo *out) {
|
inline Result nfpuGetRegisterInfo(HidControllerID id, NfpuRegisterInfo *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutBuffer(14, g_controllerP1AutoID, out, sizeof(NfpuRegisterInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(14, id, out, sizeof(NfpuRegisterInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(14, id, out, sizeof(NfpuRegisterInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetCommonInfo(HidControllerID id, NfpuCommonInfo *out) {
|
inline Result nfpuGetCommonInfo(HidControllerID id, NfpuCommonInfo *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutBuffer(15, g_controllerP1AutoID, out, sizeof(NfpuCommonInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(15, id, out, sizeof(NfpuCommonInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(15, id, out, sizeof(NfpuCommonInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetModelInfo(HidControllerID id, NfpuModelInfo *out) {
|
inline Result nfpuGetModelInfo(HidControllerID id, NfpuModelInfo *out) {
|
||||||
|
if (id == CONTROLLER_P1_AUTO) return _nfpuInterfaceCmdInIdOutBuffer(16, g_controllerP1AutoID, out, sizeof(NfpuModelInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(16, id, out, sizeof(NfpuModelInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(16, id, out, sizeof(NfpuModelInfo));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user