diff options
| author | 2018-09-23 22:32:01 +1000 | |
|---|---|---|
| committer | 2018-09-23 22:32:01 +1000 | |
| commit | c461188f516173302b1aa97bbe4ee358d776b8c8 (patch) | |
| tree | 2699c6c0d34f56908e950a65d038af2824cc6b13 /src | |
| parent | Merge pull request #1378 from lioncash/thread (diff) | |
| download | yuzu-c461188f516173302b1aa97bbe4ee358d776b8c8.tar.gz yuzu-c461188f516173302b1aa97bbe4ee358d776b8c8.tar.xz yuzu-c461188f516173302b1aa97bbe4ee358d776b8c8.zip | |
Added audren:u#GetAudioRendererState
Diffstat (limited to 'src')
| -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 { | |||
| 79 | return worker_params.mix_buffer_count; | 79 | return worker_params.mix_buffer_count; |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | u32 AudioRenderer::GetState() const { | ||
| 83 | return stream->GetState(); | ||
| 84 | } | ||
| 85 | |||
| 82 | std::vector<u8> AudioRenderer::UpdateAudioRenderer(const std::vector<u8>& input_params) { | 86 | std::vector<u8> AudioRenderer::UpdateAudioRenderer(const std::vector<u8>& input_params) { |
| 83 | // Copy UpdateDataHeader struct | 87 | // Copy UpdateDataHeader struct |
| 84 | UpdateDataHeader config{}; | 88 | 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: | |||
| 170 | u32 GetSampleRate() const; | 170 | u32 GetSampleRate() const; |
| 171 | u32 GetSampleCount() const; | 171 | u32 GetSampleCount() const; |
| 172 | u32 GetMixBufferCount() const; | 172 | u32 GetMixBufferCount() const; |
| 173 | u32 GetState() const; | ||
| 173 | 174 | ||
| 174 | private: | 175 | private: |
| 175 | class VoiceState; | 176 | 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() { | |||
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | void Stream::Stop() { | 51 | void Stream::Stop() { |
| 52 | state = State::Stopped; | ||
| 52 | ASSERT_MSG(false, "Unimplemented"); | 53 | ASSERT_MSG(false, "Unimplemented"); |
| 53 | } | 54 | } |
| 54 | 55 | ||
| 56 | u32 Stream::GetState() const { | ||
| 57 | return static_cast<u32>(state); | ||
| 58 | } | ||
| 59 | |||
| 55 | s64 Stream::GetBufferReleaseCycles(const Buffer& buffer) const { | 60 | s64 Stream::GetBufferReleaseCycles(const Buffer& buffer) const { |
| 56 | const std::size_t num_samples{buffer.GetSamples().size() / GetNumChannels()}; | 61 | const std::size_t num_samples{buffer.GetSamples().size() / GetNumChannels()}; |
| 57 | return CoreTiming::usToCycles((static_cast<u64>(num_samples) * 1000000) / sample_rate); | 62 | 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: | |||
| 72 | /// Gets the number of channels | 72 | /// Gets the number of channels |
| 73 | u32 GetNumChannels() const; | 73 | u32 GetNumChannels() const; |
| 74 | 74 | ||
| 75 | /// Get the state | ||
| 76 | u32 GetState() const; | ||
| 77 | |||
| 75 | private: | 78 | private: |
| 76 | /// Current state of the stream | 79 | /// Current state of the stream |
| 77 | enum class State { | 80 | 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: | |||
| 25 | {0, &IAudioRenderer::GetAudioRendererSampleRate, "GetAudioRendererSampleRate"}, | 25 | {0, &IAudioRenderer::GetAudioRendererSampleRate, "GetAudioRendererSampleRate"}, |
| 26 | {1, &IAudioRenderer::GetAudioRendererSampleCount, "GetAudioRendererSampleCount"}, | 26 | {1, &IAudioRenderer::GetAudioRendererSampleCount, "GetAudioRendererSampleCount"}, |
| 27 | {2, &IAudioRenderer::GetAudioRendererMixBufferCount, "GetAudioRendererMixBufferCount"}, | 27 | {2, &IAudioRenderer::GetAudioRendererMixBufferCount, "GetAudioRendererMixBufferCount"}, |
| 28 | {3, nullptr, "GetAudioRendererState"}, | 28 | {3, &IAudioRenderer::GetAudioRendererState, "GetAudioRendererState"}, |
| 29 | {4, &IAudioRenderer::RequestUpdateAudioRenderer, "RequestUpdateAudioRenderer"}, | 29 | {4, &IAudioRenderer::RequestUpdateAudioRenderer, "RequestUpdateAudioRenderer"}, |
| 30 | {5, &IAudioRenderer::StartAudioRenderer, "StartAudioRenderer"}, | 30 | {5, &IAudioRenderer::StartAudioRenderer, "StartAudioRenderer"}, |
| 31 | {6, &IAudioRenderer::StopAudioRenderer, "StopAudioRenderer"}, | 31 | {6, &IAudioRenderer::StopAudioRenderer, "StopAudioRenderer"}, |
| @@ -62,6 +62,13 @@ private: | |||
| 62 | LOG_DEBUG(Service_Audio, "called"); | 62 | LOG_DEBUG(Service_Audio, "called"); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | void GetAudioRendererState(Kernel::HLERequestContext& ctx) { | ||
| 66 | IPC::ResponseBuilder rb{ctx, 3}; | ||
| 67 | rb.Push(RESULT_SUCCESS); | ||
| 68 | rb.Push<u32>(renderer->GetState()); | ||
| 69 | LOG_DEBUG(Service_Audio, "called"); | ||
| 70 | } | ||
| 71 | |||
| 65 | void GetAudioRendererMixBufferCount(Kernel::HLERequestContext& ctx) { | 72 | void GetAudioRendererMixBufferCount(Kernel::HLERequestContext& ctx) { |
| 66 | IPC::ResponseBuilder rb{ctx, 3}; | 73 | IPC::ResponseBuilder rb{ctx, 3}; |
| 67 | rb.Push(RESULT_SUCCESS); | 74 | rb.Push(RESULT_SUCCESS); |