aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer
diff options
context:
space:
mode:
authoremmauss <emmausssss@gmail.com>2018-10-07 18:12:11 +0300
committerThomas Guillemard <thog@protonmail.com>2018-10-07 17:12:11 +0200
commit625fc8c0e0f7a10bbdabe86f9cc86b16d1a62be3 (patch)
treea0f8d488a0b918226460a738689ca7c005cbfbba /Ryujinx.HLE/HOS/Services/Aud/AudioRenderer
parentcaa181edf2c956a1433d3c2f8678231af52f9dad (diff)
Stubs Again (#439)
* stub/implement audren commands * stub ISelfController get/set IdleTimeDetectonExtension * stub irs * add irs logclass, stub mmu:u irequest 1 * style fixes, addressed comments
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Aud/AudioRenderer')
-rw-r--r--Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
index 85f82622..13225951 100644
--- a/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
+++ b/Ryujinx.HLE/HOS/Services/Aud/AudioRenderer/IAudioRenderer.cs
@@ -38,6 +38,8 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
private int Track;
+ private PlayState PlayState;
+
public IAudioRenderer(
Horizon System,
AMemory Memory,
@@ -46,6 +48,10 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
{
m_Commands = new Dictionary<int, ServiceProcessRequest>()
{
+ { 0, GetSampleRate },
+ { 1, GetSampleCount },
+ { 2, GetMixBufferCount },
+ { 3, GetState },
{ 4, RequestUpdateAudioRenderer },
{ 5, StartAudioRenderer },
{ 6, StopAudioRenderer },
@@ -68,6 +74,42 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
Voices = CreateArray<VoiceContext>(Params.VoiceCount);
InitializeAudioOut();
+
+ PlayState = PlayState.Stopped;
+ }
+
+ // GetSampleRate() -> u32
+ public long GetSampleRate(ServiceCtx Context)
+ {
+ Context.ResponseData.Write(Params.SampleRate);
+
+ return 0;
+ }
+
+ // GetSampleCount() -> u32
+ public long GetSampleCount(ServiceCtx Context)
+ {
+ Context.ResponseData.Write(Params.SampleCount);
+
+ return 0;
+ }
+
+ // GetMixBufferCount() -> u32
+ public long GetMixBufferCount(ServiceCtx Context)
+ {
+ Context.ResponseData.Write(Params.MixCount);
+
+ return 0;
+ }
+
+ // GetState() -> u32
+ private long GetState(ServiceCtx Context)
+ {
+ Context.ResponseData.Write((int)PlayState);
+
+ Context.Device.Log.PrintStub(LogClass.ServiceAudio, $"Stubbed. Renderer State: {Enum.GetName(typeof(PlayState), PlayState)}");
+
+ return 0;
}
private void AudioCallback()
@@ -206,6 +248,8 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
{
Context.Device.Log.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ PlayState = PlayState.Playing;
+
return 0;
}
@@ -213,6 +257,8 @@ namespace Ryujinx.HLE.HOS.Services.Aud.AudioRenderer
{
Context.Device.Log.PrintStub(LogClass.ServiceAudio, "Stubbed.");
+ PlayState = PlayState.Stopped;
+
return 0;
}