diff options
Diffstat (limited to 'play')
-rwxr-xr-x[-rw-r--r--] | play | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -1324,6 +1324,17 @@ class TimeOffsetPlayer(Player): self.set_position(head, head+tail, [head, tail]) # ------------------------------------------ +class TimeOffsetPlayerMplayer(Player): + re_progress = re.compile("^A:.*?(\d+)\.\d \([^)]+\) of (\d+)\.\d") + + def parse_buf(self): + match = self.re_progress.search(self.buf) + if match: + curS, totS = map(string.atoi, match.groups()) + position, length = curS, totS + self.set_position(position, length, [position, length]) + +# ------------------------------------------ class NoOffsetPlayer(Player): def parse_buf(self): @@ -1695,7 +1706,8 @@ PLAYERS = [ NoOffsetPlayer("mikmod -q -p0 %s", "\.(mod|xm|fm|s3m|med|col|669|it|mtm)$"), NoOffsetPlayer("xmp -q %s", "\.(mod|xm|fm|s3m|med|col|669|it|mtm|stm)$"), NoOffsetPlayer("play %s", "\.(aiff|au|cdr|mp3|ogg|wav)$"), - NoOffsetPlayer("speexdec %s", "\.spx$") + NoOffsetPlayer("speexdec %s", "\.spx$"), + TimeOffsetPlayerMplayer("mplayer %s", "^http://|\.(mp[123]|m4a|ogg|flac|spx|mp[cp+]|mod|xm|fm|s3m|med|col|669|it|mtm|stm|aiff|au|cdr|wav|wma)$") ] MACRO = {} |