From b1f80c96ea04b35f645eb74f56f21730553b4f54 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 21 Dec 2012 19:11:00 +0000 Subject: [PATCH] Fix media starting in wrong place --- openlp/core/ui/media/mediacontroller.py | 13 ++++++++++--- openlp/core/ui/media/vlcplayer.py | 3 ++- openlp/core/ui/slidecontroller.py | 9 +++------ 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index e4f491b01..1b2bd4916 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -358,7 +358,7 @@ class MediaController(object): controller.media_info.start_time = 0 controller.media_info.end_time = 0 else: - controller.media_info.start_time = display.serviceItem.start_time + controller.media_info.start_time = serviceItem.start_time controller.media_info.end_time = serviceItem.end_time elif controller.previewDisplay: isValid = self._check_file_type(controller, display, serviceItem) @@ -373,10 +373,14 @@ class MediaController(object): # now start playing - Preview is autoplay! autoplay = False # Preview requested + print serviceItem.will_auto_start if not controller.isLive: autoplay = True # Visible or background requested or Service Item wants to autostart - elif not hidden or controller.media_info.is_background or serviceItem.will_auto_start: + elif serviceItem.will_auto_start: + autoplay = True + # Visible or background requested or Service Item wants to autostart + elif (not hidden or controller.media_info.is_background) and not serviceItem.will_auto_start: autoplay = True # Unblank on load set elif Settings().value(u'general/auto unblank', QtCore.QVariant(False)).toBool(): @@ -480,6 +484,8 @@ class MediaController(object): The controller to be played """ log.debug(u'media_play') + controller.seekSlider.blockSignals(True) + controller.volumeSlider.blockSignals(True) display = self._define_display(controller) if not self.currentMediaPlayer[controller.controllerType].play(display): return False @@ -504,6 +510,8 @@ class MediaController(object): # Start Timer for ui updates if not self.timer.isActive(): self.timer.start() + controller.seekSlider.blockSignals(False) + controller.volumeSlider.blockSignals(False) return True def media_pause_msg(self, msg): @@ -576,7 +584,6 @@ class MediaController(object): ``msg`` First element is the controller which should be used """ - log.debug(u'media_volume %d' % volume) display = self._define_display(controller) self.currentMediaPlayer[controller.controllerType].volume(display, volume) diff --git a/openlp/core/ui/media/vlcplayer.py b/openlp/core/ui/media/vlcplayer.py index d699896be..30108db7a 100644 --- a/openlp/core/ui/media/vlcplayer.py +++ b/openlp/core/ui/media/vlcplayer.py @@ -184,6 +184,7 @@ class VlcPlayer(MediaPlayer): def play(self, display): controller = display.controller start_time = 0 + print controller.media_info.start_time if self.state != MediaState.Paused and controller.media_info.start_time > 0: start_time = controller.media_info.start_time display.vlcMediaPlayer.play() @@ -191,7 +192,7 @@ class VlcPlayer(MediaPlayer): return False self.volume(display, controller.media_info.volume) if start_time > 0: - self.seek(display, controller.media_info.start_time * 1000) + self.seek(display, controller.media_info.start_time * 1000) controller.media_info.length = int(display.vlcMediaPlayer.get_media().get_duration() / 1000) controller.seekSlider.setMaximum(controller.media_info.length * 1000) self.state = MediaState.Playing diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 18fbee5c5..be1b4e1ab 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -936,8 +936,7 @@ class SlideController(DisplayController): else: if not self.serviceItem.is_command(): Receiver.send_message(u'live_display_show') - Receiver.send_message(u'%s_unblank' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) + Receiver.send_message(u'%s_unblank' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) else: if hide_mode: Receiver.send_message(u'live_display_hide', hide_mode) @@ -952,13 +951,11 @@ class SlideController(DisplayController): if self.serviceItem is not None: if hide: Receiver.send_message(u'live_display_hide', HideMode.Screen) - Receiver.send_message(u'%s_hide' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) + Receiver.send_message(u'%s_hide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) else: if not self.serviceItem.is_command(): Receiver.send_message(u'live_display_show') - Receiver.send_message(u'%s_unblank' % self.serviceItem.name.lower(), - [self.serviceItem, self.isLive]) + Receiver.send_message(u'%s_unblank' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) else: if hide: Receiver.send_message(u'live_display_hide', HideMode.Screen)