diff options
author | bunnei <bunneidev@gmail.com> | 2018-07-28 19:40:50 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-07-31 03:45:24 +0200 |
commit | 9ef227e09d6e374008d9536935d01c11a6ca06bd (patch) | |
tree | 55a0169ab36ff521770a94a59b857063caf65f8b /src/audio_core/sink_details.h | |
parent | audio_core: Misc. improvements to stream/buffer/audio_out. (diff) | |
download | yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar.gz yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar.bz2 yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar.lz yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar.xz yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.tar.zst yuzu-9ef227e09d6e374008d9536935d01c11a6ca06bd.zip |
Diffstat (limited to 'src/audio_core/sink_details.h')
-rw-r--r-- | src/audio_core/sink_details.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/audio_core/sink_details.h b/src/audio_core/sink_details.h new file mode 100644 index 000000000..aa8aae1a9 --- /dev/null +++ b/src/audio_core/sink_details.h @@ -0,0 +1,32 @@ +// Copyright 2018 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <functional> +#include <memory> +#include <vector> + +namespace AudioCore { + +class Sink; + +struct SinkDetails { + SinkDetails(const char* id_, std::function<std::unique_ptr<Sink>(std::string)> factory_, + std::function<std::vector<std::string>()> list_devices_) + : id(id_), factory(factory_), list_devices(list_devices_) {} + + /// Name for this sink. + const char* id; + /// A method to call to construct an instance of this type of sink. + std::function<std::unique_ptr<Sink>(std::string device_id)> factory; + /// A method to call to list available devices. + std::function<std::vector<std::string>()> list_devices; +}; + +extern const std::vector<SinkDetails> g_sink_details; + +const SinkDetails& GetSinkDetails(std::string sink_id); + +} // namespace AudioCore |