aboutsummaryrefslogtreecommitdiffstats
path: root/src/mixer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mixer')
-rw-r--r--src/mixer/alsa_mixer.c29
-rw-r--r--src/mixer/oss_mixer.c29
2 files changed, 12 insertions, 46 deletions
diff --git a/src/mixer/alsa_mixer.c b/src/mixer/alsa_mixer.c
index f3213c4cf..95e5c70ee 100644
--- a/src/mixer/alsa_mixer.c
+++ b/src/mixer/alsa_mixer.c
@@ -36,16 +36,19 @@ struct alsa_mixer {
};
static struct mixer_data *
-alsa_mixer_init(void)
+alsa_mixer_init(const struct config_param *param)
{
struct alsa_mixer *am = g_malloc(sizeof(struct alsa_mixer));
- am->device = NULL;
- am->control = NULL;
+
+ am->device = config_dup_block_string(param, "mixer_device", NULL);
+ am->control = config_dup_block_string(param, "mixer_control", NULL);
+
am->handle = NULL;
am->elem = NULL;
am->volume_min = 0;
am->volume_max = 0;
am->volume_set = -1;
+
return (struct mixer_data *)am;
}
@@ -60,25 +63,6 @@ alsa_mixer_finish(struct mixer_data *data)
}
static void
-alsa_mixer_configure(struct mixer_data *data, const struct config_param *param)
-{
- struct alsa_mixer *am = (struct alsa_mixer *)data;
- const char *value;
-
- value = config_get_block_string(param, "mixer_device", NULL);
- if (value != NULL) {
- g_free(am->device);
- am->device = g_strdup(value);
- }
-
- value = config_get_block_string(param, "mixer_control", NULL);
- if (value != NULL) {
- g_free(am->control);
- am->control = g_strdup(value);
- }
-}
-
-static void
alsa_mixer_close(struct mixer_data *data)
{
struct alsa_mixer *am = (struct alsa_mixer *)data;
@@ -235,7 +219,6 @@ alsa_mixer_control(struct mixer_data *data, int cmd, void *arg)
const struct mixer_plugin alsa_mixer = {
.init = alsa_mixer_init,
.finish = alsa_mixer_finish,
- .configure = alsa_mixer_configure,
.open = alsa_mixer_open,
.control = alsa_mixer_control,
.close = alsa_mixer_close
diff --git a/src/mixer/oss_mixer.c b/src/mixer/oss_mixer.c
index 504fedc67..261616747 100644
--- a/src/mixer/oss_mixer.c
+++ b/src/mixer/oss_mixer.c
@@ -43,13 +43,16 @@ struct oss_mixer {
};
static struct mixer_data *
-oss_mixer_init(void)
+oss_mixer_init(const struct config_param *param)
{
struct oss_mixer *om = g_malloc(sizeof(struct oss_mixer));
- om->device = NULL;
- om->control = NULL;
+
+ om->device = config_dup_block_string(param, "mixer_device", NULL);
+ om->control = config_dup_block_string(param, "mixer_control", NULL);
+
om->device_fd = -1;
om->volume_control = SOUND_MIXER_PCM;
+
return (struct mixer_data *)om;
}
@@ -64,25 +67,6 @@ oss_mixer_finish(struct mixer_data *data)
}
static void
-oss_mixer_configure(struct mixer_data *data, const struct config_param *param)
-{
- struct oss_mixer *om = (struct oss_mixer *) data;
- const char *value;
-
- value = config_get_block_string(param, "mixer_device", NULL);
- if (value != NULL) {
- g_free(om->device);
- om->device = g_strdup(value);
- }
-
- value = config_get_block_string(param, "mixer_control", NULL);
- if (value != NULL) {
- g_free(om->control);
- om->control = g_strdup(value);
- }
-}
-
-static void
oss_mixer_close(struct mixer_data *data)
{
struct oss_mixer *om = (struct oss_mixer *) data;
@@ -215,7 +199,6 @@ oss_mixer_control(struct mixer_data *data, int cmd, void *arg)
const struct mixer_plugin oss_mixer = {
.init = oss_mixer_init,
.finish = oss_mixer_finish,
- .configure = oss_mixer_configure,
.open = oss_mixer_open,
.control = oss_mixer_control,
.close = oss_mixer_close