npad_vibration.cpp 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-3.0-or-later
  3. #include "hid_core/hid_result.h"
  4. #include "hid_core/resources/npad/npad_vibration.h"
  5. namespace Service::HID {
  6. NpadVibration::NpadVibration() {}
  7. NpadVibration::~NpadVibration() = default;
  8. Result NpadVibration::Activate() {
  9. std::scoped_lock lock{mutex};
  10. const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
  11. // if (master_volume < 0.0f || master_volume > 1.0f) {
  12. // return ResultVibrationStrenghtOutOfRange;
  13. // }
  14. volume = master_volume;
  15. return ResultSuccess;
  16. }
  17. Result NpadVibration::Deactivate() {
  18. return ResultSuccess;
  19. }
  20. Result NpadVibration::SetVibrationMasterVolume(f32 master_volume) {
  21. std::scoped_lock lock{mutex};
  22. if (master_volume < 0.0f && master_volume > 1.0f) {
  23. return ResultVibrationStrenghtOutOfRange;
  24. }
  25. volume = master_volume;
  26. // nn::settings::system::SetVibrationMasterVolume(master_volume);
  27. return ResultSuccess;
  28. }
  29. Result NpadVibration::GetVibrationVolume(f32& out_volume) const {
  30. std::scoped_lock lock{mutex};
  31. out_volume = volume;
  32. return ResultSuccess;
  33. }
  34. Result NpadVibration::GetVibrationMasterVolume(f32& out_volume) const {
  35. std::scoped_lock lock{mutex};
  36. const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
  37. // if (master_volume < 0.0f || master_volume > 1.0f) {
  38. // return ResultVibrationStrenghtOutOfRange;
  39. // }
  40. out_volume = master_volume;
  41. return ResultSuccess;
  42. }
  43. Result NpadVibration::BeginPermitVibrationSession(u64 aruid) {
  44. std::scoped_lock lock{mutex};
  45. session_aruid = aruid;
  46. volume = 1.0;
  47. return ResultSuccess;
  48. }
  49. Result NpadVibration::EndPermitVibrationSession() {
  50. std::scoped_lock lock{mutex};
  51. const f32 master_volume = 1.0f; // nn::settings::system::GetVibrationMasterVolume();
  52. // if (master_volume < 0.0f || master_volume > 1.0f) {
  53. // return ResultVibrationStrenghtOutOfRange;
  54. // }
  55. volume = master_volume;
  56. session_aruid = 0;
  57. return ResultSuccess;
  58. }
  59. } // namespace Service::HID