From 8b94422e3e51d29171c7e8cc02bec1fbec9b29ea Mon Sep 17 00:00:00 2001 From: MerryMage Date: Thu, 28 Apr 2016 14:28:59 +0100 Subject: [PATCH] AudioCore: List of sink types --- src/audio_core/CMakeLists.txt | 2 ++ src/audio_core/sink_details.cpp | 17 +++++++++++++++++ src/audio_core/sink_details.h | 27 +++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 src/audio_core/sink_details.cpp create mode 100644 src/audio_core/sink_details.h diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt index 46d3de578f..5a2747e78d 100644 --- a/src/audio_core/CMakeLists.txt +++ b/src/audio_core/CMakeLists.txt @@ -5,6 +5,7 @@ set(SRCS hle/filter.cpp hle/pipe.cpp interpolate.cpp + sink_details.cpp ) set(HEADERS @@ -17,6 +18,7 @@ set(HEADERS interpolate.h null_sink.h sink.h + sink_details.h ) include_directories(../../externals/soundtouch/include) diff --git a/src/audio_core/sink_details.cpp b/src/audio_core/sink_details.cpp new file mode 100644 index 0000000000..20412daaf2 --- /dev/null +++ b/src/audio_core/sink_details.cpp @@ -0,0 +1,17 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include + +#include "audio_core/null_sink.h" +#include "audio_core/sink_details.h" + +namespace AudioCore { + +const std::vector g_sink_details = { + { "null", []() { return std::make_unique(); } }, +}; + +} // namespace AudioCore diff --git a/src/audio_core/sink_details.h b/src/audio_core/sink_details.h new file mode 100644 index 0000000000..4b30cf835f --- /dev/null +++ b/src/audio_core/sink_details.h @@ -0,0 +1,27 @@ +// Copyright 2016 Citra 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()> factory_) + : id(id_), factory(factory_) {} + + /// Name for this sink. + const char* id; + /// A method to call to construct an instance of this type of sink. + std::function()> factory; +}; + +extern const std::vector g_sink_details; + +} // namespace AudioCore