Commit e5847f1d authored by Max Kellermann's avatar Max Kellermann

output/MultipleOutputs: move code to LoadOutputControl()

parent 86d05e98
...@@ -66,6 +66,18 @@ try { ...@@ -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, ...@@ -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,
mixer_listener, replay_gain_config,
client, *param); mixer_listener,
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,
mixer_listener, replay_gain_config,
client, empty); mixer_listener,
outputs.push_back(new AudioOutputControl(output)); client, empty);
outputs.push_back(output);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment