summaryrefslogtreecommitdiffstats
path: root/mixer.c
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2012-10-26 19:04:10 +0200
committerPaul Kocialkowski <contact@paulk.fr>2012-10-26 19:04:10 +0200
commitc949a1dc724a9727cecf28ed980f316094e9f828 (patch)
tree17b217ac7c7a59289e67aabc7d8980a107c5972e /mixer.c
parent5f903f20d812bfbec535d9432ce8f4d357097e58 (diff)
downloadhardware_tinyalsa-audio-c949a1dc724a9727cecf28ed980f316094e9f828.zip
hardware_tinyalsa-audio-c949a1dc724a9727cecf28ed980f316094e9f828.tar.gz
hardware_tinyalsa-audio-c949a1dc724a9727cecf28ed980f316094e9f828.tar.bz2
Assign streams to tinyalsa_audio_device, don't disable-enable the same path
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'mixer.c')
-rw-r--r--mixer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mixer.c b/mixer.c
index e18d1da..d0685e8 100644
--- a/mixer.c
+++ b/mixer.c
@@ -752,6 +752,10 @@ int tinyalsa_mixer_set_route(struct tinyalsa_mixer *mixer,
goto error_mixer;
}
+ // No need to disable and enable the same route
+ if(mixer_device == mixer_io->device_current)
+ goto exit_mixer;
+
if(mixer_io->device_current != NULL) {
rc = tinyalsa_mixer_set_route_list(mixer, mixer_io->device_current->disable);
if(rc < 0) {
@@ -768,6 +772,7 @@ int tinyalsa_mixer_set_route(struct tinyalsa_mixer *mixer,
mixer_io->device_current = mixer_device;
+exit_mixer:
mixer_close(mixer->mixer);
mixer->mixer = NULL;
@@ -1028,7 +1033,6 @@ int tinyalsa_mixer_set_state(struct tinyalsa_mixer *mixer,
mixer_io->device_current = NULL;
mixer_io->state = state;
-exit_mixer:
mixer_close(mixer->mixer);
mixer->mixer = NULL;