From 6ada8d1fea43aa7ee8c45663d52e58e8611c9e1f Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 12 Feb 2009 03:47:27 +0100 Subject: instead of reparsing the rate module argument when changing profile, simply restore the originally requested sample_spec, this also makes sure the channel count is properly reset --- src/modules/bluetooth/module-bluetooth-device.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c index 94195957..bf288f4f 100644 --- a/src/modules/bluetooth/module-bluetooth-device.c +++ b/src/modules/bluetooth/module-bluetooth-device.c @@ -136,7 +136,7 @@ struct userdata { pa_memchunk write_memchunk; - pa_sample_spec sample_spec; + pa_sample_spec sample_spec, requested_sample_spec; int service_fd; int stream_fd; @@ -1571,13 +1571,7 @@ static int card_set_profile(pa_card *c, pa_card_profile *new_profile) { } u->profile = *d; - - /* Reinitialize the sample spec to default with module argument rate */ - u->sample_spec = u->module->core->default_sample_spec; - if (pa_modargs_get_value_u32(u->modargs, "rate", &u->sample_spec.rate) < 0 || - u->sample_spec.rate <= 0 || u->sample_spec.rate > PA_RATE_MAX) { - u->sample_spec = u->module->core->default_sample_spec; - } + u->sample_spec = u->requested_sample_spec; init_profile(u); @@ -1781,6 +1775,7 @@ int pa__init(pa_module* m) { goto fail; } u->sample_spec.channels = (uint8_t) channels; + u->requested_sample_spec = u->sample_spec; if (setup_dbus(u) < 0) goto fail; -- cgit