Update of /cvsroot/freevo/freevo/WIP/Aubin In directory sc8-pr-cvs1:/tmp/cvs-serv5413
Added Files: mpd.py mpdclient.py Log Message: Some initial experimentation with mpd; this is my hacked mpdclient library since the upstream one is very broken. At the very least, you'll need a copy of mpd, and to edit the source file to change the mp3 file I'm queuing to test. This isn't a plugin yet, but you can run it by copying it to src/helpers and typing: "./freevo mpd" It also doesn't autostart mpd, though it does generate a config file using your freevo config. --- NEW FILE: mpd.py --- import mpdclient import config import os # Generate a mpdconf file automatically, so we don't have to # edit it. c = mpdclient.MpdController() def genmpdconf(): # Ascertain from freevo configuration music_directory = config.DIR_AUDIO[0][1] # Only use the first one for now playlist_directory = ('%s/freevo/mpd/playlists' % config.OS_CACHEDIR) log_file = ('%s/mpd.log' % config.LOGDIR) error_file = ('%s/mpd_error.log' % config.LOGDIR) db_file = ('%s/freevo/mpd/db/mpddb' % config.OS_CACHEDIR) state_file = ('%s/freevo/mpd/db/state' % config.OS_CACHEDIR) if config.DEBUG == 0: log_level = "default" if config.DEBUG == 1: log_level = "secure" if config.DEBUG >= 2: log_level = "verbose" # defaults bind_to_address = "127.0.0.1" # No public access by default port = 2100 mpdconf = open('/tmp/mpdconf','w') # Overwrite # Generate config file mpdconf.write('port "%s"\n' % port) mpdconf.write('music_directory "%s"\n' % music_directory) mpdconf.write('playlist_directory "%s"\n' % playlist_directory) mpdconf.write('log_file "%s"\n' % log_file) mpdconf.write('error_file "%s"\n' % error_file) mpdconf.write('db_file "%s"\n' % db_file) mpdconf.write('state_file "%s"\n' % state_file) mpdconf.close() # Make sure the directories exist if not os.path.isdir('%s/freevo/mpd' % config.OS_CACHEDIR): os.mkdir('%s/freevo/mpd' % config.OS_CACHEDIR) if not os.path.isdir(playlist_directory): os.mkdir(playlist_directory) if not os.path.isdir('%s/freevo/mpd/db' % config.OS_CACHEDIR): os.mkdir('%s/freevo/mpd/db' % config.OS_CACHEDIR) # Queue and play a song def test_queue(file): #c.add(file) print c.sendAddCommand('Fugazi/13 Songs/01 - Waiting Room.mp3') c.finishCommand() print c.play() import time for m in range(0,30): # play thirty seconds print ('%s/%s' % (c.getStatus().elapsedTime, c.getStatus().totalTime)) time.sleep(1) c.sendSeekCommand(c.getStatus().song, 30) # seek thirty seconds c.finishCommand() for m in range(0,30): # play thirty seconds print ('%s/%s' % (c.getStatus().elapsedTime, c.getStatus().totalTime)) time.sleep(1) c.stop() # stop! if __name__ == "__main__": genmpdconf() test_queue('Converge/Jane Doe/02 - Fault And Fracture.mp3') --- NEW FILE: mpdclient.py --- """ mpdclient.py / py-libmpdclient: Python implementation of libmpdclient, much of mpc functionality, and probably more to come. To use: <start mpd> <run python> >>> import mpdclient >>> c = mpdclient.MpdController() >>> c.load("yourplaylist") >>> c.random() >>> c.repeat() >>> c.play() .. And of course much more. MpdConnection and MpdController are thread-safe, but it is fairly crude. You [...1198 lines suppressed...] """ getCurrentSong() -> Song instance Returns a Song class instance, of the song currently playing. """ status = self.status() if status.stateStr() == "stop": return False try: self.sendPlaylistInfoCommand(status.song) song = self.getNextInfoEntity() finally: self.finishCommand() return song ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Freevo-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freevo-cvslog