コード例 #1
0
ファイル: main.py プロジェクト: thepizzaking/whaawmp
	def onPlayerMessage(self, bus, message):
		t = message.type
		if (t == gst.MESSAGE_EOS):
			if (self.wTree.get_object("mnuiRepeatOne").get_active()):
				player.seek(0)
			else:
				if (self.wTree.get_object("mnuiRepeatAll").get_active()):
					queue.append(player.uri)
				# At the end of a stream, play next item from queue.
				# Or stop if the queue is empty.
				if (queue.length() > 0):
					self.playNext(atf=False)
				elif (self.wTree.get_object("mnuiQuitOnStop").get_active()):
					# Quit of the 'quit on stop' option is enabled.
					self.quit()
				else:
					# Otherwise, just stop.
					player.stop()
		
		elif (t == gst.MESSAGE_ERROR):
			# On an error, empty the currently playing file (also stops it).
			self.playFile(None)
			# Show an error about the failure.
			msg = message.parse_error()
			signals.emit('error', str(msg[0]) + '\n\n' + str(msg[1]), _('Error!'))
		elif (t == gst.MESSAGE_STATE_CHANGED and message.src == player.player):
			self.onPlayerStateChange(message)
		elif (t == gst.MESSAGE_TAG):
			# Tags!!
			self.setPlayingTitle(message.parse_tag())
コード例 #2
0
ファイル: main.py プロジェクト: thepizzaking/whaawmp
	def windowKeyPressed(self, widget, event):
		## Emits signals defined in lists.keypressDict.
		# Don't process if alt or ctrl is down.
		if (event.state & gtk.gdk.MOD1_MASK) or (event.state & gtk.gdk.CONTROL_MASK): return
		keyname = gtk.gdk.keyval_name(event.keyval)
		if keyname in lists.keypressDict:
			for x in lists.keypressDict[keyname]:
				signals.emit(x)
		# Also send the keypress to gstreamer in case it needs to act.
		player.sendNavigationKeypress(keyname)
コード例 #3
0
ファイル: queue.py プロジェクト: gapan/whaawmp
	def queueChanged(self):
		# The queue has changed.
		signals.emit('queue-changed', self.length())