[RFC PATCH] alsactl: skip inactive controls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When using alsactl to save or restore the card settings, it currently
skips over controls that don't have the appropriate read/write
permissions. It should also skip over inactive controls, otherwise it
will get an error when it tries to access that control, and will fail to
save the card state (or fully restore it.)
---
I noticed this while adding surround support to SiS7019. I think the
problem affects other cards, as I am following the pattern used by
trident, rme*, cmipci,  emu10k1 and others.

This is only for discussion, since I've not tested this (nor even
compiled it) but I think it will fix the issue.

diff -r d3ba62cd2776 alsactl/state.c
--- a/alsactl/state.c	Fri Dec 14 15:29:51 2007 +0100
+++ b/alsactl/state.c	Sat Dec 15 14:06:35 2007 -0500
@@ -250,7 +250,8 @@ static int get_control(snd_ctl_t *handle
 		return err;
 	}
 
-	if (!snd_ctl_elem_info_is_readable(info))
+	if (snd_ctl_elem_info_is_inactive(info) ||
+				!snd_ctl_elem_info_is_readable(info))
 		return 0;
 	snd_ctl_elem_value_set_id(ctl, id);
 	err = snd_ctl_elem_read(handle, ctl);
@@ -1306,7 +1307,8 @@ static int set_control(snd_ctl_t *handle
 		}
 	}
 
-	if (!snd_ctl_elem_info_is_writable(info))
+	if (snd_ctl_elem_info_is_inactive(info) ||
+				!snd_ctl_elem_info_is_writable(info))
 		return 0;
 	snd_ctl_elem_value_set_numid(ctl, numid1);
 

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux