diff options
| author | 2016-08-31 16:55:10 +0100 | |
|---|---|---|
| committer | 2016-08-31 16:55:10 +0100 | |
| commit | 0ef4185644def3e7d99d88af3c8dd27d40660c82 (patch) | |
| tree | 0a6b8f018184ea30b5b8471520bd426b6de52b65 /src | |
| parent | Merge pull request #2034 from JayFoxRox/avoid-glsl-error (diff) | |
| download | yuzu-0ef4185644def3e7d99d88af3c8dd27d40660c82.tar.gz yuzu-0ef4185644def3e7d99d88af3c8dd27d40660c82.tar.xz yuzu-0ef4185644def3e7d99d88af3c8dd27d40660c82.zip | |
sink: Change EnqueueSamples to take a pointer to a buffer instead of a std::vector
Diffstat (limited to 'src')
| -rw-r--r-- | src/audio_core/hle/dsp.cpp | 3 | ||||
| -rw-r--r-- | src/audio_core/null_sink.h | 2 | ||||
| -rw-r--r-- | src/audio_core/sdl2_sink.cpp | 6 | ||||
| -rw-r--r-- | src/audio_core/sdl2_sink.h | 2 | ||||
| -rw-r--r-- | src/audio_core/sink.h | 5 |
5 files changed, 9 insertions, 9 deletions
diff --git a/src/audio_core/hle/dsp.cpp b/src/audio_core/hle/dsp.cpp index 0640e1eff..a195bc74c 100644 --- a/src/audio_core/hle/dsp.cpp +++ b/src/audio_core/hle/dsp.cpp | |||
| @@ -90,7 +90,8 @@ static AudioCore::TimeStretcher time_stretcher; | |||
| 90 | 90 | ||
| 91 | static void OutputCurrentFrame(const StereoFrame16& frame) { | 91 | static void OutputCurrentFrame(const StereoFrame16& frame) { |
| 92 | time_stretcher.AddSamples(&frame[0][0], frame.size()); | 92 | time_stretcher.AddSamples(&frame[0][0], frame.size()); |
| 93 | sink->EnqueueSamples(time_stretcher.Process(sink->SamplesInQueue())); | 93 | std::vector<s16> stretched_samples = time_stretcher.Process(sink->SamplesInQueue()); |
| 94 | sink->EnqueueSamples(stretched_samples.data(), stretched_samples.size() / 2); | ||
| 94 | } | 95 | } |
| 95 | 96 | ||
| 96 | // Public Interface | 97 | // Public Interface |
diff --git a/src/audio_core/null_sink.h b/src/audio_core/null_sink.h index faf0ee4e1..9931c4778 100644 --- a/src/audio_core/null_sink.h +++ b/src/audio_core/null_sink.h | |||
| @@ -19,7 +19,7 @@ public: | |||
| 19 | return native_sample_rate; | 19 | return native_sample_rate; |
| 20 | } | 20 | } |
| 21 | 21 | ||
| 22 | void EnqueueSamples(const std::vector<s16>&) override {} | 22 | void EnqueueSamples(const s16*, size_t) override {} |
| 23 | 23 | ||
| 24 | size_t SamplesInQueue() const override { | 24 | size_t SamplesInQueue() const override { |
| 25 | return 0; | 25 | return 0; |
diff --git a/src/audio_core/sdl2_sink.cpp b/src/audio_core/sdl2_sink.cpp index dc75c04ee..311dd5b59 100644 --- a/src/audio_core/sdl2_sink.cpp +++ b/src/audio_core/sdl2_sink.cpp | |||
| @@ -71,14 +71,12 @@ unsigned int SDL2Sink::GetNativeSampleRate() const { | |||
| 71 | return impl->sample_rate; | 71 | return impl->sample_rate; |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | void SDL2Sink::EnqueueSamples(const std::vector<s16>& samples) { | 74 | void SDL2Sink::EnqueueSamples(const s16* samples, size_t sample_count) { |
| 75 | if (impl->audio_device_id <= 0) | 75 | if (impl->audio_device_id <= 0) |
| 76 | return; | 76 | return; |
| 77 | 77 | ||
| 78 | ASSERT_MSG(samples.size() % 2 == 0, "Samples must be in interleaved stereo PCM16 format (size must be a multiple of two)"); | ||
| 79 | |||
| 80 | SDL_LockAudioDevice(impl->audio_device_id); | 78 | SDL_LockAudioDevice(impl->audio_device_id); |
| 81 | impl->queue.emplace_back(samples); | 79 | impl->queue.emplace_back(samples, samples + sample_count * 2); |
| 82 | SDL_UnlockAudioDevice(impl->audio_device_id); | 80 | SDL_UnlockAudioDevice(impl->audio_device_id); |
| 83 | } | 81 | } |
| 84 | 82 | ||
diff --git a/src/audio_core/sdl2_sink.h b/src/audio_core/sdl2_sink.h index 0f296b673..b13827214 100644 --- a/src/audio_core/sdl2_sink.h +++ b/src/audio_core/sdl2_sink.h | |||
| @@ -18,7 +18,7 @@ public: | |||
| 18 | 18 | ||
| 19 | unsigned int GetNativeSampleRate() const override; | 19 | unsigned int GetNativeSampleRate() const override; |
| 20 | 20 | ||
| 21 | void EnqueueSamples(const std::vector<s16>& samples) override; | 21 | void EnqueueSamples(const s16* samples, size_t sample_count) override; |
| 22 | 22 | ||
| 23 | size_t SamplesInQueue() const override; | 23 | size_t SamplesInQueue() const override; |
| 24 | 24 | ||
diff --git a/src/audio_core/sink.h b/src/audio_core/sink.h index 1c881c3d2..a06fc3dcc 100644 --- a/src/audio_core/sink.h +++ b/src/audio_core/sink.h | |||
| @@ -23,9 +23,10 @@ public: | |||
| 23 | 23 | ||
| 24 | /** | 24 | /** |
| 25 | * Feed stereo samples to sink. | 25 | * Feed stereo samples to sink. |
| 26 | * @param samples Samples in interleaved stereo PCM16 format. Size of vector must be multiple of two. | 26 | * @param samples Samples in interleaved stereo PCM16 format. |
| 27 | * @param sample_count Number of samples. | ||
| 27 | */ | 28 | */ |
| 28 | virtual void EnqueueSamples(const std::vector<s16>& samples) = 0; | 29 | virtual void EnqueueSamples(const s16* samples, size_t sample_count) = 0; |
| 29 | 30 | ||
| 30 | /// Samples enqueued that have not been played yet. | 31 | /// Samples enqueued that have not been played yet. |
| 31 | virtual std::size_t SamplesInQueue() const = 0; | 32 | virtual std::size_t SamplesInQueue() const = 0; |