aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-04-16 20:47:55 +0200
committerMax Kellermann <max@duempel.org>2013-04-16 21:18:54 +0200
commit9f625b0a0da86b0a75de5b3805085301d6690cf1 (patch)
treecea9e06e4789bf0d4313d670669f791da9e4208e /src
parentbc1b4131cbee13fa892ff2d5be5b5e0bbf1ae43d (diff)
downloadmpd-9f625b0a0da86b0a75de5b3805085301d6690cf1.tar.gz
mpd-9f625b0a0da86b0a75de5b3805085301d6690cf1.tar.xz
mpd-9f625b0a0da86b0a75de5b3805085301d6690cf1.zip
mixer/Pulse: convert to a class
Diffstat (limited to 'src')
-rw-r--r--src/mixer/PulseMixerPlugin.cxx39
-rw-r--r--src/mixer/PulseMixerPlugin.hxx8
-rw-r--r--src/output/PulseOutputPlugin.cxx7
-rw-r--r--src/output/PulseOutputPlugin.hxx6
4 files changed, 28 insertions, 32 deletions
diff --git a/src/mixer/PulseMixerPlugin.cxx b/src/mixer/PulseMixerPlugin.cxx
index 70d0247ac..99e381952 100644
--- a/src/mixer/PulseMixerPlugin.cxx
+++ b/src/mixer/PulseMixerPlugin.cxx
@@ -39,14 +39,17 @@
#undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "pulse_mixer"
-struct pulse_mixer {
- struct mixer base;
-
+struct PulseMixer : mixer {
PulseOutput *output;
bool online;
struct pa_cvolume volume;
+ PulseMixer(PulseOutput *_output)
+ :output(_output), online(false)
+ {
+ mixer_init(this, &pulse_mixer_plugin);
+ }
};
/**
@@ -59,7 +62,7 @@ pulse_mixer_quark(void)
}
static void
-pulse_mixer_offline(struct pulse_mixer *pm)
+pulse_mixer_offline(PulseMixer *pm)
{
if (!pm->online)
return;
@@ -77,7 +80,7 @@ static void
pulse_mixer_volume_cb(G_GNUC_UNUSED pa_context *context, const pa_sink_input_info *i,
int eol, void *userdata)
{
- struct pulse_mixer *pm = (struct pulse_mixer *)userdata;
+ PulseMixer *pm = (PulseMixer *)userdata;
if (eol)
return;
@@ -94,7 +97,7 @@ pulse_mixer_volume_cb(G_GNUC_UNUSED pa_context *context, const pa_sink_input_inf
}
static void
-pulse_mixer_update(struct pulse_mixer *pm,
+pulse_mixer_update(PulseMixer *pm,
struct pa_context *context, struct pa_stream *stream)
{
pa_operation *o;
@@ -117,7 +120,7 @@ pulse_mixer_update(struct pulse_mixer *pm,
}
void
-pulse_mixer_on_connect(G_GNUC_UNUSED struct pulse_mixer *pm,
+pulse_mixer_on_connect(G_GNUC_UNUSED PulseMixer *pm,
struct pa_context *context)
{
pa_operation *o;
@@ -137,13 +140,13 @@ pulse_mixer_on_connect(G_GNUC_UNUSED struct pulse_mixer *pm,
}
void
-pulse_mixer_on_disconnect(struct pulse_mixer *pm)
+pulse_mixer_on_disconnect(PulseMixer *pm)
{
pulse_mixer_offline(pm);
}
void
-pulse_mixer_on_change(struct pulse_mixer *pm,
+pulse_mixer_on_change(PulseMixer *pm,
struct pa_context *context, struct pa_stream *stream)
{
pulse_mixer_update(pm, context, stream);
@@ -161,33 +164,27 @@ pulse_mixer_init(void *ao, G_GNUC_UNUSED const struct config_param *param,
return nullptr;
}
- struct pulse_mixer *pm = g_new(struct pulse_mixer,1);
- mixer_init(&pm->base, &pulse_mixer_plugin);
-
- pm->online = false;
- pm->output = po;
+ PulseMixer *pm = new PulseMixer(po);
pulse_output_set_mixer(po, pm);
- return &pm->base;
+ return pm;
}
static void
pulse_mixer_finish(struct mixer *data)
{
- struct pulse_mixer *pm = (struct pulse_mixer *) data;
+ PulseMixer *pm = (PulseMixer *) data;
pulse_output_clear_mixer(pm->output, pm);
- /* free resources */
-
- g_free(pm);
+ delete pm;
}
static int
pulse_mixer_get_volume(struct mixer *mixer, G_GNUC_UNUSED GError **error_r)
{
- struct pulse_mixer *pm = (struct pulse_mixer *) mixer;
+ PulseMixer *pm = (PulseMixer *) mixer;
int ret;
pulse_output_lock(pm->output);
@@ -204,7 +201,7 @@ pulse_mixer_get_volume(struct mixer *mixer, G_GNUC_UNUSED GError **error_r)
static bool
pulse_mixer_set_volume(struct mixer *mixer, unsigned volume, GError **error_r)
{
- struct pulse_mixer *pm = (struct pulse_mixer *) mixer;
+ PulseMixer *pm = (PulseMixer *) mixer;
struct pa_cvolume cvolume;
bool success;
diff --git a/src/mixer/PulseMixerPlugin.hxx b/src/mixer/PulseMixerPlugin.hxx
index 4c12beffb..debc2cf3c 100644
--- a/src/mixer/PulseMixerPlugin.hxx
+++ b/src/mixer/PulseMixerPlugin.hxx
@@ -22,7 +22,7 @@
#include <pulse/def.h>
-struct pulse_mixer;
+struct PulseMixer;
struct pa_context;
struct pa_stream;
@@ -31,13 +31,13 @@ extern "C" {
#endif
void
-pulse_mixer_on_connect(struct pulse_mixer *pm, struct pa_context *context);
+pulse_mixer_on_connect(PulseMixer *pm, struct pa_context *context);
void
-pulse_mixer_on_disconnect(struct pulse_mixer *pm);
+pulse_mixer_on_disconnect(PulseMixer *pm);
void
-pulse_mixer_on_change(struct pulse_mixer *pm,
+pulse_mixer_on_change(PulseMixer *pm,
struct pa_context *context, struct pa_stream *stream);
#ifdef __cplusplus
diff --git a/src/output/PulseOutputPlugin.cxx b/src/output/PulseOutputPlugin.cxx
index a893b0087..261c92a04 100644
--- a/src/output/PulseOutputPlugin.cxx
+++ b/src/output/PulseOutputPlugin.cxx
@@ -52,7 +52,7 @@ struct PulseOutput {
const char *server;
const char *sink;
- struct pulse_mixer *mixer;
+ PulseMixer *mixer;
struct pa_threaded_mainloop *mainloop;
struct pa_context *context;
@@ -91,7 +91,7 @@ pulse_output_unlock(PulseOutput *po)
}
void
-pulse_output_set_mixer(PulseOutput *po, struct pulse_mixer *pm)
+pulse_output_set_mixer(PulseOutput *po, PulseMixer *pm)
{
assert(po != nullptr);
assert(po->mixer == nullptr);
@@ -117,8 +117,7 @@ pulse_output_set_mixer(PulseOutput *po, struct pulse_mixer *pm)
}
void
-pulse_output_clear_mixer(PulseOutput *po,
- G_GNUC_UNUSED struct pulse_mixer *pm)
+pulse_output_clear_mixer(PulseOutput *po, gcc_unused PulseMixer *pm)
{
assert(po != nullptr);
assert(pm != nullptr);
diff --git a/src/output/PulseOutputPlugin.hxx b/src/output/PulseOutputPlugin.hxx
index b120aa182..26ee25a41 100644
--- a/src/output/PulseOutputPlugin.hxx
+++ b/src/output/PulseOutputPlugin.hxx
@@ -25,7 +25,7 @@
#include <stdbool.h>
struct PulseOutput;
-struct pulse_mixer;
+struct PulseMixer;
struct pa_cvolume;
extern const struct audio_output_plugin pulse_output_plugin;
@@ -41,10 +41,10 @@ void
pulse_output_unlock(PulseOutput *po);
void
-pulse_output_set_mixer(PulseOutput *po, struct pulse_mixer *pm);
+pulse_output_set_mixer(PulseOutput *po, PulseMixer *pm);
void
-pulse_output_clear_mixer(PulseOutput *po, struct pulse_mixer *pm);
+pulse_output_clear_mixer(PulseOutput *po, PulseMixer *pm);
bool
pulse_output_set_volume(PulseOutput *po,