From 9ef227e09d6e374008d9536935d01c11a6ca06bd Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 28 Jul 2018 13:40:50 -0400 Subject: audio_core: Add interfaces for Sink and SinkStream. --- src/audio_core/sink_details.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/audio_core/sink_details.h (limited to 'src/audio_core/sink_details.h') 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 +#include +#include + +namespace AudioCore { + +class Sink; + +struct SinkDetails { + SinkDetails(const char* id_, std::function(std::string)> factory_, + std::function()> 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::string device_id)> factory; + /// A method to call to list available devices. + std::function()> list_devices; +}; + +extern const std::vector g_sink_details; + +const SinkDetails& GetSinkDetails(std::string sink_id); + +} // namespace AudioCore -- cgit v1.2.3