diff --git a/rpcs3/Input/ds3_pad_handler.cpp b/rpcs3/Input/ds3_pad_handler.cpp index 439734861e..4b80928557 100644 --- a/rpcs3/Input/ds3_pad_handler.cpp +++ b/rpcs3/Input/ds3_pad_handler.cpp @@ -334,6 +334,20 @@ ds3_pad_handler::DataStatus ds3_pad_handler::get_data(ds3_device* ds3dev) if (ds3dev->padData[0] == 0x01 && ds3dev->padData[1] != 0xFF) #endif { + const u8 battery_status = ds3dev->padData[12 + DS3_HID_OFFSET]; + + if (battery_status >= 0xEE) + { + // Charging (0xEE) or full (0xEF). Let's set the level to 100%. + ds3dev->battery_level = 100; + ds3dev->cable_state = 1; + } + else + { + ds3dev->battery_level = battery_capacity[std::min(battery_status, 5)]; + ds3dev->cable_state = 0; + } + return DataStatus::NewData; } else @@ -423,20 +437,6 @@ void ds3_pad_handler::get_extended_info(const std::shared_ptr& device if (!ds3dev || !pad) return; - const u8 battery_status = ds3dev->padData[12 + DS3_HID_OFFSET]; - - if (battery_status >= 0xEE) - { - // Charging (0xEE) or full (0xEF). Let's set the level to 100%. - ds3dev->battery_level = 100; - ds3dev->cable_state = 1; - } - else - { - ds3dev->battery_level = battery_capacity[std::min(battery_status, 5)]; - ds3dev->cable_state = 0; - } - pad->m_battery_level = ds3dev->battery_level; pad->m_cable_state = ds3dev->cable_state; diff --git a/rpcs3/Input/dualsense_pad_handler.cpp b/rpcs3/Input/dualsense_pad_handler.cpp index 270fa619d4..f0449a26c1 100644 --- a/rpcs3/Input/dualsense_pad_handler.cpp +++ b/rpcs3/Input/dualsense_pad_handler.cpp @@ -575,8 +575,8 @@ void dualsense_pad_handler::get_extended_info(const std::shared_ptr& auto buf = dualsense_device->padData; - //pad->m_battery_level = dualsense_device->batteryLevel; - //pad->m_cable_state = dualsense_device->cableState; + pad->m_battery_level = dualsense_device->battery_level; + pad->m_cable_state = dualsense_device->cable_state; // these values come already calibrated, all we need to do is convert to ds3 range