diff options
| author | 2020-07-12 21:59:14 +1000 | |
|---|---|---|
| committer | 2020-07-25 12:39:34 +1000 | |
| commit | 380658c21d39cf05ac765a9284da246388cca2a4 (patch) | |
| tree | 1416cd7e9aee96ec40675078d16a8240d410d04b /src/audio_core/cubeb_sink.cpp | |
| parent | Merge pull request #4377 from Morph1984/dark-themes (diff) | |
| download | yuzu-380658c21d39cf05ac765a9284da246388cca2a4.tar.gz yuzu-380658c21d39cf05ac765a9284da246388cca2a4.tar.xz yuzu-380658c21d39cf05ac765a9284da246388cca2a4.zip | |
audio_core: Apollo Part 1, AudioRenderer refactor
Diffstat (limited to 'src/audio_core/cubeb_sink.cpp')
| -rw-r--r-- | src/audio_core/cubeb_sink.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/audio_core/cubeb_sink.cpp b/src/audio_core/cubeb_sink.cpp index 41bf5cd4d..cbd6c56da 100644 --- a/src/audio_core/cubeb_sink.cpp +++ b/src/audio_core/cubeb_sink.cpp | |||
| @@ -23,14 +23,24 @@ class CubebSinkStream final : public SinkStream { | |||
| 23 | public: | 23 | public: |
| 24 | CubebSinkStream(cubeb* ctx, u32 sample_rate, u32 num_channels_, cubeb_devid output_device, | 24 | CubebSinkStream(cubeb* ctx, u32 sample_rate, u32 num_channels_, cubeb_devid output_device, |
| 25 | const std::string& name) | 25 | const std::string& name) |
| 26 | : ctx{ctx}, num_channels{std::min(num_channels_, 2u)}, time_stretch{sample_rate, | 26 | : ctx{ctx}, num_channels{std::min(num_channels_, 6u)}, time_stretch{sample_rate, |
| 27 | num_channels} { | 27 | num_channels} { |
| 28 | 28 | ||
| 29 | cubeb_stream_params params{}; | 29 | cubeb_stream_params params{}; |
| 30 | params.rate = sample_rate; | 30 | params.rate = sample_rate; |
| 31 | params.channels = num_channels; | 31 | params.channels = num_channels; |
| 32 | params.format = CUBEB_SAMPLE_S16NE; | 32 | params.format = CUBEB_SAMPLE_S16NE; |
| 33 | params.layout = num_channels == 1 ? CUBEB_LAYOUT_MONO : CUBEB_LAYOUT_STEREO; | 33 | switch (num_channels) { |
| 34 | case 1: | ||
| 35 | params.layout = CUBEB_LAYOUT_MONO; | ||
| 36 | break; | ||
| 37 | case 2: | ||
| 38 | params.layout = CUBEB_LAYOUT_STEREO; | ||
| 39 | break; | ||
| 40 | case 6: | ||
| 41 | params.layout = CUBEB_LAYOUT_3F2_LFE; | ||
| 42 | break; | ||
| 43 | } | ||
| 34 | 44 | ||
| 35 | u32 minimum_latency{}; | 45 | u32 minimum_latency{}; |
| 36 | if (cubeb_get_min_latency(ctx, ¶ms, &minimum_latency) != CUBEB_OK) { | 46 | if (cubeb_get_min_latency(ctx, ¶ms, &minimum_latency) != CUBEB_OK) { |