Skip to content

Commit 3a9b60e

Browse files
author
Tristan Ferrua
committed
Made the player more responsive by increasing loops per second and by implementing a update flag which forces a redraw when certain keybinds are pressed.
1 parent 9b89c06 commit 3a9b60e

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

bin/miniplayer

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ if "mpd" not in config.sections():
2929
player_config = config["player"]
3030
mpd_config = config["mpd"]
3131

32+
# FPS
33+
FPS = 20
34+
3235
# Image ratio
3336
# Change this to match the (width, height) of your font.
3437
IMAGERATIO = (player_config.getint("font_width", 11),
@@ -107,6 +110,9 @@ class Player:
107110
# Ueberzug placement
108111
self.art_placement = None
109112

113+
# Update needed flag
114+
self.update_needed = False
115+
110116

111117
def fitText(self):
112118
"""
@@ -297,9 +303,11 @@ class Player:
297303

298304
if keyChar == ">":
299305
self.client.next()
306+
self.update_needed = True
300307

301308
elif keyChar == "<":
302309
self.client.previous()
310+
self.update_needed = True
303311

304312
elif keyChar == "p":
305313
self.client.pause()
@@ -316,6 +324,7 @@ class Player:
316324
elif keyChar == "h":
317325
self.help = not self.help
318326
self.cleared = False
327+
self.update_needed = True
319328

320329
key = self.stdscr.getch()
321330

@@ -517,7 +526,7 @@ class Player:
517526
s = time.perf_counter()
518527

519528
self.handleKeypress()
520-
if i == 0:
529+
if i == 0 or self.update_needed:
521530
# Checko for window size update
522531
self.updateWindowSize()
523532

@@ -528,12 +537,14 @@ class Player:
528537
self.hideAlbumArt()
529538
self.drawHelp()
530539

540+
self.update_needed = False
541+
531542
e = time.perf_counter()
532543

533-
sleeptime = abs(0.1 - (e-s))
544+
sleeptime = abs(1/FPS - (e-s))
534545

535546
time.sleep(sleeptime)
536-
i = (i + 1) % 10
547+
i = (i + 1) % FPS
537548

538549
except KeyboardInterrupt:
539550
error = False

0 commit comments

Comments
 (0)