diff options
| author | bunnei <bunneidev@gmail.com> | 2018-07-28 13:40:50 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2018-07-30 21:45:24 -0400 |
| commit | 9ef227e09d6e374008d9536935d01c11a6ca06bd (patch) | |
| tree | 55a0169ab36ff521770a94a59b857063caf65f8b /src/audio_core/sink_stream.h | |
| parent | 0e8a2c7222b978507f62d7e0b83187b16532eae8 (diff) | |
audio_core: Add interfaces for Sink and SinkStream.
Diffstat (limited to 'src/audio_core/sink_stream.h')
| -rw-r--r-- | src/audio_core/sink_stream.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/audio_core/sink_stream.h b/src/audio_core/sink_stream.h new file mode 100644 index 000000000..e7a3f01b0 --- /dev/null +++ b/src/audio_core/sink_stream.h @@ -0,0 +1,32 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <memory> + +#include "common/common_types.h" + +namespace AudioCore { + +/** + * Accepts samples in stereo signed PCM16 format to be output. Sinks *do not* handle resampling and + * expect the correct sample rate. They are dumb outputs. + */ +class SinkStream { +public: + virtual ~SinkStream() = default; + + /** + * Feed stereo samples to sink. + * @param num_channels Number of channels used. + * @param samples Samples in interleaved stereo PCM16 format. + * @param sample_count Number of samples. + */ + virtual void EnqueueSamples(u32 num_channels, const s16* samples, size_t sample_count) = 0; +}; + +using SinkStreamPtr = std::unique_ptr<SinkStream>; + +} // namespace AudioCore |
