mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-23 17:00:57 +01:00
Merge pull request #2181 from lioncash/audren2
service/audio/audren_u: Implement OpenAudioRendererAuto
This commit is contained in:
commit
115fc6120c
2 changed files with 20 additions and 7 deletions
|
@ -235,7 +235,7 @@ AudRenU::AudRenU() : ServiceFramework("audren:u") {
|
||||||
{0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
|
{0, &AudRenU::OpenAudioRenderer, "OpenAudioRenderer"},
|
||||||
{1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"},
|
{1, &AudRenU::GetAudioRendererWorkBufferSize, "GetAudioRendererWorkBufferSize"},
|
||||||
{2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
|
{2, &AudRenU::GetAudioDeviceService, "GetAudioDeviceService"},
|
||||||
{3, nullptr, "OpenAudioRendererAuto"},
|
{3, &AudRenU::OpenAudioRendererAuto, "OpenAudioRendererAuto"},
|
||||||
{4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
|
{4, &AudRenU::GetAudioDeviceServiceWithRevisionInfo, "GetAudioDeviceServiceWithRevisionInfo"},
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
@ -248,12 +248,7 @@ AudRenU::~AudRenU() = default;
|
||||||
void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) {
|
void AudRenU::OpenAudioRenderer(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_DEBUG(Service_Audio, "called");
|
LOG_DEBUG(Service_Audio, "called");
|
||||||
|
|
||||||
IPC::RequestParser rp{ctx};
|
OpenAudioRendererImpl(ctx);
|
||||||
auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
|
||||||
|
|
||||||
rb.Push(RESULT_SUCCESS);
|
|
||||||
rb.PushIpcInterface<Audio::IAudioRenderer>(std::move(params));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
|
void AudRenU::GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx) {
|
||||||
|
@ -325,6 +320,12 @@ void AudRenU::GetAudioDeviceService(Kernel::HLERequestContext& ctx) {
|
||||||
rb.PushIpcInterface<Audio::IAudioDevice>();
|
rb.PushIpcInterface<Audio::IAudioDevice>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AudRenU::OpenAudioRendererAuto(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_DEBUG(Service_Audio, "called");
|
||||||
|
|
||||||
|
OpenAudioRendererImpl(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) {
|
void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_Audio, "(STUBBED) called");
|
LOG_WARNING(Service_Audio, "(STUBBED) called");
|
||||||
|
|
||||||
|
@ -335,6 +336,15 @@ void AudRenU::GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& c
|
||||||
// based on the current revision
|
// based on the current revision
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AudRenU::OpenAudioRendererImpl(Kernel::HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
const auto params = rp.PopRaw<AudioCore::AudioRendererParameter>();
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
||||||
|
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.PushIpcInterface<IAudioRenderer>(params);
|
||||||
|
}
|
||||||
|
|
||||||
bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
|
bool AudRenU::IsFeatureSupported(AudioFeatures feature, u32_le revision) const {
|
||||||
u32_be version_num = (revision - Common::MakeMagic('R', 'E', 'V', '0')); // Byte swap
|
u32_be version_num = (revision - Common::MakeMagic('R', 'E', 'V', '0')); // Byte swap
|
||||||
switch (feature) {
|
switch (feature) {
|
||||||
|
|
|
@ -21,8 +21,11 @@ private:
|
||||||
void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
|
void OpenAudioRenderer(Kernel::HLERequestContext& ctx);
|
||||||
void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
|
void GetAudioRendererWorkBufferSize(Kernel::HLERequestContext& ctx);
|
||||||
void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
|
void GetAudioDeviceService(Kernel::HLERequestContext& ctx);
|
||||||
|
void OpenAudioRendererAuto(Kernel::HLERequestContext& ctx);
|
||||||
void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
|
void GetAudioDeviceServiceWithRevisionInfo(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
|
void OpenAudioRendererImpl(Kernel::HLERequestContext& ctx);
|
||||||
|
|
||||||
enum class AudioFeatures : u32 {
|
enum class AudioFeatures : u32 {
|
||||||
Splitter,
|
Splitter,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue