Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ class AdvancedSettings(object):
("debug", False),
("kodi_skip_stepping", False),
("auto_seek", True),
("auto_seek_delay", 0),
("dynamic_timeline_seek", False),
("fast_back", False),
)
Expand Down
31 changes: 21 additions & 10 deletions lib/windows/seekdialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ class SeekDialog(kodigui.BaseDialog):

HIDE_DELAY = 4 # This uses the Cron tick so is +/- 1 second accurate
OSD_HIDE_ANIMATION_DURATION = 0.2
AUTO_SEEK_DELAY = 1
SKIP_STEPS = {"negative": [-10000], "positive": [30000]}

def __init__(self, *args, **kwargs):
Expand Down Expand Up @@ -101,7 +100,7 @@ def __init__(self, *args, **kwargs):
self._osdHideAnimationTimeout = 0
self._osdHideFast = False
self._hideDelay = self.HIDE_DELAY
self._autoSeekDelay = self.AUTO_SEEK_DELAY
self._autoSeekDelay = util.advancedSettings.autoSeekDelay
self._atSkipStep = -1
self._lastSkipDirection = None
self._forcedLastSkipAmount = None
Expand Down Expand Up @@ -472,11 +471,18 @@ def skipBack(self, without_osd=False):

def delayedSeek(self):
self.setProperty('button.seek', '1')
self._delayedSeekTimeout = time.time() + 1.0

if not self._delayedSeekThread or not self._delayedSeekThread.isAlive():
self._delayedSeekThread = threading.Thread(target=self._delayedSeek)
self._delayedSeekThread.start()
delay = self._autoSeekDelay;

if delay > 0:
self._delayedSeekTimeout = time.time() + delay

if not self._delayedSeekThread or not self._delayedSeekThread.isAlive():
self._delayedSeekThread = threading.Thread(target=self._delayedSeek)
self._delayedSeekThread.start()
else:
# Do seek now
self._performSeek()
self.resetSeeking()

def _delayedSeek(self):
try:
Expand All @@ -485,11 +491,16 @@ def _delayedSeek(self):
break

if not xbmc.abortRequested and self._delayedSeekTimeout is not None:
self._lastSkipDirection = None
self._forcedLastSkipAmount = None
self.doSeek()
self._performSeek()
except:
util.ERROR()
finally:
self.resetSeeking()

def _performSeek(self):
self._lastSkipDirection = None
self._forcedLastSkipAmount = None
self.doSeek()

def handleDialog(self, func):
self.hasDialog = True
Expand Down
4 changes: 4 additions & 0 deletions resources/language/English/strings.po
Original file line number Diff line number Diff line change
Expand Up @@ -975,6 +975,10 @@ msgctxt "#32485"
msgid "Go back instantly with the previous menu action in scrolled views"
msgstr ""

msgctxt "#32487"
msgid "Seek Delay"
msgstr ""

msgctxt "#32492"
msgid "Kodi Subtitle Settings"
msgstr ""
1 change: 1 addition & 0 deletions resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
</category>
<category label="32464">
<setting id="auto_seek" type="bool" label="32466" default="true" />
<setting id="auto_seek_delay" subsetting="true" enable="eq(-1,true)" type="slider" label="32487" default="0" range="0,.1,5" option="float" />
<setting id="kodi_skip_stepping" type="bool" label="32465" default="false" />
<setting id="dynamic_timeline_seek" type="bool" label="32471" default="false" />
</category>
Expand Down