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.
This commit is contained in:
@ -29,6 +29,9 @@ if "mpd" not in config.sections():
|
|||||||
player_config = config["player"]
|
player_config = config["player"]
|
||||||
mpd_config = config["mpd"]
|
mpd_config = config["mpd"]
|
||||||
|
|
||||||
|
# FPS
|
||||||
|
FPS = 20
|
||||||
|
|
||||||
# Image ratio
|
# Image ratio
|
||||||
# Change this to match the (width, height) of your font.
|
# Change this to match the (width, height) of your font.
|
||||||
IMAGERATIO = (player_config.getint("font_width", 11),
|
IMAGERATIO = (player_config.getint("font_width", 11),
|
||||||
@ -107,6 +110,9 @@ class Player:
|
|||||||
# Ueberzug placement
|
# Ueberzug placement
|
||||||
self.art_placement = None
|
self.art_placement = None
|
||||||
|
|
||||||
|
# Update needed flag
|
||||||
|
self.update_needed = False
|
||||||
|
|
||||||
|
|
||||||
def fitText(self):
|
def fitText(self):
|
||||||
"""
|
"""
|
||||||
@ -297,9 +303,11 @@ class Player:
|
|||||||
|
|
||||||
if keyChar == ">":
|
if keyChar == ">":
|
||||||
self.client.next()
|
self.client.next()
|
||||||
|
self.update_needed = True
|
||||||
|
|
||||||
elif keyChar == "<":
|
elif keyChar == "<":
|
||||||
self.client.previous()
|
self.client.previous()
|
||||||
|
self.update_needed = True
|
||||||
|
|
||||||
elif keyChar == "p":
|
elif keyChar == "p":
|
||||||
self.client.pause()
|
self.client.pause()
|
||||||
@ -316,6 +324,7 @@ class Player:
|
|||||||
elif keyChar == "h":
|
elif keyChar == "h":
|
||||||
self.help = not self.help
|
self.help = not self.help
|
||||||
self.cleared = False
|
self.cleared = False
|
||||||
|
self.update_needed = True
|
||||||
|
|
||||||
key = self.stdscr.getch()
|
key = self.stdscr.getch()
|
||||||
|
|
||||||
@ -517,7 +526,7 @@ class Player:
|
|||||||
s = time.perf_counter()
|
s = time.perf_counter()
|
||||||
|
|
||||||
self.handleKeypress()
|
self.handleKeypress()
|
||||||
if i == 0:
|
if i == 0 or self.update_needed:
|
||||||
# Checko for window size update
|
# Checko for window size update
|
||||||
self.updateWindowSize()
|
self.updateWindowSize()
|
||||||
|
|
||||||
@ -528,12 +537,14 @@ class Player:
|
|||||||
self.hideAlbumArt()
|
self.hideAlbumArt()
|
||||||
self.drawHelp()
|
self.drawHelp()
|
||||||
|
|
||||||
|
self.update_needed = False
|
||||||
|
|
||||||
e = time.perf_counter()
|
e = time.perf_counter()
|
||||||
|
|
||||||
sleeptime = abs(0.1 - (e-s))
|
sleeptime = abs(1/FPS - (e-s))
|
||||||
|
|
||||||
time.sleep(sleeptime)
|
time.sleep(sleeptime)
|
||||||
i = (i + 1) % 10
|
i = (i + 1) % FPS
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
error = False
|
error = False
|
||||||
|
Reference in New Issue
Block a user