rendered paste body#!/usr/bin/env python
import sys, os, fcntl, pygtk, gtk, gobject, time
import prefs, menu, remote, playlist, mplayer
MPLAYER = os.path.expanduser("~/.mplayer")
HOME = os.path.expanduser("~/.pymp")
#
# The Python Media Player main class.
#
class Pymp:
versionString = "Pymp v0.9"
window, prefs, menu, remote = None, None, None, None
playlist, control, mplayer = None, None, None
#
# Returns a gtk.gdk.Pixbuf
#
def getIcon(self):
icons = [sys.path[0] + "/../../share/pixmaps/pymp.png",
"./pymp.png"] #for development
for icon in icons:
if os.access(icon, os.F_OK):
return gtk.gdk.pixbuf_new_from_file(icon)
return None
#
# Terminates the application cleanly.
#
def quit(self, widget, data=None):
self.mplayer.close()
self.remote.close()
self.playlist.save()
self.prefs.save()
gtk.main_quit()
#
# Initializes and the player and its components.
#
def __init__(self, targets):
window = gtk.Window(gtk.WINDOW_TOPLEVEL) #create window
window.connect("destroy", self.quit)
window.set_title(self.versionString)
window.set_icon(self.getIcon())
self.window = window
self.prefs = prefs.Prefs(self)
self.mplayer = mplayer.Mplayer(self)
self.remote = remote.Remote(self)
self.playlist = playlist.Playlist(self)
self.menu = menu.Menu(self)
vbox = gtk.VBox(False, 0)
vbox.pack_start(self.playlist.view, True, True, 0)
window.add(vbox) #prepare to start ui
window.show_all()
window.move(self.prefs.getInt("x"), self.prefs.getInt("y"))
window.resize(self.prefs.getInt("width"), self.prefs.getInt("height"))
if targets: #process targets
for t in targets: #add each target
self.playlist.add(t)
if self.playlist.continuous: #and begin playback
self.playlist.jump(0)
else: #or load last list
self.playlist.loadm3u()
gtk.main()
#
# Ensure preferenecs directory exists and create Pymp instance.
#
def main():
if not os.access(MPLAYER, os.F_OK | os.W_OK):
os.mkdir(MPLAYER) #create mplayer directory
if not os.access(HOME, os.F_OK | os.W_OK):
os.mkdir(HOME) #create prefs directory
if not remote.remote(sys.argv):
Pymp(sys.argv[1:]) #create new Pymp
main() #start the program
#End of file