diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index 821a60c62..fb3c6ccf4 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -2011,6 +2011,8 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca size_t frame_size; bool use_mmap = true, b, use_tsched = true, d, ignore_dB = false, namereg_fail = false, deferred_volume = false, set_formats = false, fixed_latency_range = false; pa_sink_new_data data; + bool volume_is_set; + bool mute_is_set; pa_alsa_profile_set *profile_set = NULL; void *state = NULL; @@ -2292,6 +2294,8 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca u->sink = pa_sink_new(m->core, &data, PA_SINK_HARDWARE | PA_SINK_LATENCY | (u->use_tsched ? PA_SINK_DYNAMIC_LATENCY : 0) | (set_formats ? PA_SINK_SET_FORMATS : 0)); + volume_is_set = data.volume_is_set; + mute_is_set = data.muted_is_set; pa_sink_new_data_done(&data); if (!u->sink) { @@ -2375,7 +2379,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca thread_name = NULL; /* Get initial mixer settings */ - if (data.volume_is_set) { + if (volume_is_set) { if (u->sink->set_volume) u->sink->set_volume(u->sink); } else { @@ -2383,7 +2387,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca u->sink->get_volume(u->sink); } - if (data.muted_is_set) { + if (mute_is_set) { if (u->sink->set_mute) u->sink->set_mute(u->sink); } else { @@ -2395,7 +2399,7 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca } } - if ((data.volume_is_set || data.muted_is_set) && u->sink->write_volume) + if ((volume_is_set || mute_is_set) && u->sink->write_volume) u->sink->write_volume(u->sink); if (set_formats) { diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c index 43c038e4a..72c2f6e1d 100644 --- a/src/modules/alsa/alsa-source.c +++ b/src/modules/alsa/alsa-source.c @@ -1728,6 +1728,8 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p size_t frame_size; bool use_mmap = true, b, use_tsched = true, d, ignore_dB = false, namereg_fail = false, deferred_volume = false, fixed_latency_range = false; pa_source_new_data data; + bool volume_is_set; + bool mute_is_set; pa_alsa_profile_set *profile_set = NULL; void *state = NULL; @@ -1997,6 +1999,8 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p pa_alsa_add_ports(&data, u->mixer_path_set, card); u->source = pa_source_new(m->core, &data, PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY|(u->use_tsched ? PA_SOURCE_DYNAMIC_LATENCY : 0)); + volume_is_set = data.volume_is_set; + mute_is_set = data.muted_is_set; pa_source_new_data_done(&data); if (!u->source) { @@ -2073,7 +2077,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p thread_name = NULL; /* Get initial mixer settings */ - if (data.volume_is_set) { + if (volume_is_set) { if (u->source->set_volume) u->source->set_volume(u->source); } else { @@ -2081,7 +2085,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p u->source->get_volume(u->source); } - if (data.muted_is_set) { + if (mute_is_set) { if (u->source->set_mute) u->source->set_mute(u->source); } else { @@ -2093,7 +2097,7 @@ pa_source *pa_alsa_source_new(pa_module *m, pa_modargs *ma, const char*driver, p } } - if ((data.volume_is_set || data.muted_is_set) && u->source->write_volume) + if ((volume_is_set || mute_is_set) && u->source->write_volume) u->source->write_volume(u->source); pa_source_put(u->source);