Merge pull request #7735 from german77/udp_battery
input_common: Report battery for UDP controllers
This commit is contained in:
		| @@ -192,6 +192,25 @@ std::size_t UDPClient::GetClientNumber(std::string_view host, u16 port) const { | ||||
|     return MAX_UDP_CLIENTS; | ||||
| } | ||||
|  | ||||
| BatteryLevel UDPClient::GetBatteryLevel(Response::Battery battery) const { | ||||
|     switch (battery) { | ||||
|     case Response::Battery::Dying: | ||||
|         return BatteryLevel::Empty; | ||||
|     case Response::Battery::Low: | ||||
|         return BatteryLevel::Critical; | ||||
|     case Response::Battery::Medium: | ||||
|         return BatteryLevel::Low; | ||||
|     case Response::Battery::High: | ||||
|         return BatteryLevel::Medium; | ||||
|     case Response::Battery::Full: | ||||
|     case Response::Battery::Charged: | ||||
|         return BatteryLevel::Full; | ||||
|     case Response::Battery::Charging: | ||||
|     default: | ||||
|         return BatteryLevel::Charging; | ||||
|     } | ||||
| } | ||||
|  | ||||
| void UDPClient::OnVersion([[maybe_unused]] Response::Version data) { | ||||
|     LOG_TRACE(Input, "Version packet received: {}", data.version); | ||||
| } | ||||
| @@ -299,6 +318,8 @@ void UDPClient::OnPadData(Response::PadData data, std::size_t client) { | ||||
|         const int button = static_cast<int>(buttons[i]); | ||||
|         SetButton(identifier, button, button_status); | ||||
|     } | ||||
|  | ||||
|     SetBattery(identifier, GetBatteryLevel(data.info.battery)); | ||||
| } | ||||
|  | ||||
| void UDPClient::StartCommunication(std::size_t client, const std::string& host, u16 port) { | ||||
|   | ||||
| @@ -15,6 +15,7 @@ namespace InputCommon::CemuhookUDP { | ||||
| class Socket; | ||||
|  | ||||
| namespace Response { | ||||
| enum class Battery : u8; | ||||
| struct PadData; | ||||
| struct PortInfo; | ||||
| struct TouchPad; | ||||
| @@ -137,6 +138,9 @@ private: | ||||
|     // Translates configuration to client number | ||||
|     std::size_t GetClientNumber(std::string_view host, u16 port) const; | ||||
|  | ||||
|     // Translates UDP battery level to input engine battery level | ||||
|     BatteryLevel GetBatteryLevel(Response::Battery battery) const; | ||||
|  | ||||
|     void OnVersion(Response::Version); | ||||
|     void OnPortInfo(Response::PortInfo); | ||||
|     void OnPadData(Response::PadData, std::size_t client); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user