Added seeking in the audio player menu and in new keystrokes (read changelog)

This commit is contained in:
2019-04-17 11:46:26 -05:00
parent 4f3bb6ac93
commit 9373f10d68
4 changed files with 26 additions and 0 deletions

View File

@@ -542,6 +542,8 @@ class Controller(object):
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_play_next, menuitem=self.window.player_next)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_play_previous, menuitem=self.window.player_previous)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_play_all, menuitem=self.window.player_play_all)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.seek_left, menuitem=self.window.player_seek_left)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.seek_right, menuitem=self.window.player_seek_right)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_volume_down, menuitem=self.window.player_volume_down)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_volume_up, menuitem=self.window.player_volume_up)
widgetUtils.connect_event(self.window, widgetUtils.MENU, self.menu_mute, menuitem=self.window.player_mute)
@@ -776,6 +778,12 @@ class Controller(object):
def menu_mute(self, *args, **kwargs):
player.player.volume = 0
def seek_left(self, *args, **kwargs):
pub.sendMessage("seek", ms=-500000)
def seek_right(self, *args, **kwargs):
pub.sendMessage("seek", ms=500000)
def view_my_profile(self, *args, **kwargs):
self.user_profile(self.session.user_id)

View File

@@ -53,6 +53,7 @@ class audioPlayer(object):
pub.subscribe(self.stop, "stop")
pub.subscribe(self.play_next, "play-next")
pub.subscribe(self.play_previous, "play-previous")
pub.subscribe(self.seek, "seek")
def play(self, object, set_info=True, fresh=False):
""" Play an URl Stream.
@@ -181,6 +182,16 @@ class audioPlayer(object):
self.playing_track -= 1
call_threaded(self.play, self.queue[self.playing_track])
def seek(self, ms=0):
if self.check_is_playing():
if self.stream.position < 500000 and ms < 0:
self.stream.position = 0
else:
try:
self.stream.position = self.stream.position+ms
except:
pass
def check_is_playing(self):
""" check if the player is already playing a stream. """
if self.stream == None:

View File

@@ -41,6 +41,8 @@ class mainWindow(wx.Frame):
self.player_previous = player.Append(wx.NewId(), _("Previous"))
self.player_next = player.Append(wx.NewId(), _("Next"))
self.player_shuffle = player.AppendCheckItem(wx.NewId(), _("Shuffle"))
self.player_seek_left = player.Append(wx.NewId(), _("Seek backwards"))
self.player_seek_right = player.Append(wx.NewId(), _("Seek forwards"))
self.player_volume_up = player.Append(wx.NewId(), _("Volume up"))
self.player_volume_down = player.Append(wx.NewId(), _("Volume down"))
self.player_mute = player.Append(wx.NewId(), _("Mute"))
@@ -65,6 +67,8 @@ class mainWindow(wx.Frame):
# Translators: Keystroke used to play/pause the current item in the playback queue. Use the latin alphabet, but you can match a different key here. For example if you want to assign this to the key "П", use G.
(wx.ACCEL_CTRL, ord(_("P")), self.player_play.GetId()),
(wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord(_("P")), self.player_play_all.GetId()),
(wx.ACCEL_ALT|wx.ACCEL_SHIFT, wx.WXK_LEFT, self.player_seek_left.GetId()),
(wx.ACCEL_ALT|wx.ACCEL_SHIFT, wx.WXK_RIGHT, self.player_seek_right.GetId()),
])
self.SetAcceleratorTable(self.accel_tbl)