Commit 78533d2e authored by Andy Stewart's avatar Andy Stewart
Browse files

Move video keybinding from python to elisp side.

parent 4a5f1cc8
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -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()
+1 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@
| [              | Remember position |
| ]              | Remember jump     |

### Vide Player
### Video Player

| Video Player Key | Event         |
| :-----:          | :----         |
+14 −0
Original line number Diff line number Diff line
@@ -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)