X-Git-Url: https://git.kaliko.me/?p=mpd-goodies.git;a=blobdiff_plain;f=bin%2Fmfade;h=9627a44b67637b7befebe0c426d3a2d220ff213d;hp=61a68f305d166944c8cb6e3ece4a1b361db23cb2;hb=3c3b648efd0e9e2ce826b0ccb567c4af4fce9158;hpb=dc5640157f0a108bfe671b7652241460dfd0b78e diff --git a/bin/mfade b/bin/mfade index 61a68f3..9627a44 100755 --- a/bin/mfade +++ b/bin/mfade @@ -97,8 +97,8 @@ class Sleep(musicpd.MPDClient): self.mpd_vol = int(self.status().get('volume')) 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%%)' % ( + if self.volum >= self.mpd_vol: + print('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 %ss' % (self.mpd_vol, self.volum, self.tempo), file=sys.stdout) @@ -117,22 +117,21 @@ class Sleep(musicpd.MPDClient): def fade(self, mpd_vol, target): """""" # TODO: handle possible lost connections + resolution = 5 span = target - mpd_vol - step = span / (10*self.tempo) + step = span / (resolution*self.tempo) vol = mpd_vol if step == 0: return True while True: - if int(vol) != int(self.status().get('volume')): - sys.stderr.write( - 'Warning: external volume change, aborting!\n') - return False vol += step - self.setvol(int(vol)) + self.setvol(round(vol)) + # monitor external volume change + # print(vol, round(vol), self.status().get('volume')) if abs(vol - target) < 1.1*abs(step): self.setvol(target) return True - sleep(.1) + sleep(1/resolution) # Script starts here