コード例 #1
0
ファイル: subtitlesdvb.py プロジェクト: sskodje/subssupport
 def changeFps(self):
     subsFps = self.engine.getSubsFps()
     if subsFps is None:
         return
     currIdx = self.fpsChoices.index(str(subsFps))
     if currIdx == len(self.fpsChoices) - 1:
         nextIdx = 0
     else:
         nextIdx = currIdx + 1
     self.engine.setSubsFps(fps_float(self.fpsChoices[nextIdx]))
     self.updateSubtitlesFps()
     sub = self.engine.getCurrentSub()
     active = self.engine.renderer.subShown
     self.updateSubtitle(sub, active)
     self.updateSubtitlesPosition()
     self.showStatus(True)
コード例 #2
0
 def changeFps(self):
     subsFps = self.engine.getSubsFps()
     if subsFps is None:
         return
     currIdx = self.fpsChoices.index(str(subsFps))
     if currIdx == len(self.fpsChoices) - 1:
         nextIdx = 0
     else:
         nextIdx = currIdx + 1
     self.engine.setSubsFps(fps_float(self.fpsChoices[nextIdx]))
     self.updateSubtitlesFps()
     sub = self.engine.getCurrentSub()
     active = self.engine.renderer.subShown
     self.updateSubtitle(sub, active)
     self.updateSubtitlesPosition()
     self.showStatus(True)
コード例 #3
0
ファイル: subtitlesdvb.py プロジェクト: sskodje/subssupport
 def __init__(self, session, engine, autoSync=False, setSubtitlesFps=False, subtitlesFps=None):
     desktopWidth = getDesktop(0).size().width()
     offset = 20
     screenWidth = desktopWidth - (2 * offset)
     widgetWidth = screenWidth / 2 - 5
     self.skin = """
         <screen position="%d,0" size="%d,140" zPosition="2" backgroundColor="transparent" flags="wfNoBorder">
             <widget name="subtitle" position="0,0" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesTime" position="0,35" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesPosition" position="0,70" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesFps" position="0,105" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#6F9EF5" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventName" position="%d,0" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventTime" position="%d,35" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventDuration" position="%d,70" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
         </screen>""" % (offset, screenWidth,
                         widgetWidth, widgetWidth, widgetWidth, widgetWidth,
                         widgetWidth + 5, widgetWidth, widgetWidth + 5, widgetWidth, widgetWidth + 5, widgetWidth)
     Screen.__init__(self, session)
     HelpableScreen.__init__(self)
     self.engine = engine
     self.engine.onRenderSub.append(self.onRenderSub)
     self.engine.onHideSub.append(self.onHideSub)
     self.engine.onPositionUpdate.append(self.onUpdateSubPosition)
     subtitlesFps = subtitlesFps and fps_float(subtitlesFps)
     if subtitlesFps and str(subtitlesFps) in self.fpsChoices:
         self.providedSubtitlesFps = subtitlesFps
     else:
         self.providedSubtitlesFps = None
     self.hideTimer = eTimer()
     self.hideTimer.callback.append(self.hideStatus)
     self.hideTimerDelay = 5000
     self.eventTimer = eTimer()
     self.eventTimer.callback.append(self.updateEventStatus)
     self.subtitlesTimer = eTimer()
     self.subtitlesTimer.callback.append(self.updateSubtitlesTime)
     self.subtitlesTimerStep = 500
     self._baseTime = 0
     self._accTime = 0
     self.statusLocked = False
     self['subtitle'] = Label()
     self['subtitlesPosition'] = Label(_("Subtitles Position") + ":")
     self['subtitlesTime'] = Label(_("Subtitles Time") + ":")
     self['subtitlesFps'] = Label(_("Subtitles FPS") + ":")
     self["eventName"] = Label(_("Event Name") + ":")
     self["eventTime"] = Label(_("Event Time") + ":")
     self["eventDuration"] = Label(_("Event Duration") + ":")
     self['actions'] = HelpableActionMap(self, "SubtitlesDVBActions",
     {
         "closePlugin": (self.close, _("close plugin")),
         "showHideStatus": (self.showHideStatus, _("show/hide subtitles status")),
         "playPauseSub": (self.playPause, _("play/pause subtitles playback")),
         "pauseSub": (self.pause, _("pause subtitles playback")),
         "resumeSub": (self.resume, _("resumes subtitles playback")),
         "restartSub":(self.restart, _("restarts current subtitle")),
         "nextSub": (self.nextSkip, _("skip to next subtitle")),
         "nextSubMinute": (self.nextMinuteSkip, _("skip to next subtitle (minute jump)")),
         "nextSubManual":(self.nextManual, _("skip to next subtitle by setting time in minutes")),
         "prevSub":(self.previousSkip, _("skip to previous subtitle")),
         "prevSubMinute":(self.previousMinuteSkip, _("skip to previous subtitle (minute jump)")),
         "prevSubManual":(self.previousManual, _("skip previous subtitle by setting time in minutes")),
         "eventSync":(self.eventSync, _("skip subtitle to current event position")),
         "changeFps":(self.changeFps, _("change subtitles fps")),
     }, 0)
     try:
         from Screens.InfoBar import InfoBar
         InfoBar.instance.subtitle_window.hide()
     except:
         pass
     self.onLayoutFinish.append(self.hideStatus)
     self.onLayoutFinish.append(self.engine.start)
     self.onLayoutFinish.append(self.startEventTimer)
     self.onLayoutFinish.append(self.startSubtitlesTimer)
     self.onLayoutFinish.append(self.showStatusWithTimer)
     if setSubtitlesFps and self.providedSubtitlesFps:
         self.onFirstExecBegin.append(self.setProvidedSubtitlesFps)
     if autoSync:
         self.onFirstExecBegin.append(self.eventSync)
     self.onClose.append(self.engine.close)
     self.onClose.append(self.stopTimers)
コード例 #4
0
ファイル: subtitlesdvb.py プロジェクト: sskodje/subssupport
 def getSubsFps(self):
     videoFps = getFps(self.session, True)
     if videoFps is None:
         return None
     return fps_float(self.fpsRatio * videoFps)
コード例 #5
0
 def getSubsFps(self):
     videoFps = getFps(self.session, True)
     if videoFps is None:
         return None
     return fps_float(self.fpsRatio * videoFps)
コード例 #6
0
 def __init__(self,
              session,
              engine,
              autoSync=False,
              setSubtitlesFps=False,
              subtitlesFps=None):
     desktopWidth = getDesktop(0).size().width()
     offset = 20
     screenWidth = desktopWidth - (2 * offset)
     widgetWidth = screenWidth / 2 - 5
     self.skin = """
         <screen position="%d,0" size="%d,140" zPosition="2" backgroundColor="transparent" flags="wfNoBorder">
             <widget name="subtitle" position="0,0" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesTime" position="0,35" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesPosition" position="0,70" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="subtitlesFps" position="0,105" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#6F9EF5" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventName" position="%d,0" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventTime" position="%d,35" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
             <widget name="eventDuration" position="%d,70" size="%d,30" valign="center" halign="left" font="Regular;22" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
         </screen>""" % (offset, screenWidth, widgetWidth, widgetWidth,
                         widgetWidth, widgetWidth, widgetWidth + 5,
                         widgetWidth, widgetWidth + 5, widgetWidth,
                         widgetWidth + 5, widgetWidth)
     Screen.__init__(self, session)
     HelpableScreen.__init__(self)
     self.engine = engine
     self.engine.onRenderSub.append(self.onRenderSub)
     self.engine.onHideSub.append(self.onHideSub)
     self.engine.onPositionUpdate.append(self.onUpdateSubPosition)
     subtitlesFps = subtitlesFps and fps_float(subtitlesFps)
     if subtitlesFps and str(subtitlesFps) in self.fpsChoices:
         self.providedSubtitlesFps = subtitlesFps
     else:
         self.providedSubtitlesFps = None
     self.hideTimer = eTimer()
     self.hideTimer.callback.append(self.hideStatus)
     self.hideTimerDelay = 5000
     self.eventTimer = eTimer()
     self.eventTimer.callback.append(self.updateEventStatus)
     self.subtitlesTimer = eTimer()
     self.subtitlesTimer.callback.append(self.updateSubtitlesTime)
     self.subtitlesTimerStep = 500
     self._baseTime = 0
     self._accTime = 0
     self.statusLocked = False
     self['subtitle'] = Label()
     self['subtitlesPosition'] = Label(_("Subtitles Position") + ":")
     self['subtitlesTime'] = Label(_("Subtitles Time") + ":")
     self['subtitlesFps'] = Label(_("Subtitles FPS") + ":")
     self["eventName"] = Label(_("Event Name") + ":")
     self["eventTime"] = Label(_("Event Time") + ":")
     self["eventDuration"] = Label(_("Event Duration") + ":")
     self['actions'] = HelpableActionMap(
         self, "SubtitlesDVBActions", {
             "closePlugin": (self.close, _("close plugin")),
             "showHideStatus":
             (self.showHideStatus, _("show/hide subtitles status")),
             "playPauseSub":
             (self.playPause, _("play/pause subtitles playback")),
             "pauseSub": (self.pause, _("pause subtitles playback")),
             "resumeSub": (self.resume, _("resumes subtitles playback")),
             "restartSub": (self.restart, _("restarts current subtitle")),
             "nextSub": (self.nextSkip, _("skip to next subtitle")),
             "nextSubMinute": (self.nextMinuteSkip,
                               _("skip to next subtitle (minute jump)")),
             "nextSubManual":
             (self.nextManual,
              _("skip to next subtitle by setting time in minutes")),
             "prevSub": (self.previousSkip, _("skip to previous subtitle")),
             "prevSubMinute":
             (self.previousMinuteSkip,
              _("skip to previous subtitle (minute jump)")),
             "prevSubManual":
             (self.previousManual,
              _("skip previous subtitle by setting time in minutes")),
             "eventSync":
             (self.eventSync, _("skip subtitle to current event position")),
             "changeFps": (self.changeFps, _("change subtitles fps")),
         }, 0)
     try:
         from Screens.InfoBar import InfoBar
         InfoBar.instance.subtitle_window.hide()
     except:
         pass
     self.onLayoutFinish.append(self.hideStatus)
     self.onLayoutFinish.append(self.engine.start)
     self.onLayoutFinish.append(self.startEventTimer)
     self.onLayoutFinish.append(self.startSubtitlesTimer)
     self.onLayoutFinish.append(self.showStatusWithTimer)
     if setSubtitlesFps and self.providedSubtitlesFps:
         self.onFirstExecBegin.append(self.setProvidedSubtitlesFps)
     if autoSync:
         self.onFirstExecBegin.append(self.eventSync)
     self.onClose.append(self.engine.close)
     self.onClose.append(self.stopTimers)
