iPlayableService.evEOF: self.__evEOF,
iPlayableService.evSOF: self.__evSOF,
})
- self.fast_winding_hint_message_showed = False
class InfoBarSeekActionMap(HelpableActionMap):
def __init__(self, screen, *args, **kwargs):
# print "seekable"
def __serviceStarted(self):
- self.fast_winding_hint_message_showed = False
self.seekstate = self.SEEK_STATE_PLAY
self.__seekableStatusChanged()
self.showAfterSeek()
def seekFwd(self):
- seek = self.getSeek()
- if seek and (seek.isCurrentlySeekable() & 1) and not (seek.isCurrentlySeekable() & 2):
- if not self.fast_winding_hint_message_showed:
- self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10)
- self.fast_winding_hint_message_showed = True
- return
if self.seekstate == self.SEEK_STATE_PLAY:
self.setSeekState(self.makeStateForward(int(config.seek.enter_forward.value)))
elif self.seekstate == self.SEEK_STATE_PAUSE:
self.setSeekState(self.makeStateSlowMotion(speed))
def seekBack(self):
- seek = self.getSeek()
- if seek and (seek.isCurrentlySeekable() & 1) and not (seek.isCurrentlySeekable() & 2):
- if not self.fast_winding_hint_message_showed:
- self.session.open(MessageBox, _("No fast winding possible yet.. but you can use the number buttons to skip forward/backward!"), MessageBox.TYPE_INFO, timeout=10)
- self.fast_winding_hint_message_showed = True
- return
seekstate = self.seekstate
if seekstate == self.SEEK_STATE_PLAY:
self.setSeekState(self.makeStateBackward(int(config.seek.enter_backward.value)))
RESULT eServiceMP3::isCurrentlySeekable()
{
- int ret = 3; // seeking and fast/slow winding possible
- GstElement *sink;
-
- if (!m_gst_playbin)
- return 0;
- if (m_state != stRunning)
- return 0;
-
- g_object_get (G_OBJECT (m_gst_playbin), "video-sink", &sink, NULL);
-
- // disable fast winding yet when a dvbvideosink or dvbaudiosink is used
- // for this we must do some changes on different places.. (gstreamer.. our sinks.. enigma2)
- if (sink) {
- ret &= ~2; // only seeking possible
- gst_object_unref(sink);
- }
- else {
- g_object_get (G_OBJECT (m_gst_playbin), "audio-sink", &sink, NULL);
- if (sink) {
- ret &= ~2; // only seeking possible
- gst_object_unref(sink);
- }
- }
-
- return ret;
+ return 1;
}
RESULT eServiceMP3::info(ePtr<iServiceInformation>&i)