summaryrefslogtreecommitdiff
path: root/src/core/hle/service
diff options
context:
space:
mode:
authorGravatar Morph2020-09-28 10:00:15 -0400
committerGravatar Morph2020-11-15 23:33:20 -0500
commit8f2959f6804e0d1048ecaa6f4046622e069fe7db (patch)
tree06451ddcfcc588d2803eaa908afa085bea7782de /src/core/hle/service
parentudp/client: Reduce testing period to 5 seconds (diff)
downloadyuzu-8f2959f6804e0d1048ecaa6f4046622e069fe7db.tar.gz
yuzu-8f2959f6804e0d1048ecaa6f4046622e069fe7db.tar.xz
yuzu-8f2959f6804e0d1048ecaa6f4046622e069fe7db.zip
settings: Preparation for per-game input settings
Diffstat (limited to 'src/core/hle/service')
-rw-r--r--src/core/hle/service/am/am.cpp4
-rw-r--r--src/core/hle/service/am/applets/controller.cpp2
-rw-r--r--src/core/hle/service/apm/controller.cpp3
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp42
-rw-r--r--src/core/hle/service/hid/hid.cpp4
-rw-r--r--src/core/hle/service/vi/vi.cpp2
6 files changed, 32 insertions, 25 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index 2ce742e35..eb097738a 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -751,7 +751,7 @@ void ICommonStateGetter::GetDefaultDisplayResolution(Kernel::HLERequestContext&
751 IPC::ResponseBuilder rb{ctx, 4}; 751 IPC::ResponseBuilder rb{ctx, 4};
752 rb.Push(RESULT_SUCCESS); 752 rb.Push(RESULT_SUCCESS);
753 753
754 if (Settings::values.use_docked_mode) { 754 if (Settings::values.use_docked_mode.GetValue()) {
755 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * 755 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) *
756 static_cast<u32>(Settings::values.resolution_factor.GetValue())); 756 static_cast<u32>(Settings::values.resolution_factor.GetValue()));
757 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) * 757 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) *
@@ -824,7 +824,7 @@ void IStorage::Open(Kernel::HLERequestContext& ctx) {
824} 824}
825 825
826void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) { 826void ICommonStateGetter::GetOperationMode(Kernel::HLERequestContext& ctx) {
827 const bool use_docked_mode{Settings::values.use_docked_mode}; 827 const bool use_docked_mode{Settings::values.use_docked_mode.GetValue()};
828 LOG_DEBUG(Service_AM, "called, use_docked_mode={}", use_docked_mode); 828 LOG_DEBUG(Service_AM, "called, use_docked_mode={}", use_docked_mode);
829 829
830 IPC::ResponseBuilder rb{ctx, 3}; 830 IPC::ResponseBuilder rb{ctx, 3};
diff --git a/src/core/hle/service/am/applets/controller.cpp b/src/core/hle/service/am/applets/controller.cpp
index a0152b4ea..43b79412e 100644
--- a/src/core/hle/service/am/applets/controller.cpp
+++ b/src/core/hle/service/am/applets/controller.cpp
@@ -222,7 +222,7 @@ void Controller::Execute() {
222void Controller::ConfigurationComplete() { 222void Controller::ConfigurationComplete() {
223 ControllerSupportResultInfo result_info{}; 223 ControllerSupportResultInfo result_info{};
224 224
225 const auto& players = Settings::values.players; 225 const auto& players = Settings::values.players.GetValue();
226 226
227 // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters. 227 // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters.
228 // Otherwise, only count connected players from P1-P8. 228 // Otherwise, only count connected players from P1-P8.
diff --git a/src/core/hle/service/apm/controller.cpp b/src/core/hle/service/apm/controller.cpp
index 25a886238..ce993bad3 100644
--- a/src/core/hle/service/apm/controller.cpp
+++ b/src/core/hle/service/apm/controller.cpp
@@ -69,7 +69,8 @@ void Controller::SetFromCpuBoostMode(CpuBoostMode mode) {
69} 69}
70 70
71PerformanceMode Controller::GetCurrentPerformanceMode() const { 71PerformanceMode Controller::GetCurrentPerformanceMode() const {
72 return Settings::values.use_docked_mode ? PerformanceMode::Docked : PerformanceMode::Handheld; 72 return Settings::values.use_docked_mode.GetValue() ? PerformanceMode::Docked
73 : PerformanceMode::Handheld;
73} 74}
74 75
75PerformanceConfiguration Controller::GetCurrentPerformanceConfiguration(PerformanceMode mode) { 76PerformanceConfiguration Controller::GetCurrentPerformanceConfiguration(PerformanceMode mode) {
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index c4b26196a..15d5fa6e8 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -184,11 +184,14 @@ void Controller_NPad::InitNewlyAddedController(std::size_t controller_idx) {
184 controller.single_color.button_color = 0; 184 controller.single_color.button_color = 0;
185 185
186 controller.dual_color_error = ColorReadError::ReadOk; 186 controller.dual_color_error = ColorReadError::ReadOk;
187 controller.left_color.body_color = Settings::values.players[controller_idx].body_color_left; 187 controller.left_color.body_color =
188 controller.left_color.button_color = Settings::values.players[controller_idx].button_color_left; 188 Settings::values.players.GetValue()[controller_idx].body_color_left;
189 controller.right_color.body_color = Settings::values.players[controller_idx].body_color_right; 189 controller.left_color.button_color =
190 Settings::values.players.GetValue()[controller_idx].button_color_left;
191 controller.right_color.body_color =
192 Settings::values.players.GetValue()[controller_idx].body_color_right;
190 controller.right_color.button_color = 193 controller.right_color.button_color =
191 Settings::values.players[controller_idx].button_color_right; 194 Settings::values.players.GetValue()[controller_idx].button_color_right;
192 195
193 controller.battery_level[0] = BATTERY_FULL; 196 controller.battery_level[0] = BATTERY_FULL;
194 controller.battery_level[1] = BATTERY_FULL; 197 controller.battery_level[1] = BATTERY_FULL;
@@ -218,8 +221,9 @@ void Controller_NPad::OnInit() {
218 style.pokeball.Assign(1); 221 style.pokeball.Assign(1);
219 } 222 }
220 223
221 std::transform(Settings::values.players.begin(), Settings::values.players.end(), 224 std::transform(Settings::values.players.GetValue().begin(),
222 connected_controllers.begin(), [](const Settings::PlayerInput& player) { 225 Settings::values.players.GetValue().end(), connected_controllers.begin(),
226 [](const Settings::PlayerInput& player) {
223 return ControllerHolder{MapSettingsTypeToNPad(player.controller_type), 227 return ControllerHolder{MapSettingsTypeToNPad(player.controller_type),
224 player.connected}; 228 player.connected};
225 }); 229 });
@@ -227,12 +231,13 @@ void Controller_NPad::OnInit() {
227 // Connect the Player 1 or Handheld controller if none are connected. 231 // Connect the Player 1 or Handheld controller if none are connected.
228 if (std::none_of(connected_controllers.begin(), connected_controllers.end(), 232 if (std::none_of(connected_controllers.begin(), connected_controllers.end(),
229 [](const ControllerHolder& controller) { return controller.is_connected; })) { 233 [](const ControllerHolder& controller) { return controller.is_connected; })) {
230 const auto controller = MapSettingsTypeToNPad(Settings::values.players[0].controller_type); 234 const auto controller =
235 MapSettingsTypeToNPad(Settings::values.players.GetValue()[0].controller_type);
231 if (controller == NPadControllerType::Handheld) { 236 if (controller == NPadControllerType::Handheld) {
232 Settings::values.players[HANDHELD_INDEX].connected = true; 237 Settings::values.players.GetValue()[HANDHELD_INDEX].connected = true;
233 connected_controllers[HANDHELD_INDEX] = {controller, true}; 238 connected_controllers[HANDHELD_INDEX] = {controller, true};
234 } else { 239 } else {
235 Settings::values.players[0].connected = true; 240 Settings::values.players.GetValue()[0].connected = true;
236 connected_controllers[0] = {controller, true}; 241 connected_controllers[0] = {controller, true};
237 } 242 }
238 } 243 }
@@ -255,7 +260,7 @@ void Controller_NPad::OnInit() {
255} 260}
256 261
257void Controller_NPad::OnLoadInputDevices() { 262void Controller_NPad::OnLoadInputDevices() {
258 const auto& players = Settings::values.players; 263 const auto& players = Settings::values.players.GetValue();
259 for (std::size_t i = 0; i < players.size(); ++i) { 264 for (std::size_t i = 0; i < players.size(); ++i) {
260 std::transform(players[i].buttons.begin() + Settings::NativeButton::BUTTON_HID_BEGIN, 265 std::transform(players[i].buttons.begin() + Settings::NativeButton::BUTTON_HID_BEGIN,
261 players[i].buttons.begin() + Settings::NativeButton::BUTTON_HID_END, 266 players[i].buttons.begin() + Settings::NativeButton::BUTTON_HID_END,
@@ -528,7 +533,7 @@ void Controller_NPad::OnMotionUpdate(const Core::Timing::CoreTiming& core_timing
528 // Try to read sixaxis sensor states 533 // Try to read sixaxis sensor states
529 std::array<MotionDevice, 2> motion_devices; 534 std::array<MotionDevice, 2> motion_devices;
530 535
531 if (sixaxis_sensors_enabled && Settings::values.motion_enabled) { 536 if (sixaxis_sensors_enabled && Settings::values.motion_enabled.GetValue()) {
532 sixaxis_at_rest = true; 537 sixaxis_at_rest = true;
533 for (std::size_t e = 0; e < motion_devices.size(); ++e) { 538 for (std::size_t e = 0; e < motion_devices.size(); ++e) {
534 const auto& device = motions[i][e]; 539 const auto& device = motions[i][e];
@@ -666,7 +671,7 @@ void Controller_NPad::VibrateController(const std::vector<u32>& controllers,
666 const std::vector<Vibration>& vibrations) { 671 const std::vector<Vibration>& vibrations) {
667 LOG_TRACE(Service_HID, "called"); 672 LOG_TRACE(Service_HID, "called");
668 673
669 if (!Settings::values.vibration_enabled || !can_controllers_vibrate) { 674 if (!Settings::values.vibration_enabled.GetValue() || !can_controllers_vibrate) {
670 return; 675 return;
671 } 676 }
672 bool success = true; 677 bool success = true;
@@ -714,16 +719,17 @@ void Controller_NPad::UpdateControllerAt(NPadControllerType controller, std::siz
714 } 719 }
715 720
716 if (controller == NPadControllerType::Handheld) { 721 if (controller == NPadControllerType::Handheld) {
717 Settings::values.players[HANDHELD_INDEX].controller_type = 722 Settings::values.players.GetValue()[HANDHELD_INDEX].controller_type =
718 MapNPadToSettingsType(controller); 723 MapNPadToSettingsType(controller);
719 Settings::values.players[HANDHELD_INDEX].connected = true; 724 Settings::values.players.GetValue()[HANDHELD_INDEX].connected = true;
720 connected_controllers[HANDHELD_INDEX] = {controller, true}; 725 connected_controllers[HANDHELD_INDEX] = {controller, true};
721 InitNewlyAddedController(HANDHELD_INDEX); 726 InitNewlyAddedController(HANDHELD_INDEX);
722 return; 727 return;
723 } 728 }
724 729
725 Settings::values.players[npad_index].controller_type = MapNPadToSettingsType(controller); 730 Settings::values.players.GetValue()[npad_index].controller_type =
726 Settings::values.players[npad_index].connected = true; 731 MapNPadToSettingsType(controller);
732 Settings::values.players.GetValue()[npad_index].connected = true;
727 connected_controllers[npad_index] = {controller, true}; 733 connected_controllers[npad_index] = {controller, true};
728 InitNewlyAddedController(npad_index); 734 InitNewlyAddedController(npad_index);
729} 735}
@@ -733,7 +739,7 @@ void Controller_NPad::DisconnectNPad(u32 npad_id) {
733} 739}
734 740
735void Controller_NPad::DisconnectNPadAtIndex(std::size_t npad_index) { 741void Controller_NPad::DisconnectNPadAtIndex(std::size_t npad_index) {
736 Settings::values.players[npad_index].connected = false; 742 Settings::values.players.GetValue()[npad_index].connected = false;
737 connected_controllers[npad_index].is_connected = false; 743 connected_controllers[npad_index].is_connected = false;
738 744
739 auto& controller = shared_memory_entries[npad_index]; 745 auto& controller = shared_memory_entries[npad_index];
@@ -895,7 +901,7 @@ bool Controller_NPad::IsControllerSupported(NPadControllerType controller) const
895 return false; 901 return false;
896 } 902 }
897 // Handheld should not be supported in docked mode 903 // Handheld should not be supported in docked mode
898 if (Settings::values.use_docked_mode) { 904 if (Settings::values.use_docked_mode.GetValue()) {
899 return false; 905 return false;
900 } 906 }
901 907
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index 50f709b25..fb57dec02 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -935,7 +935,7 @@ void Hid::CreateActiveVibrationDeviceList(Kernel::HLERequestContext& ctx) {
935void Hid::PermitVibration(Kernel::HLERequestContext& ctx) { 935void Hid::PermitVibration(Kernel::HLERequestContext& ctx) {
936 IPC::RequestParser rp{ctx}; 936 IPC::RequestParser rp{ctx};
937 const auto can_vibrate{rp.Pop<bool>()}; 937 const auto can_vibrate{rp.Pop<bool>()};
938 Settings::values.vibration_enabled = can_vibrate; 938 Settings::values.vibration_enabled.SetValue(can_vibrate);
939 939
940 LOG_DEBUG(Service_HID, "called, can_vibrate={}", can_vibrate); 940 LOG_DEBUG(Service_HID, "called, can_vibrate={}", can_vibrate);
941 941
@@ -948,7 +948,7 @@ void Hid::IsVibrationPermitted(Kernel::HLERequestContext& ctx) {
948 948
949 IPC::ResponseBuilder rb{ctx, 3}; 949 IPC::ResponseBuilder rb{ctx, 3};
950 rb.Push(RESULT_SUCCESS); 950 rb.Push(RESULT_SUCCESS);
951 rb.Push(Settings::values.vibration_enabled); 951 rb.Push(Settings::values.vibration_enabled.GetValue());
952} 952}
953 953
954void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) { 954void Hid::ActivateConsoleSixAxisSensor(Kernel::HLERequestContext& ctx) {
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 5b0e371fe..55e00dd93 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -771,7 +771,7 @@ private:
771 IPC::ResponseBuilder rb{ctx, 6}; 771 IPC::ResponseBuilder rb{ctx, 6};
772 rb.Push(RESULT_SUCCESS); 772 rb.Push(RESULT_SUCCESS);
773 773
774 if (Settings::values.use_docked_mode) { 774 if (Settings::values.use_docked_mode.GetValue()) {
775 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) * 775 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth) *
776 static_cast<u32>(Settings::values.resolution_factor.GetValue())); 776 static_cast<u32>(Settings::values.resolution_factor.GetValue()));
777 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) * 777 rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight) *