Fix streams

This commit is contained in:
9and3r
2015-07-11 00:21:06 +02:00
parent 643f1c4e8c
commit ca7f01091a
4 changed files with 70 additions and 45 deletions

View File

@@ -66,15 +66,19 @@ class MainScreen(BaseScreen):
100, True)
self.touch_text_manager.set_touch_object("volume", progress)
progress.set_value(self.core.playback.volume.get())
self.progress_show = False
def should_update(self):
if len(self.update_keys) > 0:
return True
else:
track_pos_millis = self.core.playback.time_position.get()
new_track_pos = track_pos_millis / 1000
if new_track_pos != self.current_track_pos:
return True
if self.progress_show:
track_pos_millis = self.core.playback.time_position.get()
new_track_pos = track_pos_millis / 1000
if new_track_pos != self.current_track_pos:
return True
else:
return False
else:
return False
@@ -89,21 +93,21 @@ class MainScreen(BaseScreen):
elif update_type == BaseScreen.update_partial \
and self.track is not None:
track_pos_millis = self.core.playback.time_position.get()
new_track_pos = track_pos_millis / 1000
if self.progress_show:
track_pos_millis = self.core.playback.time_position.get()
new_track_pos = track_pos_millis / 1000
if new_track_pos != self.current_track_pos:
progress = self.touch_text_manager.get_touch_object(
"time_progress")
progress.set_value(track_pos_millis)
self.current_track_pos = new_track_pos
progress.set_text(
if new_track_pos != self.current_track_pos:
progress = self.touch_text_manager.get_touch_object(
"time_progress")
progress.set_value(track_pos_millis)
self.current_track_pos = new_track_pos
progress.set_text(
time.strftime('%M:%S', time.gmtime(
self.current_track_pos)) +
"/" + self.track_duration)
progress.render(screen)
rects.append(progress.rect_in_pos)
self.current_track_pos)) +
"/" + self.track_duration)
progress.render(screen)
rects.append(progress.rect_in_pos)
for key in self.update_keys:
object = self.touch_text_manager.get_object(key)
object.update()
@@ -116,8 +120,39 @@ class MainScreen(BaseScreen):
x = self.size[1] - self.base_size * 3
width = self.size[0] - self.base_size / 2 - x
self.track_duration = time.strftime('%M:%S', time.gmtime(
track.length / 1000))
# Previous track button
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c",
(0, self.size[1] - self.base_size * 2), None)
self.touch_text_manager.set_touch_object("previous", button)
size_1 = button.get_right_pos()
size_2 = self.fonts['icon'].size(u"\ue61d")[0]
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d",
(self.size[0] - size_2,
self.size[1] - self.base_size * 2),
None)
self.touch_text_manager.set_touch_object("next", button)
if track.length:
self.track_duration = time.strftime('%M:%S', time.gmtime(
track.length / 1000))
# Progress
progress = Progressbar(self.fonts['base'],
time.strftime('%M:%S', time.gmtime(
0)) + "/" + time.strftime(
'%M:%S', time.gmtime(0)),
(size_1, self.size[1] - self.base_size * 2),
(
self.size[0] - size_1 - size_2,
self.base_size),
track.length, False)
self.touch_text_manager.set_touch_object("time_progress",
progress)
self.progress_show = True
else:
self.progress_show = False
self.touch_text_manager.delete_touch_object("time_progress")
# Load all artists
self.artists = []
@@ -155,32 +190,6 @@ class MainScreen(BaseScreen):
self.update_keys.append("artist_name")
self.touch_text_manager.set_object("artist_name", label)
# Previous track button
button = TouchAndTextItem(self.fonts['icon'], u"\ue61c",
(0, self.size[1] - self.base_size * 2), None)
self.touch_text_manager.set_touch_object("previous", button)
size_1 = button.get_right_pos()
size_2 = self.fonts['icon'].size(u"\ue61d")[0]
button = TouchAndTextItem(self.fonts['icon'], u"\ue61d",
(self.size[0] - size_2,
self.size[1] - self.base_size * 2),
None)
self.touch_text_manager.set_touch_object("next", button)
# Progress
progress = Progressbar(self.fonts['base'],
time.strftime('%M:%S', time.gmtime(
0)) + "/" + time.strftime(
'%M:%S', time.gmtime(0)),
(size_1, self.size[1] - self.base_size * 2),
(
self.size[0] - size_1 - size_2,
self.base_size),
track.length, False)
self.touch_text_manager.set_touch_object("time_progress",
progress)
self.track = track
if not self.is_image_in_cache():
thread = Thread(target=self.download_image)
@@ -189,6 +198,9 @@ class MainScreen(BaseScreen):
thread = Thread(target=self.load_image)
thread.start()
def stream_title_changed(self, title):
self.touch_text_manager.get_object("track_name").set_text(title, False)
def get_artist_string(self):
artists_string = ''
for artist in self.artists: