early-access version 2422
This commit is contained in:
parent
899ade82ac
commit
eb6157eec1
4 changed files with 32 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2420.
|
This is the source code for early-access 2422.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,12 @@ template <typename T>
|
||||||
return static_cast<u32>(log2_f + static_cast<u64>((value ^ (1ULL << log2_f)) != 0ULL));
|
return static_cast<u32>(log2_f + static_cast<u64>((value ^ (1ULL << log2_f)) != 0ULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
requires std::is_unsigned_v<T>
|
||||||
|
[[nodiscard]] constexpr bool IsPow2(T value) {
|
||||||
|
return std::has_single_bit(value);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
requires std::is_integral_v<T>
|
requires std::is_integral_v<T>
|
||||||
[[nodiscard]] T NextPow2(T value) {
|
[[nodiscard]] T NextPow2(T value) {
|
||||||
|
|
|
@ -192,6 +192,25 @@ std::size_t UDPClient::GetClientNumber(std::string_view host, u16 port) const {
|
||||||
return MAX_UDP_CLIENTS;
|
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) {
|
void UDPClient::OnVersion([[maybe_unused]] Response::Version data) {
|
||||||
LOG_TRACE(Input, "Version packet received: {}", data.version);
|
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]);
|
const int button = static_cast<int>(buttons[i]);
|
||||||
SetButton(identifier, button, button_status);
|
SetButton(identifier, button, button_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SetBattery(identifier, GetBatteryLevel(data.info.battery));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UDPClient::StartCommunication(std::size_t client, const std::string& host, u16 port) {
|
void UDPClient::StartCommunication(std::size_t client, const std::string& host, u16 port) {
|
||||||
|
|
|
@ -15,6 +15,7 @@ namespace InputCommon::CemuhookUDP {
|
||||||
class Socket;
|
class Socket;
|
||||||
|
|
||||||
namespace Response {
|
namespace Response {
|
||||||
|
enum class Battery : u8;
|
||||||
struct PadData;
|
struct PadData;
|
||||||
struct PortInfo;
|
struct PortInfo;
|
||||||
struct TouchPad;
|
struct TouchPad;
|
||||||
|
@ -137,6 +138,9 @@ private:
|
||||||
// Translates configuration to client number
|
// Translates configuration to client number
|
||||||
std::size_t GetClientNumber(std::string_view host, u16 port) const;
|
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 OnVersion(Response::Version);
|
||||||
void OnPortInfo(Response::PortInfo);
|
void OnPortInfo(Response::PortInfo);
|
||||||
void OnPadData(Response::PadData, std::size_t client);
|
void OnPadData(Response::PadData, std::size_t client);
|
||||||
|
|
Loading…
Reference in a new issue