|
|
|
@ -339,26 +339,6 @@ private:
|
|
|
|
|
static_assert(sizeof(NfcXcdDeviceHandleStateImpl) == 0x18,
|
|
|
|
|
"NfcXcdDeviceHandleStateImpl is an invalid size");
|
|
|
|
|
|
|
|
|
|
// nn::hid::detail::NfcXcdDeviceHandleStateImplAtomicStorage
|
|
|
|
|
struct NfcXcdDeviceHandleStateImplAtomicStorage {
|
|
|
|
|
u64 sampling_number;
|
|
|
|
|
NfcXcdDeviceHandleStateImpl nfc_xcd_device_handle_state;
|
|
|
|
|
};
|
|
|
|
|
static_assert(sizeof(NfcXcdDeviceHandleStateImplAtomicStorage) == 0x20,
|
|
|
|
|
"NfcXcdDeviceHandleStateImplAtomicStorage is an invalid size");
|
|
|
|
|
|
|
|
|
|
// This is nn::hid::detail::NfcXcdDeviceHandleState
|
|
|
|
|
struct NfcXcdDeviceHandleState {
|
|
|
|
|
// TODO(german77): Make this struct a ring lifo object
|
|
|
|
|
INSERT_PADDING_BYTES(0x8); // Unused
|
|
|
|
|
s64 total_buffer_count = max_buffer_size;
|
|
|
|
|
s64 buffer_tail{};
|
|
|
|
|
s64 buffer_count{};
|
|
|
|
|
std::array<NfcXcdDeviceHandleStateImplAtomicStorage, 2> nfc_xcd_device_handle_storage;
|
|
|
|
|
};
|
|
|
|
|
static_assert(sizeof(NfcXcdDeviceHandleState) == 0x60,
|
|
|
|
|
"NfcXcdDeviceHandleState is an invalid size");
|
|
|
|
|
|
|
|
|
|
// This is nn::hid::system::AppletFooterUiAttributesSet
|
|
|
|
|
struct AppletFooterUiAttributes {
|
|
|
|
|
INSERT_PADDING_BYTES(0x4);
|
|
|
|
@ -433,32 +413,32 @@ private:
|
|
|
|
|
NpadJoyAssignmentMode assignment_mode;
|
|
|
|
|
NpadFullKeyColorState fullkey_color;
|
|
|
|
|
NpadJoyColorState joycon_color;
|
|
|
|
|
Lifo<NPadGenericState> fullkey_lifo;
|
|
|
|
|
Lifo<NPadGenericState> handheld_lifo;
|
|
|
|
|
Lifo<NPadGenericState> joy_dual_lifo;
|
|
|
|
|
Lifo<NPadGenericState> joy_left_lifo;
|
|
|
|
|
Lifo<NPadGenericState> joy_right_lifo;
|
|
|
|
|
Lifo<NPadGenericState> palma_lifo;
|
|
|
|
|
Lifo<NPadGenericState> system_ext_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_fullkey_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_handheld_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_dual_left_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_dual_right_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_left_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState> sixaxis_right_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> fullkey_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> handheld_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> joy_dual_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> joy_left_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> joy_right_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> palma_lifo;
|
|
|
|
|
Lifo<NPadGenericState, hid_entry_count> system_ext_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_fullkey_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_handheld_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_left_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_right_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_left_lifo;
|
|
|
|
|
Lifo<SixAxisSensorState, hid_entry_count> sixaxis_right_lifo;
|
|
|
|
|
DeviceType device_type;
|
|
|
|
|
INSERT_PADDING_BYTES(0x4); // Reserved
|
|
|
|
|
NPadSystemProperties system_properties;
|
|
|
|
|
NpadSystemButtonProperties button_properties;
|
|
|
|
|
Core::HID::BatteryLevel battery_level_dual;
|
|
|
|
|
Core::HID::BatteryLevel battery_level_left;
|
|
|
|
|
Core::HID::BatteryLevel battery_level_right;
|
|
|
|
|
Core::HID::NpadBatteryLevel battery_level_dual;
|
|
|
|
|
Core::HID::NpadBatteryLevel battery_level_left;
|
|
|
|
|
Core::HID::NpadBatteryLevel battery_level_right;
|
|
|
|
|
union {
|
|
|
|
|
NfcXcdDeviceHandleState nfc_xcd_device_handle;
|
|
|
|
|
Lifo<NfcXcdDeviceHandleStateImpl, 0x2> nfc_xcd_device_lifo{};
|
|
|
|
|
AppletFooterUi applet_footer;
|
|
|
|
|
};
|
|
|
|
|
INSERT_PADDING_BYTES(0x20); // Unknown
|
|
|
|
|
Lifo<NpadGcTriggerState> gc_trigger_lifo;
|
|
|
|
|
Lifo<NpadGcTriggerState, hid_entry_count> gc_trigger_lifo;
|
|
|
|
|
NpadLarkType lark_type_l_and_main;
|
|
|
|
|
NpadLarkType lark_type_r;
|
|
|
|
|
NpadLuciaType lucia_type;
|
|
|
|
|