From 79887c1988b41584574042f5147a88dae070cc7c Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Wed, 27 Oct 2010 00:15:26 +0200 Subject: [PATCH] Add duration to scanner data --- mopidy/scanner.py | 8 ++++++++ tests/scanner_test.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/mopidy/scanner.py b/mopidy/scanner.py index 937ee2b1..79d6c036 100644 --- a/mopidy/scanner.py +++ b/mopidy/scanner.py @@ -71,6 +71,7 @@ class Scanner(object): data = message.parse_tag() data = dict([(k, data[k]) for k in data.keys()]) data['uri'] = self.uribin.get_property('uri') + data['duration'] = self.get_duration() self.data_callback(data) self.next_uri() @@ -81,6 +82,13 @@ class Scanner(object): self.error_callback(uri, errors) self.next_uri() + def get_duration(self): + try: + return self.pipe.query_duration( + gst.FORMAT_TIME, None)[0] // gst.MSECOND + except gst.QueryError: + return None + def next_uri(self): if not self.uris: return self.stop() diff --git a/tests/scanner_test.py b/tests/scanner_test.py index b3f214a9..d47cc7de 100644 --- a/tests/scanner_test.py +++ b/tests/scanner_test.py @@ -73,6 +73,10 @@ class ScannerTest(unittest.TestCase): self.check('scanner/simple/song1.mp3', 'uri', 'file://' + data_folder('scanner/simple/song1.mp3')) + def test_duration_is_set(self): + self.scan('scanner/simple') + self.check('scanner/simple/song1.mp3', 'duration', 4680) + def test_artist_is_set(self): self.scan('scanner/simple') self.check('scanner/simple/song1.mp3', 'artist', 'name')