AudioCore: List of sink types

This commit is contained in:
MerryMage 2016-04-28 14:28:59 +01:00
parent 7d106eff10
commit 8b94422e3e
3 changed files with 46 additions and 0 deletions

View File

@ -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)

View File

@ -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

View File

@ -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