Sound-Programmierung: Ausgabequelle einstellen
-
Wie kann ich die Audio-Quelle(n) für den Audio-Ausgang einstellen, also z. B. CD, Mikrofon, Line-In usw.?
In "/usr/include/linux/soundcard.h" ist das ioctl()-Kommando "SOUND_MIXER_OUTSRC" für die Ausgabequellen und "SOUND_MIXER_OUTMASK" für die möglichen Ausgabequellen definiert. Meine Versuche, diese Kommandos genauso zu benutzen, wie den Pendants bezüglich der Aufnahmequelle (SOUND_MIXER_RECSRC und SOUND_MIXER_RECMASK) blieben bislang jedoch auf verschiedenen Linux-Kernels, Sound-Karten und Linux-Distributionen erfolglos.
Teilweise liefert bereits MIXER_READ(SOUND_MIXER_RECMASK) einen ioctl()-Fehlermeldung ("Invalid argument"), auf anderen Systemen sind bei dem zurückgegebenen OUTMASK-Wert alle höherwertigen Bits gesetzt -- inkl. dem MSB --, was ebenso auf eine Fehlfunktion hindeutet.
Auf allen getesteten Systemen blieb jedenfalls MIXER_WRITE(SOUND_MIXER_OUTSRC) ohne jede Auswirkung auf die Ausgabequelle.Hat jemand schon mal mit einem C-Programm erfolgreich die Ausgabequelle eingestellt? Wenn ja, wie?
Martin
-
Warum schlägst Du Dich denn selbst mit sowas herum?
Für derartige Dinge greift man auf fertige Libraries zu, dann spart man sich diese unportablen ioctl-Herumsch...ereien.