X-Git-Url: http://git.kaliko.me/?p=mpd-goodies.git;a=blobdiff_plain;f=src%2Fnalbum;fp=src%2Fnalbum;h=0000000000000000000000000000000000000000;hp=dbb2e14eae09da12e1ee0da1f80366815207a7ac;hb=3b6737cd15bf7dab6595cdaade2bf4b3a1f530a5;hpb=ec7480efdd506097843e12353a43e1e4a0e43645 diff --git a/src/nalbum b/src/nalbum deleted file mode 100755 index dbb2e14..0000000 --- a/src/nalbum +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# Copyright (c) 2009, 2010, 2012 Kaliko Jack -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - - -import sys - -from time import sleep - -from lib.goodies import Goodie - - -NAME = 'nalbum' -VERSION = '0.1' - -NALBUM_OPTS = list([ - { - 'sw': ['-c', '--crossfade'], - 'type': 'int', - 'dest': 'time', - 'metavar': 't', - 'help': 'fade out/fade in over t seconds.'}, - ]) - - -class Nalbum(Goodie): - """ - """ - script_info = dict({ - 'version': VERSION, - 'prog_name': NAME, - 'description': 'Jump to next album in playlist.', - }) - - def __init__(self): - """""" - Goodie.__init__(self, self.__class__.script_info, - extra_options=NALBUM_OPTS) - self._run() - - def _fade(self, io='out'): - """ - end_volum => End volume value - mpd_vol => Start volume value - """ - mpd_vol = int(self.init_vol) - if io == 'out': - end_volum = mpd_vol / 10 - mpd_vol = self.init_vol - if io == 'in': - end_volum = int(self.init_vol) - mpd_vol = int(self.init_vol) / 10 - span = float(end_volum - mpd_vol) - step = span / float(10*self.cli_options.time) - while 42: - mpd_vol += step - self.client.setvol(int(mpd_vol)) - if abs(mpd_vol - end_volum) < 1: - self.client.setvol(end_volum) - return True - sleep(0.1) - - def _get_next(self): - """Retrieve playlist from current song to the end.""" - if 'song' not in self.client.status(): - print "No current song set in MPD!" - self.client.disconnect() - sys.exit(0) - current_album = str(self.client.currentsong().get('album', 'TAG MISSING')) - current_song_pos = int(self.client.currentsong().get('pos')) - print 'Current album: "%s"' % current_album - next_album_pos = current_song_pos - album = current_album - while album == current_album: - next_album_pos += 1 - pl_length = int(self.client.status().get('playlistlength')) - 1 - if pl_length < next_album_pos: - print 'Next album not found in the playlitst!' - self.client.disconnect() - sys.exit(0) - album = self.client.playlistinfo(next_album_pos)[0].get('album', 'TAG MISSING') - print 'Next album appears to be: "%s"' % album - return next_album_pos - - def _run(self): - """""" - print 'Connecting %s:%i' % (self.cli_options.host, self.cli_options.port) - self.mpdConnect() - nalbum = self._get_next() - self.init_vol = int(self.client.status().get('volume')) - if self.cli_options.time: - print 'Cross fading next album' - self._fade() - self.client.play(nalbum) - if self.cli_options.time: - self._fade(io='in') - self.client.disconnect() - sys.exit(0) - - -# Script starts here -if __name__ == '__main__': - try: - Nalbum() - except KeyboardInterrupt: - sys.stdout.write('exit') - -# VIM MODLINE -# vim: ai ts=4 sw=4 sts=4 expandtab