コード例 #7
0
    def __init__(self,
                 session,
                 engine,
                 autoSync=False,
                 setSubtitlesFps=False,
                 subtitlesFps=None):
        desktopSize = getDesktopSize()
        windowPosition = (int(0.03 * desktopSize[0]),
                          int(0.05 * desktopSize[1]))
        windowSize = (int(0.9 * desktopSize[0]), int(0.4 * desktopSize[1]))
        fontSize = 33 if isFullHD() else 22
        leftWidget = (int(0.4 * windowSize[0]), fontSize + 10, fontSize)
        rightWidget = (int(0.4 * windowSize[0]), fontSize + 10, fontSize)
        xpos = (int(0.6 * windowSize[0]), )
        self.skin = """
            <screen position="%d,%d" size="%d,%d" zPosition="2" backgroundColor="transparent" flags="wfNoBorder">
                <widget name="subtitle" position="0,0" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="subtitlesTime" position="0,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="subtitlesPosition" position="0,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="subtitlesFps" position="0,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#6F9EF5" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="eventName" position="%d,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="eventTime" position="%d,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
                <widget name="eventDuration" position="%d,%d" size="%d,%d" valign="center" halign="left" font="Regular;%d" transparent="1" foregroundColor="#ffffff" shadowColor="#40101010" shadowOffset="2,2" />
            </screen>""" % (windowPosition + windowSize + \
                leftWidget + \
                (leftWidget[1] + 10,) + leftWidget + \
                ((leftWidget[1] + 10) * 2,) + leftWidget + \
                ((leftWidget[1] + 10) * 3,) + leftWidget + \
                xpos + (0,) + rightWidget + \
                xpos + ((rightWidget[1] + 10) * 1,) + rightWidget + \
                xpos + ((rightWidget[1] + 10) * 2,) + rightWidget)

        Screen.__init__(self, session)
        HelpableScreen.__init__(self)
        self.engine = engine
        self.engine.onRenderSub.append(self.onRenderSub)
        self.engine.onHideSub.append(self.onHideSub)
        self.engine.onPositionUpdate.append(self.onUpdateSubPosition)
        subtitlesFps = subtitlesFps and fps_float(subtitlesFps)
        if subtitlesFps and str(subtitlesFps) in self.fpsChoices:
            self.providedSubtitlesFps = subtitlesFps
        else:
            self.providedSubtitlesFps = None
        self.hideTimer = eTimer()
        self.hideTimer_conn = eConnectCallback(self.hideTimer.timeout,
                                               self.hideStatus)
        self.hideTimerDelay = 5000
        self.eventTimer = eTimer()
        self.eventTimer_conn = eConnectCallback(self.eventTimer.timeout,
                                                self.updateEventStatus)
        self.subtitlesTimer = eTimer()
        self.subtitlesTimer_conn = eConnectCallback(
            self.subtitlesTimer.timeout, self.updateSubtitlesTime)
        self.subtitlesTimerStep = 500
        self._baseTime = 0
        self._accTime = 0
        self.statusLocked = False
        self['subtitle'] = Label()
        self['subtitlesPosition'] = Label(_("Subtitles Position") + ":")
        self['subtitlesTime'] = Label(_("Subtitles Time") + ":")
        self['subtitlesFps'] = Label(_("Subtitles FPS") + ":")
        self["eventName"] = Label(_("Event Name") + ":")
        self["eventTime"] = Label(_("Event Time") + ":")
        self["eventDuration"] = Label(_("Event Duration") + ":")
        self['actions'] = HelpableActionMap(
            self, "SubtitlesDVBActions", {
                "closePlugin": (self.close, _("close plugin")),
                "showHideStatus":
                (self.showHideStatus, _("show/hide subtitles status")),
                "playPauseSub":
                (self.playPause, _("play/pause subtitles playback")),
                "pauseSub": (self.pause, _("pause subtitles playback")),
                "resumeSub": (self.resume, _("resumes subtitles playback")),
                "restartSub": (self.restart, _("restarts current subtitle")),
                "nextSub": (self.nextSkip, _("skip to next subtitle")),
                "nextSubMinute": (self.nextMinuteSkip,
                                  _("skip to next subtitle (minute jump)")),
                "nextSubManual":
                (self.nextManual,
                 _("skip to next subtitle by setting time in minutes")),
                "prevSub": (self.previousSkip, _("skip to previous subtitle")),
                "prevSubMinute":
                (self.previousMinuteSkip,
                 _("skip to previous subtitle (minute jump)")),
                "prevSubManual":
                (self.previousManual,
                 _("skip previous subtitle by setting time in minutes")),
                "eventSync":
                (self.eventSync, _("skip subtitle to current event position")),
                "changeFps": (self.changeFps, _("change subtitles fps")),
            }, 0)
        try:
            from Screens.InfoBar import InfoBar
            InfoBar.instance.subtitle_window.hide()
        except:
            pass
        self.onLayoutFinish.append(self.hideStatus)
        self.onLayoutFinish.append(self.engine.start)
        self.onLayoutFinish.append(self.startEventTimer)
        self.onLayoutFinish.append(self.startSubtitlesTimer)
        self.onLayoutFinish.append(self.showStatusWithTimer)
        if setSubtitlesFps and self.providedSubtitlesFps:
            self.onFirstExecBegin.append(self.setProvidedSubtitlesFps)
        if autoSync:
            self.onFirstExecBegin.append(self.eventSync)
        self.onClose.append(self.engine.close)
        self.onClose.append(self.delTimers)