diff options
-rw-r--r-- | src/audio_core/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/audio_core/sink_details.cpp | 17 | ||||
-rw-r--r-- | src/audio_core/sink_details.h | 27 |
3 files changed, 46 insertions, 0 deletions
diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt index 46d3de578..5a2747e78 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 000000000..20412daaf --- /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 <memory> +#include <vector> + +#include "audio_core/null_sink.h" +#include "audio_core/sink_details.h" + +namespace AudioCore { + +const std::vector<SinkDetails> g_sink_details = { + { "null", []() { return std::make_unique<NullSink>(); } }, +}; + +} // namespace AudioCore diff --git a/src/audio_core/sink_details.h b/src/audio_core/sink_details.h new file mode 100644 index 000000000..4b30cf835 --- /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 <functional> +#include <memory> +#include <vector> + +namespace AudioCore { + +class Sink; + +struct SinkDetails { + SinkDetails(const char* id_, std::function<std::unique_ptr<Sink>()> 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<std::unique_ptr<Sink>()> factory; +}; + +extern const std::vector<SinkDetails> g_sink_details; + +} // namespace AudioCore |