aboutsummaryrefslogtreecommitdiff
path: root/src/hid_core/resources/npad/npad_vibration.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2024-01-26 09:55:47 -0500
committerGitHub <noreply@github.com>2024-01-26 09:55:47 -0500
commit4d206d849ec0ac2e90226eb67d90b310afd0a269 (patch)
treebb292c61287e988e13dfd5feaecaa6503d932baf /src/hid_core/resources/npad/npad_vibration.cpp
parent744c0173d133bc5e4a4ad1cfe54fce7b87d89f87 (diff)
parent53b321c945d7e6782a6011b7ee55035da8f54dbc (diff)
Merge pull request #12765 from german77/sys-hid
service: set: Implement more settings functions for Qlaunch
Diffstat (limited to 'src/hid_core/resources/npad/npad_vibration.cpp')
-rw-r--r--src/hid_core/resources/npad/npad_vibration.cpp36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/hid_core/resources/npad/npad_vibration.cpp b/src/hid_core/resources/npad/npad_vibration.cpp
index 05aad4c54..02b1f0290 100644
--- a/src/hid_core/resources/npad/npad_vibration.cpp
+++ b/src/hid_core/resources/npad/npad_vibration.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
+#include "core/hle/service/set/system_settings_server.h"
#include "hid_core/hid_result.h"
#include "hid_core/resources/npad/npad_vibration.h"
@@ -13,10 +14,11 @@ NpadVibration::~NpadVibration() = default;
Result NpadVibration::Activate() {
std::scoped_lock lock{mutex};
- const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
- // if (master_volume < 0.0f || master_volume > 1.0f) {
- // return ResultVibrationStrengthOutOfRange;
- // }
+ f32 master_volume = 1.0f;
+ m_set_sys->GetVibrationMasterVolume(master_volume);
+ if (master_volume < 0.0f || master_volume > 1.0f) {
+ return ResultVibrationStrengthOutOfRange;
+ }
volume = master_volume;
return ResultSuccess;
@@ -26,6 +28,12 @@ Result NpadVibration::Deactivate() {
return ResultSuccess;
}
+Result NpadVibration::SetSettingsService(
+ std::shared_ptr<Service::Set::ISystemSettingsServer> settings) {
+ m_set_sys = settings;
+ return ResultSuccess;
+}
+
Result NpadVibration::SetVibrationMasterVolume(f32 master_volume) {
std::scoped_lock lock{mutex};
@@ -34,7 +42,7 @@ Result NpadVibration::SetVibrationMasterVolume(f32 master_volume) {
}
volume = master_volume;
- // nn::settings::system::SetVibrationMasterVolume(master_volume);
+ m_set_sys->SetVibrationMasterVolume(master_volume);
return ResultSuccess;
}
@@ -48,10 +56,11 @@ Result NpadVibration::GetVibrationVolume(f32& out_volume) const {
Result NpadVibration::GetVibrationMasterVolume(f32& out_volume) const {
std::scoped_lock lock{mutex};
- const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
- // if (master_volume < 0.0f || master_volume > 1.0f) {
- // return ResultVibrationStrengthOutOfRange;
- // }
+ f32 master_volume = 1.0f;
+ m_set_sys->GetVibrationMasterVolume(master_volume);
+ if (master_volume < 0.0f || master_volume > 1.0f) {
+ return ResultVibrationStrengthOutOfRange;
+ }
out_volume = master_volume;
return ResultSuccess;
@@ -67,10 +76,11 @@ Result NpadVibration::BeginPermitVibrationSession(u64 aruid) {
Result NpadVibration::EndPermitVibrationSession() {
std::scoped_lock lock{mutex};
- const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
- // if (master_volume < 0.0f || master_volume > 1.0f) {
- // return ResultVibrationStrengthOutOfRange;
- // }
+ f32 master_volume = 1.0f;
+ m_set_sys->GetVibrationMasterVolume(master_volume);
+ if (master_volume < 0.0f || master_volume > 1.0f) {
+ return ResultVibrationStrengthOutOfRange;
+ }
volume = master_volume;
session_aruid = 0;