reactivate vlc

This commit is contained in:
rimach 2012-01-19 20:13:19 +01:00
parent edf4ac75c8
commit 88ce7a906d
4 changed files with 21 additions and 55 deletions

View File

@ -144,7 +144,7 @@ class MainDisplay(Display):
windowFlags = windowFlags | QtCore.Qt.SplashScreen
self.setWindowFlags(windowFlags)
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
self.setTransparency(True)
if self.isLive:
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'live_display_hide'), self.hideDisplay)
@ -155,6 +155,14 @@ class MainDisplay(Display):
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'config_updated'), self.configChanged)
def setTransparency(self, enabled):
if enabled:
self.setAutoFillBackground(False)
else:
self.setAttribute(QtCore.Qt.WA_NoSystemBackground, False)
self.setAttribute(QtCore.Qt.WA_TranslucentBackground, enabled)
self.repaint()
def cssChanged(self):
"""
We may need to rebuild the CSS on the live display.

View File

@ -278,15 +278,15 @@ class MediaController(object):
def set_controls_visible(self, controller, value):
# Generic controls
controller.mediabar.setVisible(value)
if controller.isLive and controller.display:
if self.curDisplayMediaPlayer and value:
if self.curDisplayMediaPlayer[controller.display] != self.mediaPlayers[u'webkit']:
controller.display.setTransparency(False)
else:
controller.display.setTransparency(True)
# Special controls: Here media type specific Controls will be enabled
# (e.g. for DVD control, ...)
# TODO
# if controller.isLive and controller.display:
# if self.curDisplayMediaPlayer and value:
# if self.curDisplayMediaPlayer[controller.display] != self.mediaPlayers[u'webkit']:
# controller.display.setTransparency(False)
# else:
# controller.display.setTransparency(True)
def resize(self, controller, display, player):
"""

View File

@ -30,8 +30,6 @@ import mimetypes
from datetime import datetime
from PyQt4.phonon import Phonon
from PyQt4 import QtCore
import sys
from openlp.core.lib import Receiver
from openlp.core.lib.mediaplayer import MediaPlayer
@ -65,7 +63,6 @@ class PhononPlayer(MediaPlayer):
def __init__(self, parent):
MediaPlayer.__init__(self, parent, u'phonon')
self.parent = parent
self.canBackground = True
self.additional_extensions = ADDITIONAL_EXT
mimetypes.init()
for mimetype in Phonon.BackendCapabilities.availableMimeTypes():
@ -96,23 +93,7 @@ class PhononPlayer(MediaPlayer):
u' '.join(self.additional_extensions[mimetype])))
def setup(self, display):
if display.isLive:
display.phononWidget = Phonon.VideoWidget()
windowFlags = QtCore.Qt.FramelessWindowHint
if QtCore.QSettings().value(u'advanced/x11 bypass wm',
QtCore.QVariant(True)).toBool():
windowFlags = windowFlags | QtCore.Qt.X11BypassWindowManagerHint
# FIXME: QtCore.Qt.SplashScreen is workaround to make display screen
# stay always on top on Mac OS X. For details see bug 906926.
# It needs more investigation to fix it properly.
if sys.platform == 'darwin':
windowFlags = windowFlags | QtCore.Qt.SplashScreen
windowFlags = windowFlags | QtCore.Qt.Window
display.phononWidget.setWindowFlags(windowFlags)
display.phononWidget.setAttribute(QtCore.Qt.WA_DeleteOnClose)
display.phononWidget.setGeometry(display.geometry())#1280,0,1280,1024)
else:
display.phononWidget = Phonon.VideoWidget(display)
display.phononWidget = Phonon.VideoWidget(display)
display.phononWidget.resize(display.size())
display.mediaObject = Phonon.MediaObject(display)
Phonon.createPath(display.mediaObject, display.phononWidget)
@ -172,10 +153,7 @@ class PhononPlayer(MediaPlayer):
int(display.mediaObject.totalTime()/1000)
controller.seekSlider.setMaximum(controller.media_info.length*1000)
self.state = MediaState.Playing
if not controller.media_info.is_background:
display.phononWidget.raise_()
else:
display.raise_()
display.phononWidget.raise_()
return True
else:
return False

View File

@ -91,28 +91,11 @@ class VlcPlayer(MediaPlayer):
MediaPlayer.__init__(self, parent, u'vlc')
self.parent = parent
self.canFolder = True
self.canBackground = True
self.audio_extensions_list = AUDIO_EXT
self.video_extensions_list = VIDEO_EXT
def setup(self, display):
if display.isLive:
display.vlcWidget = QtGui.QFrame()
windowFlags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool
if QtCore.QSettings().value(u'advanced/x11 bypass wm',
QtCore.QVariant(True)).toBool():
windowFlags = windowFlags | QtCore.Qt.X11BypassWindowManagerHint
# FIXME: QtCore.Qt.SplashScreen is workaround to make display screen
# stay always on top on Mac OS X. For details see bug 906926.
# It needs more investigation to fix it properly.
if sys.platform == 'darwin':
windowFlags = windowFlags | QtCore.Qt.SplashScreen
windowFlags = windowFlags | QtCore.Qt.Window
display.vlcWidget.setWindowFlags(windowFlags)
display.vlcWidget.setAttribute(QtCore.Qt.WA_DeleteOnClose)
display.vlcWidget.setGeometry(display.geometry())
else:
display.vlcWidget = QtGui.QFrame(display)
display.vlcWidget = QtGui.QFrame(display)
# creating a basic vlc instance
command_line_options = u'--no-video-title-show'
if not display.hasAudio:
@ -125,7 +108,7 @@ class VlcPlayer(MediaPlayer):
display.vlcInstance.set_log_verbosity(2)
# creating an empty vlc media player
display.vlcMediaPlayer = display.vlcInstance.media_player_new()
#display.vlcWidget.resize(display.size())
display.vlcWidget.resize(display.size())
display.vlcWidget.raise_()
display.vlcWidget.hide()
# the media player has to be 'connected' to the QFrame
@ -177,7 +160,7 @@ class VlcPlayer(MediaPlayer):
def resize(self, display):
display.vlcWidget.resize(display.size())
def play(self, display):
controller = display.controller
start_time = 0
@ -191,10 +174,7 @@ class VlcPlayer(MediaPlayer):
int(display.vlcMediaPlayer.get_media().get_duration() / 1000)
controller.seekSlider.setMaximum(controller.media_info.length * 1000)
self.state = MediaState.Playing
if not controller.media_info.is_background:
display.vlcWidget.raise_()
else:
display.raise_()
display.vlcWidget.raise_()
return True
else:
return False