Initial video fudging!

This commit is contained in:
Jon Tibble 2009-10-19 18:51:21 +01:00
parent 7f773a314b
commit e37ae62079
2 changed files with 53 additions and 6 deletions

View File

@ -23,7 +23,9 @@
############################################################################### ###############################################################################
import logging import logging
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from PyQt4.phonon import Phonon
from openlp.core.lib import Receiver, str_to_bool from openlp.core.lib import Receiver, str_to_bool
@ -85,9 +87,16 @@ class MainDisplay(DisplayLabel):
self.layout.setSpacing(0) self.layout.setSpacing(0)
self.layout.setMargin(0) self.layout.setMargin(0)
self.layout.setObjectName(u'layout') self.layout.setObjectName(u'layout')
self.mediaObject = Phonon.MediaObject(self)
self.video = Phonon.VideoWidget()
self.audio = Phonon.AudioOutput(Phonon.VideoCategory, self.mediaObject)
self.video.setFullScreen(True)
Phonon.createPath(self.mediaObject, self.video)
Phonon.createPath(self.mediaObject, self.audio)
self.layout.insertWidget(0, self.video)
self.display = QtGui.QLabel(self) self.display = QtGui.QLabel(self)
self.display.setScaledContents(True) self.display.setScaledContents(True)
self.layout.addWidget(self.display) self.layout.insertWidget(0, self.display)
self.displayBlank = False self.displayBlank = False
self.blankFrame = None self.blankFrame = None
self.frame = None self.frame = None
@ -102,6 +111,8 @@ class MainDisplay(DisplayLabel):
QtCore.SIGNAL(u'presentations_start'), self.hideDisplay) QtCore.SIGNAL(u'presentations_start'), self.hideDisplay)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'presentations_stop'), self.showDisplay) QtCore.SIGNAL(u'presentations_stop'), self.showDisplay)
QtCore.QObject.connect(self.mediaObject, QtCore.SIGNAL(u'finished()'),
self.onMediaFinish)
def setup(self, screenNumber): def setup(self, screenNumber):
""" """
@ -220,3 +231,26 @@ class MainDisplay(DisplayLabel):
self.display.setPixmap(QtGui.QPixmap.fromImage(self.frame)) self.display.setPixmap(QtGui.QPixmap.fromImage(self.frame))
self.killTimer(self.timer_id) self.killTimer(self.timer_id)
self.timer_id = 0 self.timer_id = 0
def queueMedia(self, item, firstItem=True):
if firstItem:
self.mediaObject.setCurrentSource(Phonon.MediaSource(item))
else:
self.mediaObject.enqueue(Phonon.MediaSource(item))
def playMedia(self):
self.display.close()
self.mediaObject.play()
def stopMedia(self):
self.mediaObject.stop()
def onMediaFinish(self):
self.mediaObject.stop()
self.video.close()
self.display = QtGui.QLabel(self)
self.display.setScaledContents(True)
self.layout.insertWidget(0, self.display)
def mediaFinished(self):
pass

View File

@ -56,6 +56,7 @@ class MediaMediaItem(MediaManagerItem):
#self.ServiceItemIconName = u':/media/media_image.png' #self.ServiceItemIconName = u':/media/media_image.png'
self.PreviewFunction = self.video_get_preview self.PreviewFunction = self.video_get_preview
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.MainDisplay = self.parent.live_controller.parent.mainDisplay
def requiredIcons(self): def requiredIcons(self):
MediaManagerItem.requiredIcons(self) MediaManagerItem.requiredIcons(self)
@ -78,7 +79,7 @@ class MediaMediaItem(MediaManagerItem):
return False return False
service_item.title = u'Media' service_item.title = u'Media'
for index in indexes: for index in indexes:
filename = self.ListData.getFilename(index) filename = self.ListView.getFilename(index)
frame = QtGui.QImage(unicode(filename)) frame = QtGui.QImage(unicode(filename))
(path, name) = os.path.split(filename) (path, name) = os.path.split(filename)
service_item.add_from_image(path, name, frame) service_item.add_from_image(path, name, frame)
@ -88,12 +89,24 @@ class MediaMediaItem(MediaManagerItem):
log.debug(u'Media Preview Button pressed') log.debug(u'Media Preview Button pressed')
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
for item in items: for item in items:
text = self.ListData.getValue(item) baseItem = self.ListView.item(item.row())
print text itemText = unicode(baseItem.data(QtCore.Qt.UserRole).tostring())
print itemText
def onMediaLiveClick(self): def onLiveClick(self):
log.debug(u'Media Live Button pressed') log.debug(u'Media Live Button pressed')
pass items = self.ListView.selectedIndexes()
if len(items) > 0:
firstPass = True
for item in items:
baseItem = self.ListView.item(item.row())
filename = unicode(baseItem.data(QtCore.Qt.UserRole).toString())
if firstPass:
self.MainDisplay.queueMedia(filename, firstPass)
firstPass = False
else:
self.MainDisplay.queueMedia(filename, firstPass)
self.MainDisplay.playMedia()
def initialise(self): def initialise(self):
self.ListView.setSelectionMode( self.ListView.setSelectionMode(