mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-05 19:02:14 +02:00
nfc: remove inlines, misc changes in nfpuListDevices
This commit is contained in:
parent
ea19b60af1
commit
a02b00f167
@ -1,3 +1,4 @@
|
|||||||
|
#include <string.h>
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
#include "arm/atomics.h"
|
#include "arm/atomics.h"
|
||||||
#include "kernel/detect.h"
|
#include "kernel/detect.h"
|
||||||
@ -307,29 +308,29 @@ static Result _nfpuInterfaceInitialize(Service *srv, u64 cmd_id, u64 aruid, cons
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Result _nfpuInterfaceFinalize(Service *srv, u64 cmd_id) {
|
static Result _nfpuInterfaceFinalize(Service *srv, u64 cmd_id) {
|
||||||
return _nfpuInterfaceCmdNoInOut(srv, cmd_id);
|
return _nfpuInterfaceCmdNoInOut(srv, cmd_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuStartDetection(HidControllerID id) {
|
Result nfpuStartDetection(HidControllerID id) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 3, g_controllerP1AutoID);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 3, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 3, id);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 3, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuStopDetection(HidControllerID id) {
|
Result nfpuStopDetection(HidControllerID id) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 4, g_controllerP1AutoID);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 4, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 4, id);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 4, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuAttachActivateEvent(HidControllerID id, Event *out) {
|
Result nfpuAttachActivateEvent(HidControllerID id, Event *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 17, g_controllerP1AutoID, out);
|
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 17, g_controllerP1AutoID, out);
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 17, id, out);
|
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 17, id, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuAttachDeactivateEvent(HidControllerID id, Event *out) {
|
Result nfpuAttachDeactivateEvent(HidControllerID id, Event *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 18, g_controllerP1AutoID, out);
|
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 18, g_controllerP1AutoID, out);
|
||||||
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 18, id, out);
|
return _nfpuInterfaceCmdInIdOutEvent(&g_nfpuInterface, 18, id, out);
|
||||||
@ -450,13 +451,16 @@ 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) {
|
||||||
// This is the maximum number of controllers that can be connected to a console at a time
|
// This is the maximum number of controllers that can be connected to a console at a time
|
||||||
// Incidentally, this is the biggest value official software (SSBU) was observed using
|
// Incidentally, this is the biggest value official software (SSBU) was observed using
|
||||||
#define MAX_CONTROLLERS 9
|
size_t max_controllers = 9;
|
||||||
|
if (num_elements > max_controllers)
|
||||||
|
num_elements = max_controllers;
|
||||||
|
|
||||||
IpcCommand c;
|
IpcCommand c;
|
||||||
ipcInitialize(&c);
|
ipcInitialize(&c);
|
||||||
|
|
||||||
u64 buf[MAX_CONTROLLERS] = {0};
|
u64 buf[max_controllers];
|
||||||
ipcAddRecvStatic(&c, buf, MAX_CONTROLLERS * sizeof(u64), 0);
|
memset(buf, 0, max_controllers * sizeof(u64));
|
||||||
|
ipcAddRecvStatic(&c, buf, max_controllers * sizeof(u64), 0);
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
u64 magic;
|
u64 magic;
|
||||||
@ -482,9 +486,10 @@ Result nfpuListDevices(u32 *count, HidControllerID *out, size_t num_elements) {
|
|||||||
resp = r.Raw;
|
resp = r.Raw;
|
||||||
|
|
||||||
rc = resp->result;
|
rc = resp->result;
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc) && count && out) {
|
if (R_SUCCEEDED(rc) && count && out) {
|
||||||
*count = resp->count;
|
*count = resp->count;
|
||||||
for (u32 i=0; i<((num_elements>MAX_CONTROLLERS) ? MAX_CONTROLLERS:num_elements); i++)
|
for (size_t i=0; i<num_elements; i++)
|
||||||
out[i] = hidOfficialToControllerID(buf[i]);
|
out[i] = hidOfficialToControllerID(buf[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -579,31 +584,31 @@ Result nfpuMount(HidControllerID id, NfpuDeviceType device_type, NfpuMountTarget
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuUnmount(HidControllerID id) {
|
Result nfpuUnmount(HidControllerID id) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 6, g_controllerP1AutoID);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 6, g_controllerP1AutoID);
|
||||||
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 6, id);
|
return _nfpuInterfaceCmdInIdNoOut(&g_nfpuInterface, 6, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetTagInfo(HidControllerID id, NfpuTagInfo *out) {
|
Result nfpuGetTagInfo(HidControllerID id, NfpuTagInfo *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 13, g_controllerP1AutoID, out, sizeof(NfpuTagInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 13, g_controllerP1AutoID, out, sizeof(NfpuTagInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 13, id, out, sizeof(NfpuTagInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 13, id, out, sizeof(NfpuTagInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetRegisterInfo(HidControllerID id, NfpuRegisterInfo *out) {
|
Result nfpuGetRegisterInfo(HidControllerID id, NfpuRegisterInfo *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 14, g_controllerP1AutoID, out, sizeof(NfpuRegisterInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 14, g_controllerP1AutoID, out, sizeof(NfpuRegisterInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 14, id, out, sizeof(NfpuRegisterInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 14, id, out, sizeof(NfpuRegisterInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetCommonInfo(HidControllerID id, NfpuCommonInfo *out) {
|
Result nfpuGetCommonInfo(HidControllerID id, NfpuCommonInfo *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 15, g_controllerP1AutoID, out, sizeof(NfpuCommonInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 15, g_controllerP1AutoID, out, sizeof(NfpuCommonInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 15, id, out, sizeof(NfpuCommonInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 15, id, out, sizeof(NfpuCommonInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Result nfpuGetModelInfo(HidControllerID id, NfpuModelInfo *out) {
|
Result nfpuGetModelInfo(HidControllerID id, NfpuModelInfo *out) {
|
||||||
if (id == CONTROLLER_P1_AUTO)
|
if (id == CONTROLLER_P1_AUTO)
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 16, g_controllerP1AutoID, out, sizeof(NfpuModelInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 16, g_controllerP1AutoID, out, sizeof(NfpuModelInfo));
|
||||||
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 16, id, out, sizeof(NfpuModelInfo));
|
return _nfpuInterfaceCmdInIdOutBuffer(&g_nfpuInterface, 16, id, out, sizeof(NfpuModelInfo));
|
||||||
|
Loading…
Reference in New Issue
Block a user