Show most recent tracks first
[mussorgsky] / src / player_backend.py
1 #!/usr/bin/env python2.5
2 import pygst
3 pygst.require('0.10')
4 import gst
5 import gobject, sys
6
7 class MediaPlayer:
8
9     def __init__ (self):
10         self.playing = False
11         self.player = gst.element_factory_make ("playbin2", "player")
12
13     def play (self, uri):
14         self.playing = True
15         print 'Playing:', uri
16         self.player.set_property ('uri', uri)
17         self.player.set_state(gst.STATE_PLAYING)
18
19     def stop (self):
20         print 'Stop'
21         if (self.playing):
22             self.playing = False
23             self.player.set_state(gst.STATE_NULL)
24         
25     def is_playing (self):
26         return self.playing
27         
28
29
30 def button_clicked_cb (widget, mediaplayer):
31     #TESTFILE="file:///scratchbox/users/ivan/home/ivan/mufix/dejame.mp3"
32     TESTFILE="file:///home/user/mufix/dejame.mp3"
33     if (mediaplayer.is_playing ()):
34         mediaplayer.stop ()
35     else:
36         mediaplayer.play (TESTFILE)
37
38 if __name__ == "__main__":
39
40     import gtk
41     
42     w = gtk.Window ()
43     w.connect ("destroy", gtk.main_quit)
44     player = MediaPlayer ()
45
46     button = gtk.Button (stock=gtk.STOCK_MEDIA_PLAY)
47     button.connect ("clicked", button_clicked_cb, player)
48
49     w.add (button)
50     w.show_all ()
51     gtk.main ()