feat: add up/down arrow key bindings for playback speed control

This commit is contained in:
2026-01-02 17:20:13 +01:00
parent 459970ebd5
commit b9f147c3b3

View File

@@ -43,6 +43,8 @@ class Auditui(App):
("right", "seek_forward", "+30s"), ("right", "seek_forward", "+30s"),
("ctrl+left", "previous_chapter", "Previous chapter"), ("ctrl+left", "previous_chapter", "Previous chapter"),
("ctrl+right", "next_chapter", "Next chapter"), ("ctrl+right", "next_chapter", "Next chapter"),
("up", "increase_speed", "Increase speed"),
("down", "decrease_speed", "Decrease speed"),
("d", "toggle_download", "Download/Delete"), ("d", "toggle_download", "Download/Delete"),
("q", "quit", "Quit"), ("q", "quit", "Quit"),
] ]
@@ -124,6 +126,14 @@ class Auditui(App):
event.prevent_default() event.prevent_default()
self.action_seek_forward() self.action_seek_forward()
return return
elif event.key == "up":
event.prevent_default()
self.action_increase_speed()
return
elif event.key == "down":
event.prevent_default()
self.action_decrease_speed()
return
if isinstance(self.focused, DataTable): if isinstance(self.focused, DataTable):
if event.key == "enter": if event.key == "enter":
@@ -290,6 +300,16 @@ class Auditui(App):
if not self.playback.seek_to_previous_chapter(): if not self.playback.seek_to_previous_chapter():
self._no_playback_message() self._no_playback_message()
def action_increase_speed(self) -> None:
"""Increase playback speed."""
if not self.playback.increase_speed():
self._no_playback_message()
def action_decrease_speed(self) -> None:
"""Decrease playback speed."""
if not self.playback.decrease_speed():
self._no_playback_message()
def _no_playback_message(self) -> None: def _no_playback_message(self) -> None:
"""Show message when no playback is active.""" """Show message when no playback is active."""
self.update_status("No playback active. Press Enter to play a book.") self.update_status("No playback active. Press Enter to play a book.")