mixer/Pulse: convert to a class
This commit is contained in:
parent
bc1b4131cb
commit
9f625b0a0d
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -49,13 +49,13 @@ pulse_output_unlock(G_GNUC_UNUSED PulseOutput *po)
|
||||
|
||||
void
|
||||
pulse_output_set_mixer(G_GNUC_UNUSED PulseOutput *po,
|
||||
G_GNUC_UNUSED struct pulse_mixer *pm)
|
||||
G_GNUC_UNUSED PulseMixer *pm)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
pulse_output_clear_mixer(G_GNUC_UNUSED PulseOutput *po,
|
||||
G_GNUC_UNUSED struct pulse_mixer *pm)
|
||||
G_GNUC_UNUSED PulseMixer *pm)
|
||||
{
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user