mfade [time [min|max]]
* time in seconds
- * min|max in percentag
+ * min|max in percentage of volume
-- not palying: fade in from 0% to max over time
+when MPD is:
+- not playing: fade in from 0% to max over time
default 10 minutes / 50%
-- if playing: fade out from current volume to min over time
+- playing: fade out from current volume to min over time
default 10 minutes / 1/10 of current vol
Manual or any external volume change will abort the script.
def _consume_sopt(self):
""""""
+ # TODO: use optparse?
options = sys.argv
- if len(sys.argv) >1 and sys.argv[1] in ['-h', '--help']:
- print USAGE
+ if len(sys.argv) > 1 and sys.argv[1] in ['-h', '--help']:
+ sys.stderr.write(USAGE)
sys.exit(1)
try:
self.tempo = int(options.pop(1))
except IndexError:
pass
except ValueError, err:
- print 'Error: wrong option passed: %s' % err
- print USAGE
+ sys.stderr.write('Error: wrong option passed: %s' % err)
+ sys.stdout.write(USAGE)
sys.exit(1)
def _run(self):
if not self.volum:
self.volum = self.mpd_vol / 10
if self.volum > self.mpd_vol:
- print 'Error: specified min volume (%d%%) > to current volume (%d%%)' % (self.volum, self.mpd_vol)
+ sys.stderr.write('Error: specified min volume (%d%%) > to current volume (%d%%)' % (self.volum, self.mpd_vol))
sys.exit(1)
- print 'fading down from %d%% to %d%% over %smin' % (self.mpd_vol,
- self.volum, self.tempo)
- self.fade()
- self.cli.stop()
+ print >> sys.stdout, 'fading down from %d%% to %d%% over %smin' % (self.mpd_vol, self.volum, self.tempo)
+ if self.fade():
+ self.cli.stop()
if self.mpd_state in ['stop', 'pause']:
if not self.volum:
self.volum = int(50)
- print 'fading up from 0%% to %d%% over %smin' % (self.volum,
- self.tempo)
+ print >> sys.stdout, 'fading up from 0%% to %d%% over %smin' % (self.volum, self.tempo)
self.cli.setvol(0)
self.mpd_vol = 0
self.cli.play()
def fade(self):
""""""
+ # TODO: handle possible lost connections
span = float(self.volum - self.mpd_vol)
step = span / float(60 * self.tempo)
- print step
vol = self.mpd_vol
while 42:
if int(vol) != int(self.cli.status().get('volume')):
- print 'Warning: external volume change, aborting!'
- break
+ sys.stderr.write('Warning: external volume change, aborting!\n')
+ return False
vol += step
self.cli.setvol(int(vol))
if abs(vol - self.volum) < 1:
self.cli.setvol(self.volum)
- break
+ return True
sleep(1)
# Script starts here
if __name__ == '__main__':
- options = [14, 11]
- #main(options)
try:
Sleep()
except KeyboardInterrupt:
- print 'exit'
+ sys.stdout.write('exit')
# VIM MODLINE
# vim: ai ts=4 sw=4 sts=4 expandtab