diff options
| author | lizzie <lizzie@eden-emu.dev> | 2026-07-09 03:47:04 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-07-09 03:47:04 +0200 |
| commit | 41762940d6bd6350901f12662248b95b91b51e6c (patch) | |
| tree | 9aa1c2290aaae63076d7662caba7af725c6062a4 /src/hid_core | |
| parent | c2e74a93804f0ba4e7e87a95e8881bbe817aa0a4 (diff) | |
[common] rework BitField and BitUtil, use concepts whenever possible (#4076)
test no regressions especially on Liiinux
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4076
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/hid_core')
| -rw-r--r-- | src/hid_core/frontend/emulated_controller.cpp | 22 | ||||
| -rw-r--r-- | src/hid_core/hidbus/ringcon.cpp | 4 | ||||
| -rw-r--r-- | src/hid_core/hidbus/ringcon.h | 4 | ||||
| -rw-r--r-- | src/hid_core/resources/abstracted_pad/abstract_sixaxis_handler.cpp | 9 | ||||
| -rw-r--r-- | src/hid_core/resources/npad/npad_data.cpp | 32 | ||||
| -rw-r--r-- | src/hid_core/resources/touch_screen/touch_screen_resource.cpp | 3 |
6 files changed, 37 insertions, 37 deletions
diff --git a/src/hid_core/frontend/emulated_controller.cpp b/src/hid_core/frontend/emulated_controller.cpp index 6022f90951..1c2d1a464f 100644 --- a/src/hid_core/frontend/emulated_controller.cpp +++ b/src/hid_core/frontend/emulated_controller.cpp @@ -1662,17 +1662,17 @@ bool EmulatedController::IsControllerFullkey(bool use_temporary_value) const { bool EmulatedController::IsControllerSupported(bool use_temporary_value) const { const auto type = is_configuring.load() && use_temporary_value ? tmp_npad_type.load() : npad_type.load(); switch (type) { - case NpadStyleIndex::Fullkey: return supported_style_tag.fullkey.As<bool>(); - case NpadStyleIndex::Handheld: return supported_style_tag.handheld.As<bool>(); - case NpadStyleIndex::JoyconDual: return supported_style_tag.joycon_dual.As<bool>(); - case NpadStyleIndex::JoyconLeft: return supported_style_tag.joycon_left.As<bool>(); - case NpadStyleIndex::JoyconRight: return supported_style_tag.joycon_right.As<bool>(); - case NpadStyleIndex::GameCube: return supported_style_tag.gamecube.As<bool>(); - case NpadStyleIndex::Pokeball: return supported_style_tag.palma.As<bool>(); - case NpadStyleIndex::NES: return supported_style_tag.lark.As<bool>(); - case NpadStyleIndex::SNES: return supported_style_tag.lucia.As<bool>(); - case NpadStyleIndex::N64: return supported_style_tag.lagoon.As<bool>(); - case NpadStyleIndex::SegaGenesis: return supported_style_tag.lager.As<bool>(); + case NpadStyleIndex::Fullkey: return supported_style_tag.fullkey; + case NpadStyleIndex::Handheld: return supported_style_tag.handheld; + case NpadStyleIndex::JoyconDual: return supported_style_tag.joycon_dual; + case NpadStyleIndex::JoyconLeft: return supported_style_tag.joycon_left; + case NpadStyleIndex::JoyconRight: return supported_style_tag.joycon_right; + case NpadStyleIndex::GameCube: return supported_style_tag.gamecube; + case NpadStyleIndex::Pokeball: return supported_style_tag.palma; + case NpadStyleIndex::NES: return supported_style_tag.lark; + case NpadStyleIndex::SNES: return supported_style_tag.lucia; + case NpadStyleIndex::N64: return supported_style_tag.lagoon; + case NpadStyleIndex::SegaGenesis: return supported_style_tag.lager; default: return false; } } diff --git a/src/hid_core/hidbus/ringcon.cpp b/src/hid_core/hidbus/ringcon.cpp index b942cad480..74b4d7189b 100644 --- a/src/hid_core/hidbus/ringcon.cpp +++ b/src/hid_core/hidbus/ringcon.cpp @@ -284,9 +284,9 @@ u8 RingController::GetCrcValue(const std::vector<u8>& data) const { } template <typename T> + requires std::is_trivially_copyable_v<T> u64 RingController::GetData(const T& reply, std::span<u8> out_data) const { - static_assert(std::is_trivially_copyable_v<T>); - const auto data_size = static_cast<u64>((std::min)(sizeof(reply), out_data.size())); + const auto data_size = u64((std::min)(sizeof(reply), out_data.size())); std::memcpy(out_data.data(), &reply, data_size); return data_size; } diff --git a/src/hid_core/hidbus/ringcon.h b/src/hid_core/hidbus/ringcon.h index a48eeed459..b38a67bc3e 100644 --- a/src/hid_core/hidbus/ringcon.h +++ b/src/hid_core/hidbus/ringcon.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -221,6 +224,7 @@ private: // Converts structs to an u8 vector equivalent template <typename T> + requires std::is_trivially_copyable_v<T> u64 GetData(const T& reply, std::span<u8> out_data) const; RingConCommands command{RingConCommands::Error}; diff --git a/src/hid_core/resources/abstracted_pad/abstract_sixaxis_handler.cpp b/src/hid_core/resources/abstracted_pad/abstract_sixaxis_handler.cpp index 54055751a2..de84a5ec28 100644 --- a/src/hid_core/resources/abstracted_pad/abstract_sixaxis_handler.cpp +++ b/src/hid_core/resources/abstracted_pad/abstract_sixaxis_handler.cpp @@ -66,8 +66,7 @@ Result NpadAbstractSixAxisHandler::UpdateSixAxisState() { continue; } auto& npad_entry = data->shared_memory_format->npad.npad_entry[NpadIdTypeToIndex(npad_id)]; - UpdateSixaxisInternalState(npad_entry, data->aruid, - data->flag.enable_six_axis_sensor.As<bool>()); + UpdateSixaxisInternalState(npad_entry, data->aruid, data->flag.enable_six_axis_sensor); } return ResultSuccess; } @@ -79,8 +78,7 @@ Result NpadAbstractSixAxisHandler::UpdateSixAxisState(u64 aruid) { return ResultSuccess; } auto& npad_entry = data->shared_memory_format->npad.npad_entry[NpadIdTypeToIndex(npad_id)]; - UpdateSixaxisInternalState(npad_entry, data->aruid, - data->flag.enable_six_axis_sensor.As<bool>()); + UpdateSixaxisInternalState(npad_entry, data->aruid, data->flag.enable_six_axis_sensor); return ResultSuccess; } @@ -91,8 +89,7 @@ Result NpadAbstractSixAxisHandler::UpdateSixAxisState2(u64 aruid) { return ResultSuccess; } auto& npad_internal_state = aruid_data->shared_memory_format->npad.npad_entry[npad_index]; - UpdateSixaxisInternalState(npad_internal_state, aruid, - aruid_data->flag.enable_six_axis_sensor.As<bool>()); + UpdateSixaxisInternalState(npad_internal_state, aruid, aruid_data->flag.enable_six_axis_sensor); return ResultSuccess; } diff --git a/src/hid_core/resources/npad/npad_data.cpp b/src/hid_core/resources/npad/npad_data.cpp index a490fe8a54..4b0bf44488 100644 --- a/src/hid_core/resources/npad/npad_data.cpp +++ b/src/hid_core/resources/npad/npad_data.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project @@ -24,7 +24,7 @@ void NPadData::SetNpadAnalogStickUseCenterClamp(bool is_enabled) { } bool NPadData::GetNpadAnalogStickUseCenterClamp() const { - return status.use_center_clamp.As<bool>(); + return status.use_center_clamp; } void NPadData::SetNpadSystemExtStateEnabled(bool is_enabled) { @@ -32,7 +32,7 @@ void NPadData::SetNpadSystemExtStateEnabled(bool is_enabled) { } bool NPadData::GetNpadSystemExtState() const { - return status.system_ext_state.As<bool>(); + return status.system_ext_state; } Result NPadData::SetSupportedNpadIdType(std::span<const Core::HID::NpadIdType> list) { @@ -154,27 +154,27 @@ bool NPadData::IsNpadStyleIndexSupported(Core::HID::NpadStyleIndex style_index) Core::HID::NpadStyleTag style = {supported_npad_style_set}; switch (style_index) { case Core::HID::NpadStyleIndex::Fullkey: - return style.fullkey.As<bool>(); + return style.fullkey; case Core::HID::NpadStyleIndex::Handheld: - return style.handheld.As<bool>(); + return style.handheld; case Core::HID::NpadStyleIndex::JoyconDual: - return style.joycon_dual.As<bool>(); + return style.joycon_dual; case Core::HID::NpadStyleIndex::JoyconLeft: - return style.joycon_left.As<bool>(); + return style.joycon_left; case Core::HID::NpadStyleIndex::JoyconRight: - return style.joycon_right.As<bool>(); + return style.joycon_right; case Core::HID::NpadStyleIndex::GameCube: - return style.gamecube.As<bool>(); + return style.gamecube; case Core::HID::NpadStyleIndex::Pokeball: - return style.palma.As<bool>(); + return style.palma; case Core::HID::NpadStyleIndex::NES: - return style.lark.As<bool>(); + return style.lark; case Core::HID::NpadStyleIndex::SNES: - return style.lucia.As<bool>(); + return style.lucia; case Core::HID::NpadStyleIndex::N64: - return style.lagoon.As<bool>(); + return style.lagoon; case Core::HID::NpadStyleIndex::SegaGenesis: - return style.lager.As<bool>(); + return style.lager; default: return false; } @@ -185,7 +185,7 @@ void NPadData::SetLrAssignmentMode(bool is_enabled) { } bool NPadData::GetLrAssignmentMode() const { - return status.lr_assignment_mode.As<bool>(); + return status.lr_assignment_mode; } void NPadData::SetAssigningSingleOnSlSrPress(bool is_enabled) { @@ -193,7 +193,7 @@ void NPadData::SetAssigningSingleOnSlSrPress(bool is_enabled) { } bool NPadData::GetAssigningSingleOnSlSrPress() const { - return status.assigning_single_on_sl_sr_press.As<bool>(); + return status.assigning_single_on_sl_sr_press; } void NPadData::SetHomeProtectionEnabled(bool is_enabled, Core::HID::NpadIdType npad_id) { diff --git a/src/hid_core/resources/touch_screen/touch_screen_resource.cpp b/src/hid_core/resources/touch_screen/touch_screen_resource.cpp index d340f186b3..b5d17ad55e 100644 --- a/src/hid_core/resources/touch_screen/touch_screen_resource.cpp +++ b/src/hid_core/resources/touch_screen/touch_screen_resource.cpp @@ -548,8 +548,7 @@ void TouchResource::OnTouchUpdate(s64 timestamp) { } auto& touch_shared = applet_data->shared_memory_format->touch_screen; - StorePreviousTouchState(previous_touch_state, data.finger_map, current_touch_state, - applet_data->flag.enable_touchscreen.As<bool>()); + StorePreviousTouchState(previous_touch_state, data.finger_map, current_touch_state, applet_data->flag.enable_touchscreen); touch_shared.touch_screen_lifo.WriteNextEntry(current_touch_state); } } |
