diff --git a/epydial/audio_screen.py b/epydial/audio_screen.py index 5ac8c25..33edb45 100644 --- a/epydial/audio_screen.py +++ b/epydial/audio_screen.py @@ -20,7 +20,7 @@ from pyneo.dns_support import DNSCache #require: export PYTHONPATH=/usr/share/py class AudioScreen(EdjeGroup): toggle = 0 - volume = 0.9 + volume = 0.1 def __init__(self, screen_manager): EdjeGroup.__init__(self, screen_manager, AUDIO_SCREEN_NAME) @@ -71,8 +71,15 @@ class AudioScreen(EdjeGroup): def register_pyneo_callbacks(self): PyneoController.register_callback("on_get_mp3_tags", self.on_get_mp3_tags) + PyneoController.register_callback("on_get_song_duration", self.on_get_song_duration) +# PyneoController.register_callback("on_get_song_position", self.on_get_song_position) + + def on_get_song_duration(self, status): + self.part_text_set("duration", "%s" % time.ctime(status)[14:][:5]) + print '--- current song length: ', status def on_get_mp3_tags(self, status): + PyneoController.get_song_duration() try: self.image.delete() except: @@ -80,12 +87,10 @@ class AudioScreen(EdjeGroup): self.part_text_set("mp3_tags", "artist: %s
album: %s
title: %s" % (status['artist'], status['album'], status['title'])) if not os.path.isfile(COVER_FILE_PATH + '%s_%s.jpeg' % (status['artist'], status['album'])): - try: - content = self.get_amazon_cover(status['artist'], status['album']) - with open(COVER_FILE_PATH + '%s_%s.jpeg' % (status['artist'], status['album']), 'w') as f: - f.write(content) - except: - pass # display a dummy cover + print '--- cover not exists' + content = self.get_amazon_cover(status['artist'], status['album']) + with open(COVER_FILE_PATH + '%s_%s.jpeg' % (status['artist'], status['album']), 'w') as f: + f.write(content) self.image = self.evas.Image(file=COVER_FILE_PATH + '%s_%s.jpeg' % (status['artist'], status['album'])) x, y = self.image.image_size diff --git a/epydial/data/themes/blackwhite/audio_screen.edc b/epydial/data/themes/blackwhite/audio_screen.edc index 369f1ad..22fbeb2 100755 --- a/epydial/data/themes/blackwhite/audio_screen.edc +++ b/epydial/data/themes/blackwhite/audio_screen.edc @@ -289,6 +289,22 @@ collections { rel2 { relative: 1/2 1/2; offset: 80 80; } } } /*end icon swallow */ + part { + name: "duration"; + type: TEXT; + mouse_events: 0; + description { + state: "default" 0; + color_class: "button_inactive"; + rel1 { relative: 6/8 3/8; } + rel2 { relative: 1 4/8; } + text { + size: 20; + font: "VeraBd"; + fit: 1 1; + } + } + } key("track_left", 0, 2) key("stop", 1, 2) key_play_pause("play_pause", "play", "pause", 2, 2) diff --git a/epydial/epydial.py b/epydial/epydial.py index 80c9ca6..99c88a5 100755 --- a/epydial/epydial.py +++ b/epydial/epydial.py @@ -554,6 +554,14 @@ class PyneoController(object): def stop_ringtone(class_): class_.mp3.StopRingtone(dbus_interface='org.pyneo.Music') + @classmethod + def get_song_duration(class_): + class_.notify_callbacks("on_get_song_duration", class_.mp3.GetSongDuration(dbus_interface='org.pyneo.Music')) + + @classmethod + def get_song_position(class_): + class_mp3.GetSongPosition(dbus_interface='org.pyneo,Music') + @classmethod def db_check(class_): if not os.path.exists(DB_FILE_PATH): @@ -601,6 +609,7 @@ class Dialer(object): PyneoController.register_callback("show_sms_screen_detail", self.on_sms_screen_detail) PyneoController.register_callback("show_weather_screen", self.on_weather_screen) PyneoController.register_callback("show_audio_screen", self.on_audio_screen) +# PyneoController.register_callback("on_get_song_duration", self.on_get_song_duration) # Initialize the D-Bus interface to pyneo dbus_ml = e_dbus.DBusEcoreMainLoop()