audctl.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "core/hle/service/service.h"
  5. namespace Core {
  6. class System;
  7. }
  8. namespace Service::Set {
  9. class ISystemSettingsServer;
  10. }
  11. namespace Service::Audio {
  12. class AudCtl final : public ServiceFramework<AudCtl> {
  13. public:
  14. explicit AudCtl(Core::System& system_);
  15. ~AudCtl() override;
  16. private:
  17. enum class ForceMutePolicy {
  18. Disable,
  19. SpeakerMuteOnHeadphoneUnplugged,
  20. };
  21. enum class HeadphoneOutputLevelMode {
  22. Normal,
  23. HighPower,
  24. };
  25. void GetTargetVolumeMin(HLERequestContext& ctx);
  26. void GetTargetVolumeMax(HLERequestContext& ctx);
  27. void GetAudioOutputMode(HLERequestContext& ctx);
  28. void SetAudioOutputMode(HLERequestContext& ctx);
  29. void GetForceMutePolicy(HLERequestContext& ctx);
  30. void GetOutputModeSetting(HLERequestContext& ctx);
  31. void SetOutputModeSetting(HLERequestContext& ctx);
  32. void SetHeadphoneOutputLevelMode(HLERequestContext& ctx);
  33. void GetHeadphoneOutputLevelMode(HLERequestContext& ctx);
  34. void SetSpeakerAutoMuteEnabled(HLERequestContext& ctx);
  35. void IsSpeakerAutoMuteEnabled(HLERequestContext& ctx);
  36. void AcquireTargetNotification(HLERequestContext& ctx);
  37. std::shared_ptr<Service::Set::ISystemSettingsServer> m_set_sys;
  38. };
  39. } // namespace Service::Audio