summaryrefslogtreecommitdiffstats
path: root/src/audio_core/sink/sink_details.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio_core/sink/sink_details.h')
-rw-r--r--src/audio_core/sink/sink_details.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/audio_core/sink/sink_details.h b/src/audio_core/sink/sink_details.h
new file mode 100644
index 000000000..3ebdb1e30
--- /dev/null
+++ b/src/audio_core/sink/sink_details.h
@@ -0,0 +1,43 @@
+// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <string>
+#include <string_view>
+#include <vector>
+
+namespace AudioCore {
+class AudioManager;
+
+namespace Sink {
+
+class Sink;
+
+/**
+ * Retrieves the IDs for all available audio sinks.
+ *
+ * @return Vector of available sink names.
+ */
+std::vector<const char*> GetSinkIDs();
+
+/**
+ * Gets the list of devices for a particular sink identified by the given ID.
+ *
+ * @param sink_id - Id of the sink to get devices from.
+ * @param capture - Get capture (input) devices, or output devices?
+ * @return Vector of device names.
+ */
+std::vector<std::string> GetDeviceListForSink(std::string_view sink_id, bool capture);
+
+/**
+ * Creates an audio sink identified by the given device ID.
+ *
+ * @param sink_id - Id of the sink to create.
+ * @param device_id - Name of the device to create.
+ * @return Pointer to the created sink.
+ */
+std::unique_ptr<Sink> CreateSinkFromID(std::string_view sink_id, std::string_view device_id);
+
+} // namespace Sink
+} // namespace AudioCore