Fix loadfile for mpv v0.38.0
mpv v0.38.0 added an argument to the loadfile command. Unfortunately the parsing logic isn't very smart, and now mis-interprets the old argument format, and breaks literally everything written against older versions that used the `options` kv dict. This commit adds a kludge that uses the right variant depending on the mpv version.
This commit is contained in:
parent
d26f801cec
commit
d96eaf7e64
1 changed files with 11 additions and 2 deletions
11
mpv.py
11
mpv.py
|
|
@ -893,6 +893,8 @@ class MPV(object):
|
|||
self._event_thread.start()
|
||||
else:
|
||||
self._event_thread = None
|
||||
if (m := re.search(r'(\d+)\.(\d+)\.(\d+)', self.mpv_version)):
|
||||
self.mpv_version_tuple = tuple(map(int, m.groups()))
|
||||
|
||||
@contextmanager
|
||||
def _enqueue_exceptions(self):
|
||||
|
|
@ -1324,8 +1326,15 @@ class MPV(object):
|
|||
def _encode_options(options):
|
||||
return ','.join('{}={}'.format(_py_to_mpv(str(key)), str(val)) for key, val in options.items())
|
||||
|
||||
def loadfile(self, filename, mode='replace', **options):
|
||||
def loadfile(self, filename, mode='replace', index=None, **options):
|
||||
"""Mapped mpv loadfile command, see man mpv(1)."""
|
||||
if self.mpv_version_tuple >= (0, 38, 0):
|
||||
if index is None:
|
||||
index = -1
|
||||
self.command('loadfile', filename.encode(fs_enc), mode, index, MPV._encode_options(options))
|
||||
else:
|
||||
if index is not None:
|
||||
warn(f'The index argument to the loadfile command is only supported on mpv >= 0.38.0')
|
||||
self.command('loadfile', filename.encode(fs_enc), mode, MPV._encode_options(options))
|
||||
|
||||
def loadlist(self, playlist, mode='replace'):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue