diff options
| author | David Marcec <dmarcecguzman@gmail.com> | 2018-09-23 22:32:01 +1000 | 
|---|---|---|
| committer | David Marcec <dmarcecguzman@gmail.com> | 2018-09-23 22:32:01 +1000 | 
| commit | c461188f516173302b1aa97bbe4ee358d776b8c8 (patch) | |
| tree | 2699c6c0d34f56908e950a65d038af2824cc6b13 | |
| parent | 93fea4e17943fa189f30a73c179d8efb64a83318 (diff) | |
Added audren:u#GetAudioRendererState
| -rw-r--r-- | src/audio_core/audio_renderer.cpp | 4 | ||||
| -rw-r--r-- | src/audio_core/audio_renderer.h | 1 | ||||
| -rw-r--r-- | src/audio_core/stream.cpp | 5 | ||||
| -rw-r--r-- | src/audio_core/stream.h | 3 | ||||
| -rw-r--r-- | src/core/hle/service/audio/audren_u.cpp | 9 | 
5 files changed, 21 insertions, 1 deletions
| diff --git a/src/audio_core/audio_renderer.cpp b/src/audio_core/audio_renderer.cpp index 83b75e61f..521b19ff7 100644 --- a/src/audio_core/audio_renderer.cpp +++ b/src/audio_core/audio_renderer.cpp @@ -79,6 +79,10 @@ u32 AudioRenderer::GetMixBufferCount() const {      return worker_params.mix_buffer_count;  } +u32 AudioRenderer::GetState() const { +    return stream->GetState(); +} +  std::vector<u8> AudioRenderer::UpdateAudioRenderer(const std::vector<u8>& input_params) {      // Copy UpdateDataHeader struct      UpdateDataHeader config{}; diff --git a/src/audio_core/audio_renderer.h b/src/audio_core/audio_renderer.h index 2c4f5ab75..be923ee65 100644 --- a/src/audio_core/audio_renderer.h +++ b/src/audio_core/audio_renderer.h @@ -170,6 +170,7 @@ public:      u32 GetSampleRate() const;      u32 GetSampleCount() const;      u32 GetMixBufferCount() const; +    u32 GetState() const;  private:      class VoiceState; diff --git a/src/audio_core/stream.cpp b/src/audio_core/stream.cpp index 449db2416..ee4aa98af 100644 --- a/src/audio_core/stream.cpp +++ b/src/audio_core/stream.cpp @@ -49,9 +49,14 @@ void Stream::Play() {  }  void Stream::Stop() { +    state = State::Stopped;      ASSERT_MSG(false, "Unimplemented");  } +u32 Stream::GetState() const { +    return static_cast<u32>(state); +} +  s64 Stream::GetBufferReleaseCycles(const Buffer& buffer) const {      const std::size_t num_samples{buffer.GetSamples().size() / GetNumChannels()};      return CoreTiming::usToCycles((static_cast<u64>(num_samples) * 1000000) / sample_rate); diff --git a/src/audio_core/stream.h b/src/audio_core/stream.h index 27db1112f..43eca74e1 100644 --- a/src/audio_core/stream.h +++ b/src/audio_core/stream.h @@ -72,6 +72,9 @@ public:      /// Gets the number of channels      u32 GetNumChannels() const; +    /// Get the state +    u32 GetState() const; +  private:      /// Current state of the stream      enum class State { diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 06ac6372d..80ed4b152 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp @@ -25,7 +25,7 @@ public:              {0, &IAudioRenderer::GetAudioRendererSampleRate, "GetAudioRendererSampleRate"},              {1, &IAudioRenderer::GetAudioRendererSampleCount, "GetAudioRendererSampleCount"},              {2, &IAudioRenderer::GetAudioRendererMixBufferCount, "GetAudioRendererMixBufferCount"}, -            {3, nullptr, "GetAudioRendererState"}, +            {3, &IAudioRenderer::GetAudioRendererState, "GetAudioRendererState"},              {4, &IAudioRenderer::RequestUpdateAudioRenderer, "RequestUpdateAudioRenderer"},              {5, &IAudioRenderer::StartAudioRenderer, "StartAudioRenderer"},              {6, &IAudioRenderer::StopAudioRenderer, "StopAudioRenderer"}, @@ -62,6 +62,13 @@ private:          LOG_DEBUG(Service_Audio, "called");      } +    void GetAudioRendererState(Kernel::HLERequestContext& ctx) { +        IPC::ResponseBuilder rb{ctx, 3}; +        rb.Push(RESULT_SUCCESS); +        rb.Push<u32>(renderer->GetState()); +        LOG_DEBUG(Service_Audio, "called"); +    } +      void GetAudioRendererMixBufferCount(Kernel::HLERequestContext& ctx) {          IPC::ResponseBuilder rb{ctx, 3};          rb.Push(RESULT_SUCCESS); | 
