output/MultipleOutputs: move code to LoadOutputControl()
This commit is contained in:
@@ -66,6 +66,18 @@ try {
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static AudioOutputControl *
|
||||||
|
LoadOutputControl(EventLoop &event_loop,
|
||||||
|
const ReplayGainConfig &replay_gain_config,
|
||||||
|
MixerListener &mixer_listener,
|
||||||
|
AudioOutputClient &client, const ConfigBlock &block)
|
||||||
|
{
|
||||||
|
auto *output = LoadOutput(event_loop, replay_gain_config,
|
||||||
|
mixer_listener,
|
||||||
|
client, block);
|
||||||
|
return new AudioOutputControl(output);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MultipleOutputs::Configure(EventLoop &event_loop,
|
MultipleOutputs::Configure(EventLoop &event_loop,
|
||||||
const ReplayGainConfig &replay_gain_config,
|
const ReplayGainConfig &replay_gain_config,
|
||||||
@@ -73,23 +85,25 @@ MultipleOutputs::Configure(EventLoop &event_loop,
|
|||||||
{
|
{
|
||||||
for (const auto *param = config_get_block(ConfigBlockOption::AUDIO_OUTPUT);
|
for (const auto *param = config_get_block(ConfigBlockOption::AUDIO_OUTPUT);
|
||||||
param != nullptr; param = param->next) {
|
param != nullptr; param = param->next) {
|
||||||
auto output = LoadOutput(event_loop, replay_gain_config,
|
auto *output = LoadOutputControl(event_loop,
|
||||||
|
replay_gain_config,
|
||||||
mixer_listener,
|
mixer_listener,
|
||||||
client, *param);
|
client, *param);
|
||||||
if (FindByName(output->GetName()) != nullptr)
|
if (FindByName(output->GetName()) != nullptr)
|
||||||
throw FormatRuntimeError("output devices with identical "
|
throw FormatRuntimeError("output devices with identical "
|
||||||
"names: %s", output->GetName());
|
"names: %s", output->GetName());
|
||||||
|
|
||||||
outputs.push_back(new AudioOutputControl(output));
|
outputs.push_back(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (outputs.empty()) {
|
if (outputs.empty()) {
|
||||||
/* auto-detect device */
|
/* auto-detect device */
|
||||||
const ConfigBlock empty;
|
const ConfigBlock empty;
|
||||||
auto output = LoadOutput(event_loop, replay_gain_config,
|
auto *output = LoadOutputControl(event_loop,
|
||||||
|
replay_gain_config,
|
||||||
mixer_listener,
|
mixer_listener,
|
||||||
client, empty);
|
client, empty);
|
||||||
outputs.push_back(new AudioOutputControl(output));
|
outputs.push_back(output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user