diff options
author | Max Kellermann <max@duempel.org> | 2009-01-25 17:37:59 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-25 17:37:59 +0100 |
commit | 8695b9423233e9e8ad18ed7b4d56a020254fbdd6 (patch) | |
tree | d8053ae96ef50e9ab69499b5e8a2702364974cfa | |
parent | 763dd8c1dd4de451663474bafd13068eb6017bbb (diff) | |
download | mpd-8695b9423233e9e8ad18ed7b4d56a020254fbdd6.tar.gz mpd-8695b9423233e9e8ad18ed7b4d56a020254fbdd6.tar.xz mpd-8695b9423233e9e8ad18ed7b4d56a020254fbdd6.zip |
mixer: removed mixer_configure(), configure mixer in mixer_new()
Allocate the mixer object when it is configured.
Merged mixer_configure() into mixer_new(). mixer_new() was quite
useless anyway.
-rw-r--r-- | src/mixer_api.c | 10 | ||||
-rw-r--r-- | src/mixer_api.h | 3 | ||||
-rw-r--r-- | src/output/alsa_plugin.c | 8 | ||||
-rw-r--r-- | src/output/oss_plugin.c | 6 |
4 files changed, 7 insertions, 20 deletions
diff --git a/src/mixer_api.c b/src/mixer_api.c index cd216415a..b0fea9a7a 100644 --- a/src/mixer_api.c +++ b/src/mixer_api.c @@ -38,11 +38,13 @@ void mixer_finish(struct mixer *mixer) } struct mixer * -mixer_new(const struct mixer_plugin *plugin) +mixer_new(const struct mixer_plugin *plugin, const struct config_param *param) { struct mixer *mixer = g_new(struct mixer, 1); mixer_init(mixer, plugin); + plugin->configure(mixer->data, param); + return mixer; } @@ -53,12 +55,6 @@ mixer_free(struct mixer *mixer) g_free(mixer); } -void mixer_configure(struct mixer *mixer, const struct config_param *param) -{ - assert(mixer != NULL && mixer->plugin != NULL); - mixer->plugin->configure(mixer->data, param); -} - bool mixer_open(struct mixer *mixer) { assert(mixer != NULL && mixer->plugin != NULL); diff --git a/src/mixer_api.h b/src/mixer_api.h index c563457c2..cc0d8327f 100644 --- a/src/mixer_api.h +++ b/src/mixer_api.h @@ -73,12 +73,11 @@ void mixer_init(struct mixer *mixer, const struct mixer_plugin *plugin); void mixer_finish(struct mixer *mixer); struct mixer * -mixer_new(const struct mixer_plugin *plugin); +mixer_new(const struct mixer_plugin *plugin, const struct config_param *param); void mixer_free(struct mixer *mixer); -void mixer_configure(struct mixer *mixer, const struct config_param *param); bool mixer_open(struct mixer *mixer); bool mixer_control(struct mixer *mixer, int cmd, void *arg); void mixer_close(struct mixer *mixer); diff --git a/src/output/alsa_plugin.c b/src/output/alsa_plugin.c index f08e99041..43ce99605 100644 --- a/src/output/alsa_plugin.c +++ b/src/output/alsa_plugin.c @@ -89,9 +89,6 @@ alsa_data_new(void) ret->pcm = NULL; ret->writei = snd_pcm_writei; - //use alsa mixer by default - ret->mixer = mixer_new(&alsa_mixer); - return ret; } @@ -146,10 +143,7 @@ alsa_init(G_GNUC_UNUSED struct audio_output *ao, } alsa_configure(ad, param); - - if (param) { - mixer_configure(ad->mixer, param); - } + ad->mixer = mixer_new(&alsa_mixer, param); return ad; } diff --git a/src/output/oss_plugin.c b/src/output/oss_plugin.c index 0107dbdd2..33587be2c 100644 --- a/src/output/oss_plugin.c +++ b/src/output/oss_plugin.c @@ -278,8 +278,6 @@ static OssData *newOssData(void) supportParam(ret, SNDCTL_DSP_CHANNELS, 2); supportParam(ret, SNDCTL_DSP_SAMPLESIZE, 16); - ret->mixer = mixer_new(&oss_mixer); - return ret; } @@ -357,7 +355,7 @@ static void *oss_open_default(const struct config_param *param) if (ret[i] == 0) { OssData *od = newOssData(); od->device = default_devices[i]; - mixer_configure(od->mixer, param); + od->mixer = mixer_new(&oss_mixer, param); return od; } } @@ -398,7 +396,7 @@ oss_initDriver(G_GNUC_UNUSED struct audio_output *audioOutput, if (device != NULL) { OssData *od = newOssData(); od->device = device; - mixer_configure(od->mixer, param); + od->mixer = mixer_new(&oss_mixer, param); return od; } |