kleines Script für MIC-Boost on/off

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
rethus
User
Beiträge: 26
Registriert: Montag 7. August 2006, 19:53

Montag 29. Dezember 2008, 13:18

Ich möchte ein mini.-script schreiben, welches mir ermöglicht, den MIC-Boost per Tastenkombo an oder aus zu schalten.

Dazu soll geprüft werden, ob der Boost gerade an oder aus ist, und dann entsprechen in den anderen Zustand geschaltet werden.

Folgenden Konsolenbefehl nutze ich:

Code: Alles auswählen

amixer set "Mic Boost (+20dB)" on|off 
Die Abfrage mache ich via:

Code: Alles auswählen

amixer get "Mic Boost (+20dB)"
Dann erhalte ich entweder:

Code: Alles auswählen

Simple mixer control 'Mic Boost (+20dB)',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
oder

Code: Alles auswählen

Simple mixer control 'Mic Boost (+20dB)',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Das Testen der Rückgabe vom Abfragebefehl könnte ich ja mit einem regulären ausdruck finden:

Code: Alles auswählen

\[[^az-]+].
Aber wie ich genau die Abfrage mache istm ir noch nicht klar.

Hat jemand einen tipp für mich?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 29. Dezember 2008, 13:30

Das Programm mit ``subprocess.Popen`` starten und stdout auslesen. Btw, in deinem Ausdruck fehlt mindestens ein Backslash und das ist generell komisch.

Code: Alles auswählen

active = True if re.findall(r'\[(on|off)\]', 'text text [on] text')[0] == 'on' else False
Statt dem String musst du da natürlich die Ausgabe von Stdout angeben.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten