null_sink.h 846 B

1234567891011121314151617181920212223242526272829303132
  1. // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include "audio_core/sink.h"
  5. namespace AudioCore {
  6. class NullSink final : public Sink {
  7. public:
  8. explicit NullSink(std::string_view) {}
  9. ~NullSink() override = default;
  10. SinkStream& AcquireSinkStream(u32 /*sample_rate*/, u32 /*num_channels*/,
  11. const std::string& /*name*/) override {
  12. return null_sink_stream;
  13. }
  14. private:
  15. struct NullSinkStreamImpl final : SinkStream {
  16. void EnqueueSamples(u32 /*num_channels*/, const std::vector<s16>& /*samples*/) override {}
  17. std::size_t SamplesInQueue(u32 /*num_channels*/) const override {
  18. return 0;
  19. }
  20. void Flush() override {}
  21. } null_sink_stream;
  22. };
  23. } // namespace AudioCore