forked from ShuriZma/suyu
1
0
Fork 0

sink_details: Deduplicate long std::function repetition

We can just use type aliases to avoid needing to write the same long
type twice
This commit is contained in:
Lioncash 2018-08-01 23:55:59 -04:00
parent 89ebef6571
commit 2bc4ab3958
1 changed files with 6 additions and 4 deletions

View File

@ -14,16 +14,18 @@ namespace AudioCore {
class Sink; class Sink;
struct SinkDetails { struct SinkDetails {
SinkDetails(const char* id_, std::function<std::unique_ptr<Sink>(std::string)> factory_, using FactoryFn = std::function<std::unique_ptr<Sink>(std::string)>;
std::function<std::vector<std::string>()> list_devices_) using ListDevicesFn = std::function<std::vector<std::string>()>;
SinkDetails(const char* id_, FactoryFn factory_, ListDevicesFn list_devices_)
: id(id_), factory(std::move(factory_)), list_devices(std::move(list_devices_)) {} : id(id_), factory(std::move(factory_)), list_devices(std::move(list_devices_)) {}
/// Name for this sink. /// Name for this sink.
const char* id; const char* id;
/// A method to call to construct an instance of this type of sink. /// A method to call to construct an instance of this type of sink.
std::function<std::unique_ptr<Sink>(std::string device_id)> factory; FactoryFn factory;
/// A method to call to list available devices. /// A method to call to list available devices.
std::function<std::vector<std::string>()> list_devices; ListDevicesFn list_devices;
}; };
extern const std::vector<SinkDetails> g_sink_details; extern const std::vector<SinkDetails> g_sink_details;