diff options
author | Lioncash <mathew1800@gmail.com> | 2018-12-13 22:23:31 +0100 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-12-13 22:44:32 +0100 |
commit | 6beb823f150c965adf057c3fd423aa23dcb77997 (patch) | |
tree | ba63f98b43c3d674aa719b018cf1fb4faa70a650 /src/audio_core/sink_details.h | |
parent | Merge pull request #1846 from lioncash/dir (diff) | |
download | yuzu-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 'src/audio_core/sink_details.h')
-rw-r--r-- | src/audio_core/sink_details.h | 25 |
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 |