Add responsiveness and current timestamp

This commit is contained in:
Peder Bergebakken Sundt 2018-03-04 04:09:09 +01:00
parent d2a2be60f0
commit 77346f0875
1 changed files with 17 additions and 2 deletions

View File

@ -2,7 +2,7 @@ import random, os, time, shutil, sys
from threading import Timer from threading import Timer
import remi.gui as gui import remi.gui as gui
from remi import App from remi import App
from .utils import Namespace, call_as_thread, get_youtube_metadata from .utils import Namespace, call_as_thread, get_youtube_metadata, seconds_to_timestamp
from . import api from . import api
#globals: #globals:
@ -46,6 +46,8 @@ class RemiApp(App):
self.playback.seek_slider = gui.Slider(0, 0, 100, 1, width="85%", height=20, margin='10px') self.playback.seek_slider = gui.Slider(0, 0, 100, 1, width="85%", height=20, margin='10px')
self.playback.seek_slider.set_oninput_listener(self.change_seek) self.playback.seek_slider.set_oninput_listener(self.change_seek)
self.playback.timestamp = gui.Label("--:-- - --:--")
container.append(self.playback.playing) container.append(self.playback.playing)
playbackContainer = gui.HBox() playbackContainer = gui.HBox()
@ -58,6 +60,7 @@ class RemiApp(App):
playbackContainer.append(volume_container) playbackContainer.append(volume_container)
container.append(playbackContainer) container.append(playbackContainer)
container.append(self.playback.seek_slider) container.append(self.playback.seek_slider)
container.append(self.playback.timestamp)
#playlist #playlist
self.playlist = Namespace() self.playlist = Namespace()
@ -145,6 +148,13 @@ class RemiApp(App):
slider_pos = playback_pos["current"] / playback_pos["total"] * 100 slider_pos = playback_pos["current"] / playback_pos["total"] * 100
if self.playback.seek_slider.get_value() != slider_pos: if self.playback.seek_slider.get_value() != slider_pos:
self.playback.seek_slider.set_value(slider_pos) self.playback.seek_slider.set_value(slider_pos)
self.playback.timestamp.set_text(
seconds_to_timestamp(playback_pos["current"])
+ " - " +
seconds_to_timestamp(playback_pos["total"])
)
else:
self.playback.timestamp.set_text("--:-- - --:--")
if times_called[0] % 5 == 0: if times_called[0] % 5 == 0:
volume = api.get_volume() volume = api.get_volume()
@ -159,8 +169,9 @@ class RemiApp(App):
def playlist_update(self): def playlist_update(self):
playlist = api.get_playlist() playlist = api.get_playlist()
N = len(playlist)
table = [] table = []
for item in playlist: for i, playlist_item in enumerate(playlist):
name = playlist_item["filename"] name = playlist_item["filename"]
length = "--:--" length = "--:--"
if "data" in playlist_item: if "data" in playlist_item:
@ -169,6 +180,10 @@ class RemiApp(App):
if "length" in playlist_item["data"]: if "length" in playlist_item["data"]:
length = playlist_item["data"]["length"] length = playlist_item["data"]["length"]
if playlist_item.get("current", False):
self.playback.previous.set_enabled(i != 0)
self.playback.next.set_enabled(i != N-1)
table.append([ table.append([
playlist_item["index"], playlist_item["index"],
name, name,