2022-04-23 04:59:50 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2018-07-31 19:59:42 -04:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "core/hle/service/service.h"
|
|
|
|
|
|
2020-11-26 15:19:08 -05:00
|
|
|
namespace Core {
|
|
|
|
|
class System;
|
|
|
|
|
}
|
|
|
|
|
|
2018-07-31 19:59:42 -04:00
|
|
|
namespace Service::Audio {
|
|
|
|
|
|
|
|
|
|
class AudCtl final : public ServiceFramework<AudCtl> {
|
|
|
|
|
public:
|
2020-11-26 15:19:08 -05:00
|
|
|
explicit AudCtl(Core::System& system_);
|
2018-09-10 21:20:52 -04:00
|
|
|
~AudCtl() override;
|
2019-04-18 15:57:16 -04:00
|
|
|
|
|
|
|
|
private:
|
2023-08-05 20:14:42 -06:00
|
|
|
enum class AudioOutputMode {
|
|
|
|
|
Invalid,
|
|
|
|
|
Pcm1ch,
|
|
|
|
|
Pcm2ch,
|
|
|
|
|
Pcm6ch,
|
|
|
|
|
PcmAuto,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class ForceMutePolicy {
|
|
|
|
|
Disable,
|
|
|
|
|
SpeakerMuteOnHeadphoneUnplugged,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class HeadphoneOutputLevelMode {
|
|
|
|
|
Normal,
|
|
|
|
|
HighPower,
|
|
|
|
|
};
|
|
|
|
|
|
2023-02-19 14:42:12 -05:00
|
|
|
void GetTargetVolumeMin(HLERequestContext& ctx);
|
|
|
|
|
void GetTargetVolumeMax(HLERequestContext& ctx);
|
2023-08-05 20:14:42 -06:00
|
|
|
void GetForceMutePolicy(HLERequestContext& ctx);
|
|
|
|
|
void GetOutputModeSetting(HLERequestContext& ctx);
|
|
|
|
|
void GetHeadphoneOutputLevelMode(HLERequestContext& ctx);
|
|
|
|
|
void IsSpeakerAutoMuteEnabled(HLERequestContext& ctx);
|
2018-07-31 19:59:42 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace Service::Audio
|