summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/hid/emulated_controller.cpp14
-rw-r--r--src/core/hid/hid_types.h15
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp6
3 files changed, 20 insertions, 15 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 2af3f06fc..8e2894449 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -1091,30 +1091,30 @@ void EmulatedController::SetBattery(const Common::Input::CallbackStatus& callbac
1091 1091
1092 bool is_charging = false; 1092 bool is_charging = false;
1093 bool is_powered = false; 1093 bool is_powered = false;
1094 NpadBatteryLevel battery_level = 0; 1094 NpadBatteryLevel battery_level = NpadBatteryLevel::Empty;
1095 switch (controller.battery_values[index]) { 1095 switch (controller.battery_values[index]) {
1096 case Common::Input::BatteryLevel::Charging: 1096 case Common::Input::BatteryLevel::Charging:
1097 is_charging = true; 1097 is_charging = true;
1098 is_powered = true; 1098 is_powered = true;
1099 battery_level = 6; 1099 battery_level = NpadBatteryLevel::Full;
1100 break; 1100 break;
1101 case Common::Input::BatteryLevel::Medium: 1101 case Common::Input::BatteryLevel::Medium:
1102 battery_level = 6; 1102 battery_level = NpadBatteryLevel::High;
1103 break; 1103 break;
1104 case Common::Input::BatteryLevel::Low: 1104 case Common::Input::BatteryLevel::Low:
1105 battery_level = 4; 1105 battery_level = NpadBatteryLevel::Low;
1106 break; 1106 break;
1107 case Common::Input::BatteryLevel::Critical: 1107 case Common::Input::BatteryLevel::Critical:
1108 battery_level = 2; 1108 battery_level = NpadBatteryLevel::Critical;
1109 break; 1109 break;
1110 case Common::Input::BatteryLevel::Empty: 1110 case Common::Input::BatteryLevel::Empty:
1111 battery_level = 0; 1111 battery_level = NpadBatteryLevel::Empty;
1112 break; 1112 break;
1113 case Common::Input::BatteryLevel::None: 1113 case Common::Input::BatteryLevel::None:
1114 case Common::Input::BatteryLevel::Full: 1114 case Common::Input::BatteryLevel::Full:
1115 default: 1115 default:
1116 is_powered = true; 1116 is_powered = true;
1117 battery_level = 8; 1117 battery_level = NpadBatteryLevel::Full;
1118 break; 1118 break;
1119 } 1119 }
1120 1120
diff --git a/src/core/hid/hid_types.h b/src/core/hid/hid_types.h
index 00beb40dd..7ba75a50c 100644
--- a/src/core/hid/hid_types.h
+++ b/src/core/hid/hid_types.h
@@ -302,6 +302,15 @@ enum class TouchScreenModeForNx : u8 {
302 Heat2, 302 Heat2,
303}; 303};
304 304
305// This is nn::hid::system::NpadBatteryLevel
306enum class NpadBatteryLevel : u32 {
307 Empty,
308 Critical,
309 Low,
310 High,
311 Full,
312};
313
305// This is nn::hid::NpadStyleTag 314// This is nn::hid::NpadStyleTag
306struct NpadStyleTag { 315struct NpadStyleTag {
307 union { 316 union {
@@ -385,16 +394,12 @@ struct NpadGcTriggerState {
385}; 394};
386static_assert(sizeof(NpadGcTriggerState) == 0x10, "NpadGcTriggerState is an invalid size"); 395static_assert(sizeof(NpadGcTriggerState) == 0x10, "NpadGcTriggerState is an invalid size");
387 396
388// This is nn::hid::system::NpadBatteryLevel
389using NpadBatteryLevel = u32;
390static_assert(sizeof(NpadBatteryLevel) == 0x4, "NpadBatteryLevel is an invalid size");
391
392// This is nn::hid::system::NpadPowerInfo 397// This is nn::hid::system::NpadPowerInfo
393struct NpadPowerInfo { 398struct NpadPowerInfo {
394 bool is_powered{}; 399 bool is_powered{};
395 bool is_charging{}; 400 bool is_charging{};
396 INSERT_PADDING_BYTES(0x6); 401 INSERT_PADDING_BYTES(0x6);
397 NpadBatteryLevel battery_level{8}; 402 NpadBatteryLevel battery_level{NpadBatteryLevel::Full};
398}; 403};
399static_assert(sizeof(NpadPowerInfo) == 0xC, "NpadPowerInfo is an invalid size"); 404static_assert(sizeof(NpadPowerInfo) == 0xC, "NpadPowerInfo is an invalid size");
400 405
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index bc822f19e..21695bda2 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -1108,9 +1108,9 @@ Result Controller_NPad::DisconnectNpad(Core::HID::NpadIdType npad_id) {
1108 shared_memory->sixaxis_dual_right_properties.raw = 0; 1108 shared_memory->sixaxis_dual_right_properties.raw = 0;
1109 shared_memory->sixaxis_left_properties.raw = 0; 1109 shared_memory->sixaxis_left_properties.raw = 0;
1110 shared_memory->sixaxis_right_properties.raw = 0; 1110 shared_memory->sixaxis_right_properties.raw = 0;
1111 shared_memory->battery_level_dual = 0; 1111 shared_memory->battery_level_dual = Core::HID::NpadBatteryLevel::Empty;
1112 shared_memory->battery_level_left = 0; 1112 shared_memory->battery_level_left = Core::HID::NpadBatteryLevel::Empty;
1113 shared_memory->battery_level_right = 0; 1113 shared_memory->battery_level_right = Core::HID::NpadBatteryLevel::Empty;
1114 shared_memory->fullkey_color = { 1114 shared_memory->fullkey_color = {
1115 .attribute = ColorAttribute::NoController, 1115 .attribute = ColorAttribute::NoController,
1116 .fullkey = {}, 1116 .fullkey = {},