All pastes #210158 Raw Edit

Bjerrk

public python v1 · immutable
#210158 ·published 2006-10-19 15:29 UTC
rendered paste body
#!/usr/bin/env pythonimport sysimport qtfrom qt import *#from qttable import QTableimport gstimport pygstimport gobjectimport osgobject.threads_init()class Player(QWidget):	def __init__(self, *args):			QWidget.__init__(self,  *args)			self.setCaption("SimPlay - The Simple Music Player")			self.setGeometry(0,0,422,262)						self.bin = gst.parse_launch('filesrc name=source !' +                        'decodebin name=decoder !' +					'audioconvert !' +			'alsasink')			self.bus = self.bin.get_bus()		        #self.bus.enable_sync_message_emission()		        #self.bus.add_signal_watch()			self.bus.set_sync_handler(self.watch)			#self.bus.connect ("message::eos", )			self.playPause = QPushButton("&Play/Pause", self)			self.playPause.setGeometry(0,0,105,24)						self.skipTrack = QPushButton("&Skip Track", self)			self.skipTrack.setGeometry(105,0,105,24)						self.addTrack = QPushButton("&Add Track", self)			self.addTrack.setGeometry(211,0,105,24)			self.quit = QPushButton("&Quit", self)			self.quit.setGeometry(316,0,105,24)						self.paused = True						self.playListWidget = QListView(self)			self.playListWidget.setGeometry(QRect(0,51,421,210))			self.playListWidget.addColumn("Playlist")			self.fileToPlay = QLineEdit(self)			self.fileToPlay.setGeometry(0,25,421,24)			#self.filePlayer = gst.element_factory_make("playbin", "self.filePlayer")			self.filePlayer = self.bin						#CLick actions, connects etc.:			self.connect(self.playPause, SIGNAL("clicked()"),					self.doPlayPause)			self.connect(self.quit, SIGNAL("clicked()"),					self.close)			self.connect(self.skipTrack, SIGNAL("clicked()"),					self.trackSkipper)			self.connect(self.addTrack, SIGNAL("clicked()"),					self.trackAdder)#			self.bus.connect('eos', self.endOfStream)		def doPlayPause(self):		uri = self.fileToPlay.text()		if os.path.isfile(uri):			if self.paused:				self.paused = False				print uri				filesrc = self.bin.get_by_name('source')				filesrc.set_property('location', uri)				#self.filePlayer.set_property('uri', source)				self.filePlayer.set_state(gst.STATE_PLAYING)				print "Setting state: PLAYING"							elif not self.paused:				self.paused = True				print "Now Pausing"				self.filePlayer.set_state(gst.STATE_PAUSED)		else:			print "No! Wrong path!"				def trackSkipper(self):		newUri = "file://" + self.fileToPlay.text()		uri = self.fileToPlay.text()		self.filePlayer.set_state(gst.STATE_NULL)		self.filePlayer.set_property('uri', uri)		self.filePlayer.set_state(gst.STATE_PLAYING)			def trackAdder(self):		nextTrack = [self.fileToPlay.text()]		nextTrack.append(QListViewItem(self.playListWidget, nextTrack[-1]))		currItem = self.playListWidget.currentItem()		print currItem	def endOfStream(self):		print "The stream is over"		def watch(self, bus, message):				if message.type == gst.MESSAGE_EOS:			self.endOfStream()		return gst.BUS_PASSif __name__ == "__main__":	app = QApplication(sys.argv)	app.connect(app, SIGNAL("lastWindowClosed()"), app,			SLOT('quit()'))	player = Player()	player.show()	player.playPause.show()	app.setMainWidget(player)	app.exec_loop()