diff options
Diffstat (limited to 'src/output/plugins/PulseOutputPlugin.cxx')
-rw-r--r-- | src/output/plugins/PulseOutputPlugin.cxx | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx index ecfd9658f..4c9fc2cc3 100644 --- a/src/output/plugins/PulseOutputPlugin.cxx +++ b/src/output/plugins/PulseOutputPlugin.cxx @@ -66,6 +66,7 @@ struct PulseOutput { static bool TestDefaultDevice(); bool Configure(const config_param ¶m, Error &error); + static PulseOutput *Create(const config_param ¶m, Error &error); bool Enable(Error &error); void Disable(); @@ -381,21 +382,19 @@ PulseOutput::Configure(const config_param ¶m, Error &error) return true; } -static AudioOutput * -pulse_output_init(const config_param ¶m, Error &error) +PulseOutput * +PulseOutput::Create(const config_param ¶m, Error &error) { - PulseOutput *po; - setenv("PULSE_PROP_media.role", "music", true); setenv("PULSE_PROP_application.icon_name", "mpd", true); - po = new PulseOutput(); + auto *po = new PulseOutput(); if (!po->Configure(param, error)) { delete po; return nullptr; } - return &po->base; + return po; } inline bool @@ -849,8 +848,7 @@ inline bool PulseOutput::TestDefaultDevice() { const config_param empty; - PulseOutput *po = (PulseOutput *) - pulse_output_init(empty, IgnoreError()); + PulseOutput *po = PulseOutput::Create(empty, IgnoreError()); if (po == nullptr) return false; @@ -870,7 +868,7 @@ typedef AudioOutputWrapper<PulseOutput> Wrapper; const struct AudioOutputPlugin pulse_output_plugin = { "pulse", pulse_output_test_default_device, - pulse_output_init, + &Wrapper::Init, &Wrapper::Finish, &Wrapper::Enable, &Wrapper::Disable, |