Move video keybinding from python to elisp side.

master
Andy Stewart 7 years ago
parent 4a5f1cc884
commit 78533d2eac
  1. 26
      app/videoplayer/buffer.py
  2. 2
      docs/KEYBINDING.md
  3. 14
      eaf.el

@ -50,6 +50,20 @@ class AppBuffer(Buffer):
position = int(session_data)
self.buffer_widget.media_player.setPosition(position)
def toggle_play(self):
if self.buffer_widget.media_player.state() == QMediaPlayer.PlayingState:
self.buffer_widget.media_player.pause()
self.buffer_widget.video_need_replay = False
else:
self.buffer_widget.media_player.play()
self.buffer_widget.video_need_replay = True
def play_backward(self):
self.buffer_widget.seek_backward()
def play_forward(self):
self.buffer_widget.seek_forward()
class VideoPlayerWidget(QWidget):
def __init__(self, parent=None):
@ -91,15 +105,3 @@ class VideoPlayerWidget(QWidget):
video_position = self.media_player.position()
self.media_player.setPosition(max(video_position - self.video_seek_durcation, 0))
def keyPressEvent(self, event):
if event.key() == Qt.Key_Space:
if self.media_player.state() == QMediaPlayer.PlayingState:
self.media_player.pause()
self.video_need_replay = False
else:
self.media_player.play()
self.video_need_replay = True
elif event.key() == Qt.Key_H:
self.seek_backward()
elif event.key() == Qt.Key_L:
self.seek_forward()

@ -36,7 +36,7 @@
| [ | Remember position |
| ] | Remember jump |
### Vide Player
### Video Player
| Video Player Key | Event |
| :-----: | :---- |

@ -182,6 +182,15 @@ by `dired-find-alternate-file'. Otherwise they will be opened normally with `dir
:type 'cons
:group 'eaf)
(defcustom eaf-videoplayer-keybinding
'(("SPC" . "toggle_play")
("h" . "play_backward")
("l" . "play_forward")
)
"The keybinding of video player."
:type 'cons
:group 'eaf)
(defun eaf-call (method &rest args)
(apply 'dbus-call-method
:session ; use the session (not system) bus
@ -397,6 +406,11 @@ We need calcuate render allocation to make sure no black border around render co
(if function-name-value
(eaf-call "execute_function" buffer-id (cdr function-name-value))
(eaf-call "send_key" buffer-id key-desc))))
((equal buffer-app-name "videoplayer")
(let ((function-name-value (assoc key-desc eaf-videoplayer-keybinding)))
(if function-name-value
(eaf-call "execute_function" buffer-id (cdr function-name-value))
(eaf-call "send_key" buffer-id key-desc))))
(t
(eaf-call "send_key" buffer-id key-desc))))
((string-match "^[CMSs]-.*" key-desc)

Loading…
Cancel
Save