null_sink.h 865 B

123456789101112131415161718192021222324252627282930313233
  1. // Copyright 2018 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include "audio_core/sink.h"
  6. namespace AudioCore {
  7. class NullSink final : public Sink {
  8. public:
  9. explicit NullSink(std::string_view) {}
  10. ~NullSink() override = default;
  11. SinkStream& AcquireSinkStream(u32 /*sample_rate*/, u32 /*num_channels*/,
  12. const std::string& /*name*/) override {
  13. return null_sink_stream;
  14. }
  15. private:
  16. struct NullSinkStreamImpl final : SinkStream {
  17. void EnqueueSamples(u32 /*num_channels*/, const std::vector<s16>& /*samples*/) override {}
  18. std::size_t SamplesInQueue(u32 /*num_channels*/) const override {
  19. return 0;
  20. }
  21. void Flush() override {}
  22. } null_sink_stream;
  23. };
  24. } // namespace AudioCore