diff options
author | Max Kellermann <max@duempel.org> | 2009-01-25 17:38:12 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-25 17:38:12 +0100 |
commit | dc575106c296435940482cc2655804c71ee2d934 (patch) | |
tree | 4c5a455e28a224fdab697c4b00f34305b2e67281 /src/mixer/oss_mixer.c | |
parent | db2058a26580681911aed09b427472ccde0176dd (diff) | |
download | mpd-dc575106c296435940482cc2655804c71ee2d934.tar.gz mpd-dc575106c296435940482cc2655804c71ee2d934.tar.xz mpd-dc575106c296435940482cc2655804c71ee2d934.zip |
mixer: merged methods "init" and "configure"
Both methods are always called together. There is no point in having
them separate. This simplifies the code, because the old configure()
method could be called more than once, and had to free old
allocations.
Diffstat (limited to '')
-rw-r--r-- | src/mixer/oss_mixer.c | 29 |
1 files changed, 6 insertions, 23 deletions
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 |