diff options
Diffstat (limited to 'src/output')
-rw-r--r-- | src/output/Init.cxx | 15 | ||||
-rw-r--r-- | src/output/Internal.hxx | 3 | ||||
-rw-r--r-- | src/output/MultipleOutputs.cxx | 10 | ||||
-rw-r--r-- | src/output/MultipleOutputs.hxx | 3 |
4 files changed, 17 insertions, 14 deletions
diff --git a/src/output/Init.cxx b/src/output/Init.cxx index 372bb4276..a983ff7c8 100644 --- a/src/output/Init.cxx +++ b/src/output/Init.cxx @@ -112,7 +112,7 @@ audio_output_mixer_type(const config_param ¶m) } static Mixer * -audio_output_load_mixer(AudioOutput *ao, +audio_output_load_mixer(EventLoop &event_loop, AudioOutput *ao, const config_param ¶m, const struct mixer_plugin *plugin, Filter &filter_chain, @@ -129,10 +129,10 @@ audio_output_load_mixer(AudioOutput *ao, if (plugin == nullptr) return nullptr; - return mixer_new(plugin, ao, param, error); + return mixer_new(event_loop, plugin, ao, param, error); case MIXER_TYPE_SOFTWARE: - mixer = mixer_new(&software_mixer_plugin, nullptr, + mixer = mixer_new(event_loop, &software_mixer_plugin, nullptr, config_param(), IgnoreError()); assert(mixer != nullptr); @@ -211,7 +211,8 @@ AudioOutput::Configure(const config_param ¶m, Error &error) } static bool -audio_output_setup(AudioOutput *ao, const config_param ¶m, +audio_output_setup(EventLoop &event_loop, AudioOutput *ao, + const config_param ¶m, Error &error) { @@ -241,7 +242,7 @@ audio_output_setup(AudioOutput *ao, const config_param ¶m, /* set up the mixer */ Error mixer_error; - ao->mixer = audio_output_load_mixer(ao, param, + ao->mixer = audio_output_load_mixer(event_loop, ao, param, ao->plugin.mixer_plugin, *ao->filter, mixer_error); if (ao->mixer == nullptr && mixer_error.IsDefined()) @@ -277,7 +278,7 @@ audio_output_setup(AudioOutput *ao, const config_param ¶m, } AudioOutput * -audio_output_new(const config_param ¶m, +audio_output_new(EventLoop &event_loop, const config_param ¶m, PlayerControl &pc, Error &error) { @@ -316,7 +317,7 @@ audio_output_new(const config_param ¶m, if (ao == nullptr) return nullptr; - if (!audio_output_setup(ao, param, error)) { + if (!audio_output_setup(event_loop, ao, param, error)) { ao_plugin_finish(ao); return nullptr; } diff --git a/src/output/Internal.hxx b/src/output/Internal.hxx index a443d0642..9b08a9228 100644 --- a/src/output/Internal.hxx +++ b/src/output/Internal.hxx @@ -32,6 +32,7 @@ class Error; class Filter; class MusicPipe; +class EventLoop; struct music_chunk; struct config_param; struct PlayerControl; @@ -422,7 +423,7 @@ private: extern struct notify audio_output_client_notify; AudioOutput * -audio_output_new(const config_param ¶m, +audio_output_new(EventLoop &event_loop, const config_param ¶m, PlayerControl &pc, Error &error); diff --git a/src/output/MultipleOutputs.cxx b/src/output/MultipleOutputs.cxx index 66390f24d..a65fb73c0 100644 --- a/src/output/MultipleOutputs.cxx +++ b/src/output/MultipleOutputs.cxx @@ -50,10 +50,10 @@ MultipleOutputs::~MultipleOutputs() } static AudioOutput * -LoadOutput(PlayerControl &pc, const config_param ¶m) +LoadOutput(EventLoop &event_loop, PlayerControl &pc, const config_param ¶m) { Error error; - AudioOutput *output = audio_output_new(param, pc, error); + AudioOutput *output = audio_output_new(event_loop, param, pc, error); if (output == nullptr) { if (param.line > 0) FormatFatalError("line %i: %s", @@ -67,12 +67,12 @@ LoadOutput(PlayerControl &pc, const config_param ¶m) } void -MultipleOutputs::Configure(PlayerControl &pc) +MultipleOutputs::Configure(EventLoop &event_loop, PlayerControl &pc) { const config_param *param = nullptr; while ((param = config_get_next_param(CONF_AUDIO_OUTPUT, param)) != nullptr) { - auto output = LoadOutput(pc, *param); + auto output = LoadOutput(event_loop, pc, *param); if (FindByName(output->name) != nullptr) FormatFatalError("output devices with identical " "names: %s", output->name); @@ -83,7 +83,7 @@ MultipleOutputs::Configure(PlayerControl &pc) if (outputs.empty()) { /* auto-detect device */ const config_param empty; - auto output = LoadOutput(pc, empty); + auto output = LoadOutput(event_loop, pc, empty); outputs.push_back(output); } } diff --git a/src/output/MultipleOutputs.hxx b/src/output/MultipleOutputs.hxx index 7790f83a4..4fe1aa4f1 100644 --- a/src/output/MultipleOutputs.hxx +++ b/src/output/MultipleOutputs.hxx @@ -37,6 +37,7 @@ struct AudioFormat; class MusicBuffer; class MusicPipe; +class EventLoop; struct music_chunk; struct PlayerControl; struct AudioOutput; @@ -72,7 +73,7 @@ public: MultipleOutputs(); ~MultipleOutputs(); - void Configure(PlayerControl &pc); + void Configure(EventLoop &event_loop, PlayerControl &pc); /** * Returns the total number of audio output devices, including |