Fix media starting in wrong place

This commit is contained in:
Tim Bentley 2012-12-21 19:11:00 +00:00
parent cbbb6c7e2a
commit b1f80c96ea
3 changed files with 15 additions and 10 deletions

View File

@ -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)

View File

@ -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

View File

@ -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)