summaryrefslogtreecommitdiffstats
path: root/src/audio_core/cubeb_sink.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-07-31 05:29:17 +0200
committerGitHub <noreply@github.com>2018-07-31 05:29:17 +0200
commitbf9c62bc76a2296c1a81cfc1b83aaf4028578901 (patch)
treedad8906c597af3f579d4f72f4c9f493503c40665 /src/audio_core/cubeb_sink.h
parentPort #3758 from Citra (#852): Add missing std::string import in text_formatter (diff)
parentaudio_core: Implement Sink and SinkStream interfaces with cubeb. (diff)
downloadyuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar.gz
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar.bz2
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar.lz
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar.xz
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.tar.zst
yuzu-bf9c62bc76a2296c1a81cfc1b83aaf4028578901.zip
Diffstat (limited to 'src/audio_core/cubeb_sink.h')
-rw-r--r--src/audio_core/cubeb_sink.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/audio_core/cubeb_sink.h b/src/audio_core/cubeb_sink.h
new file mode 100644
index 000000000..d07113f1f
--- /dev/null
+++ b/src/audio_core/cubeb_sink.h
@@ -0,0 +1,31 @@
+// Copyright 2018 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+#include <vector>
+
+#include <cubeb/cubeb.h>
+
+#include "audio_core/sink.h"
+
+namespace AudioCore {
+
+class CubebSink final : public Sink {
+public:
+ explicit CubebSink(std::string device_id);
+ ~CubebSink() override;
+
+ SinkStream& AcquireSinkStream(u32 sample_rate, u32 num_channels) override;
+
+private:
+ cubeb* ctx{};
+ cubeb_devid output_device{};
+ std::vector<SinkStreamPtr> sink_streams;
+};
+
+std::vector<std::string> ListCubebSinkDevices();
+
+} // namespace AudioCore