summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x[-rw-r--r--]play14
1 files changed, 13 insertions, 1 deletions
diff --git a/play b/play
index eb9634f..a4b6f4c 100644..100755
--- a/play
+++ b/play
@@ -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 = {}