{"Mic", "Line In"}, {"IEC958 In - TOSLINK", "IEC958 In - Coax"}
You are right, enums will be far easier to implement than interconnected booleans. I will work it out.
It was actually fairly easy to implement.
One more question - the ice1724 peak meters in alsamixer are extremely confusing. There was already a discussion about them a few years ago http://www.mail-archive.com/alsa-devel@lists.sourceforge.net/msg09234.html and it looks not much has changed. But have you please considered either fixing alsamixer or changing their type from MIXER to perhaps PCM so that they do not appear in alsamixer? Plus I am wondering how alsamixer picks those couple of channels out of those 22 available (because it seems the pick makes sense).
BTW, the controls proved crucial in checking channel status via while true; do amixer -c1 cget name="Multi Track Peak" | grep ": values"; sleep 0.5; done
Perhaps my next project should humbly try to fix this issue with alsamixer :)