ich schreibe im Moment an einem Modul, das die Nutzung der Mixereigenschaften von [mod]ossaudiodev[/mod] vereinfachen soll. Sofern ich denn durchhalte, soll daraus später mal eine kleine Bibliothek speziell für Python-Programme, die Mixer-Interfaces bieten wollen, entstehen.
Mein Problem ist gerade das Testen auf Verfügbarkeit von einem "Control". Hierzu möchte ich unter Verwendung von oss_mixer_device.controls() einen Wahrheitswert zurückgeben. Aus dem Beispiel in der Doku werde ich nicht so recht schlau. IMHO ist dort die Ausgabe von controls() gar nicht mit dem anderen Test verknüpft. Es wird in dem Fall einfach 16 zurückgegeben. Um ehrlich zu sein: Ich weiß überhaupt nicht, was man an dieser Stelle tun soll.
Das habe ich bisher:
Code: Alles auswählen
import ossaudiodev
# Wrapper dictionary around the SOUND_MIXER_* constants defined by the
# ossaudiodev module.
# E.g.: CONTROLS['VOLUME'] -> value of ossaudiodev.SOUND_MIXER_VOLUME
CONTROLS = dict(
(
(name.split('_')[2], getattr(ossaudiodev, name))
for name in dir(ossaudiodev)
if name.startswith('SOUND_MIXER')
)
)
class Mixer(object):
def __init__(self, device_path='/dev/mixer'):
self.device = ossaudiodev.openmixer(device_path)
def close(self):
self.device.close()
def get_fileno(self):
return self.device.fileno()
def has_control(self, control):
return self.device.controls() and (1 << control)