#!/usr/local/bin/python # author : mirko koenig # 18.10.2000 # released under GPL http://www.gnu.org/copyleft/gpl.html from Tkinter import * import os,string root = Tk() root.title("MuteMix") # read the mixer settings and parse them mixer = os.popen( "aumix -q" ).readlines() # get mixer info numdevices = len( mixer ) # get number of devices devnames = [] volumes = [] for i in range( numdevices ): devnames.append( string.split( mixer[i] )[0] ) volumes.append( string.split( mixer[i] )[1][:-1] ) def updatevol( event=None ): mixoptions = "" for i in devnames: if i == "vol": if mute['vol'].get() == 0: mixoptions = mixoptions + " -v %d" % ( volbar['vol'].get() ) else: mixoptions = mixoptions + " -v 0" if i == "bass": if mute['bass'].get() == 0: mixoptions = mixoptions + " -b %d" % ( volbar['bass'].get() ) else: mixoptions = mixoptions + " -b 0" if i == "treble": if mute['treble'].get() == 0: mixoptions = mixoptions + " -t %d" % ( volbar['treble'].get() ) else: mixoptions = mixoptions + " -t 0" if i == "synth": if mute['synth'].get() == 0: mixoptions = mixoptions + " -s %d" % ( volbar['synth'].get() ) else: mixoptions = mixoptions + " -s 0" if i == "pcm": if mute['pcm'].get() == 0: mixoptions = mixoptions + " -w %d" % ( volbar['pcm'].get() ) else: mixoptions = mixoptions + " -w 0" if i == "speaker": if mute['speaker'].get() == 0: mixoptions = mixoptions + " -p %d" % ( volbar['speaker'].get() ) else: mixoptions = mixoptions + " -p 0" if i == "line": if mute['line'].get() == 0: mixoptions = mixoptions + " -l %d" % ( volbar['line'].get() ) else: mixoptions = mixoptions + " -l 0" if i == "mic": if mute['mic'].get() == 0: mixoptions = mixoptions + " -m %d" % ( volbar['mic'].get() ) else: mixoptions = mixoptions + " -m 0" if i == "cd": if mute['cd'].get() == 0: mixoptions = mixoptions + " -c %d" % ( volbar['cd'].get() ) else: mixoptions = mixoptions + " -c 0" if i == "mix": if mute['mix'].get() == 0: mixoptions = mixoptions + " -x %d" % ( volbar['mix'].get() ) else: mixoptions = mixoptions + " -x 0" if i == "pcm2": if mute['pcm2'].get() == 0: mixoptions = mixoptions + " -W %d" % ( volbar['pcm2'].get() ) else: mixoptions = mixoptions + " -W 0" if i == "rec": if mute['rec'].get() == 0: mixoptions = mixoptions + " -r %d" % ( volbar['rec'].get() ) else: mixoptions = mixoptions + " -r 0" if i == "igain": if mute['igain'].get() == 0: mixoptions = mixoptions + " -i %d" % ( volbar['igain'].get() ) else: mixoptions = mixoptions + " -i 0" if i == "ogain": if mute['ogain'].get() == 0: mixoptions = mixoptions + " -o %d" % ( volbar['ogain'].get() ) else: mixoptions = mixoptions + " -o 0" if i == "line1": if mute['line1'].get() == 0: mixoptions = mixoptions + " -1 %d" % ( volbar['line1'].get() ) else: mixoptions = mixoptions + " -1 0" if i == "line2": if mute['line2'].get() == 0: mixoptions = mixoptions + " -2 %d" % ( volbar['line2'].get() ) else: mixoptions = mixoptions + " -2 0" if i == "line3": if mute['line3'].get() == 0: mixoptions = mixoptions + " -3 %d" % ( volbar['line3'].get() ) else: mixoptions = mixoptions + " -3 0" os.system( "aumix " + mixoptions ) def muteall( event=None ): if allmute.get() == 1: for i in mute.keys(): mute[i].set(1) else: for i in mute.keys(): mute[i].set(0) updatevol() # create gui menuframe = Frame( root ) menuframe.pack() volframe = Frame( root ) volframe.pack() exitbtn = Button( menuframe, text="Exit", command=root.destroy ).pack( side=LEFT ) allmute = IntVar() mutebtn = Checkbutton( menuframe, text="Mute", variable=allmute, command=muteall ).pack( side=LEFT ) volbar = {} volframes = [] vollabels = [] mute = {} for i in range( numdevices ): index = devnames[i] volframes.append( Frame( volframe )) volframes[i].pack( side=LEFT ) vollabels.append( Label( volframes[i], text=devnames[i] ).pack() ) volbar[ index ] = ( Scale( volframes[i], relief=SUNKEN, showvalue=0 )) volbar[ index ].pack() volbar[ index ].bind( "", updatevol ) mute[ index ] = IntVar() Checkbutton( volframes[i], variable=mute[ index ], command=updatevol ).pack() # set values volbar[ index ].set( value=volumes[i] ) root.mainloop()