1 // Copyright 2020 yuzu Emulator Project
2 // Licensed under GPLv2 or any later version
3 // Refer to the license.txt file included.
4 
5 #include "audio_core/sink_context.h"
6 
7 namespace AudioCore {
SinkContext(std::size_t sink_count_)8 SinkContext::SinkContext(std::size_t sink_count_) : sink_count{sink_count_} {}
9 SinkContext::~SinkContext() = default;
10 
GetCount() const11 std::size_t SinkContext::GetCount() const {
12     return sink_count;
13 }
14 
UpdateMainSink(const SinkInfo::InParams & in)15 void SinkContext::UpdateMainSink(const SinkInfo::InParams& in) {
16     ASSERT(in.type == SinkTypes::Device);
17 
18     has_downmix_coefs = in.device.down_matrix_enabled;
19     if (has_downmix_coefs) {
20         downmix_coefficients = in.device.down_matrix_coef;
21     }
22     in_use = in.in_use;
23     use_count = in.device.input_count;
24     buffers = in.device.input;
25 }
26 
InUse() const27 bool SinkContext::InUse() const {
28     return in_use;
29 }
30 
OutputBuffers() const31 std::vector<u8> SinkContext::OutputBuffers() const {
32     std::vector<u8> buffer_ret(use_count);
33     std::memcpy(buffer_ret.data(), buffers.data(), use_count);
34     return buffer_ret;
35 }
36 
HasDownMixingCoefficients() const37 bool SinkContext::HasDownMixingCoefficients() const {
38     return has_downmix_coefs;
39 }
40 
GetDownmixCoefficients() const41 const DownmixCoefficients& SinkContext::GetDownmixCoefficients() const {
42     return downmix_coefficients;
43 }
44 
45 } // namespace AudioCore
46