service/audctl: Implement GetTargetVolumeMin() and GetTargetVolumeMax()

These two service functions are literally hardcoded to always return
these values without any other error checking.
This commit is contained in:
Lioncash 2019-04-18 15:57:16 -04:00
parent 83b830eb2f
commit 19f8f86bdb
2 changed files with 32 additions and 2 deletions

View file

@ -2,6 +2,8 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "common/logging/log.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/audio/audctl.h" #include "core/hle/service/audio/audctl.h"
namespace Service::Audio { namespace Service::Audio {
@ -11,8 +13,8 @@ AudCtl::AudCtl() : ServiceFramework{"audctl"} {
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "GetTargetVolume"}, {0, nullptr, "GetTargetVolume"},
{1, nullptr, "SetTargetVolume"}, {1, nullptr, "SetTargetVolume"},
{2, nullptr, "GetTargetVolumeMin"}, {2, &AudCtl::GetTargetVolumeMin, "GetTargetVolumeMin"},
{3, nullptr, "GetTargetVolumeMax"}, {3, &AudCtl::GetTargetVolumeMax, "GetTargetVolumeMax"},
{4, nullptr, "IsTargetMute"}, {4, nullptr, "IsTargetMute"},
{5, nullptr, "SetTargetMute"}, {5, nullptr, "SetTargetMute"},
{6, nullptr, "IsTargetConnected"}, {6, nullptr, "IsTargetConnected"},
@ -44,4 +46,28 @@ AudCtl::AudCtl() : ServiceFramework{"audctl"} {
AudCtl::~AudCtl() = default; AudCtl::~AudCtl() = default;
void AudCtl::GetTargetVolumeMin(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Audio, "called.");
// This service function is currently hardcoded on the
// actual console to this value (as of 6.0.0).
constexpr s32 target_min_volume = 0;
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.Push(target_min_volume);
}
void AudCtl::GetTargetVolumeMax(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Audio, "called.");
// This service function is currently hardcoded on the
// actual console to this value (as of 6.0.0).
constexpr s32 target_max_volume = 15;
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.Push(target_max_volume);
}
} // namespace Service::Audio } // namespace Service::Audio

View file

@ -12,6 +12,10 @@ class AudCtl final : public ServiceFramework<AudCtl> {
public: public:
explicit AudCtl(); explicit AudCtl();
~AudCtl() override; ~AudCtl() override;
private:
void GetTargetVolumeMin(Kernel::HLERequestContext& ctx);
void GetTargetVolumeMax(Kernel::HLERequestContext& ctx);
}; };
} // namespace Service::Audio } // namespace Service::Audio