forked from openlp/openlp
reactivate vlc
This commit is contained in:
parent
edf4ac75c8
commit
88ce7a906d
|
@ -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.
|
||||
|
|
|
@ -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):
|
||||
"""
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue