summaryrefslogtreecommitdiffstats
path: root/src/audio_core/sink_details.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-12-13 22:23:31 +0100
committerLioncash <mathew1800@gmail.com>2018-12-13 22:44:32 +0100
commit6beb823f150c965adf057c3fd423aa23dcb77997 (patch)
treeba63f98b43c3d674aa719b018cf1fb4faa70a650 /src/audio_core/sink_details.h
parentMerge pull request #1846 from lioncash/dir (diff)
downloadyuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar.gz
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar.bz2
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar.lz
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar.xz
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.tar.zst
yuzu-6beb823f150c965adf057c3fd423aa23dcb77997.zip
Diffstat (limited to '')
-rw-r--r--src/audio_core/sink_details.h25
1 files changed, 6 insertions, 19 deletions
diff --git a/src/audio_core/sink_details.h b/src/audio_core/sink_details.h
index 03534b187..bc8786270 100644
--- a/src/audio_core/sink_details.h
+++ b/src/audio_core/sink_details.h
@@ -4,34 +4,21 @@
#pragma once
-#include <functional>
-#include <memory>
#include <string>
#include <string_view>
-#include <utility>
#include <vector>
namespace AudioCore {
class Sink;
-struct SinkDetails {
- using FactoryFn = std::function<std::unique_ptr<Sink>(std::string)>;
- using ListDevicesFn = std::function<std::vector<std::string>()>;
+/// Retrieves the IDs for all available audio sinks.
+std::vector<const char*> GetSinkIDs();
- SinkDetails(const char* id_, FactoryFn factory_, ListDevicesFn list_devices_)
- : id(id_), factory(std::move(factory_)), list_devices(std::move(list_devices_)) {}
+/// Gets the list of devices for a particular sink identified by the given ID.
+std::vector<std::string> GetDeviceListForSink(std::string_view sink_id);
- /// Name for this sink.
- const char* id;
- /// A method to call to construct an instance of this type of sink.
- FactoryFn factory;
- /// A method to call to list available devices.
- ListDevicesFn list_devices;
-};
-
-extern const std::vector<SinkDetails> g_sink_details;
-
-const SinkDetails& GetSinkDetails(std::string_view sink_id);
+/// Creates an audio sink identified by the given device ID.
+std::unique_ptr<Sink> CreateSinkFromID(std::string_view sink_id, std::string_view device_id);
} // namespace AudioCore