sink_context.cpp 1.2 KB

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