;;; eaf-music-player.el --- Music player ;; Filename: eaf-music-player.el ;; Description: Music player ;; Author: Andy Stewart ;; Maintainer: Andy Stewart ;; Copyright (C) 2021, Andy Stewart, all rights reserved. ;; Created: 2021-07-31 17:23:55 ;; Version: 0.1 ;; Last-Updated: 2021-07-31 17:23:55 ;; By: Andy Stewart ;; URL: http://www.emacswiki.org/emacs/download/eaf-music-player.el ;; Keywords: ;; Compatibility: GNU Emacs 28.0.50 ;; ;; Features that might be required by this library: ;; ;; ;; ;;; This file is NOT part of GNU Emacs ;;; License ;; ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth ;; Floor, Boston, MA 02110-1301, USA. ;;; Commentary: ;; ;; Music player ;; ;;; Installation: ;; ;; Put eaf-music-player.el to your load-path. ;; The load-path is usually ~/elisp/. ;; It's set in your ~/.emacs like this: ;; (add-to-list 'load-path (expand-file-name "~/elisp")) ;; ;; And the following to your ~/.emacs startup file. ;; ;; (require 'eaf-music-player) ;; ;; No need more. ;;; Customize: ;; ;; ;; ;; All of the above can customize by: ;; M-x customize-group RET eaf-music-player RET ;; ;;; Change log: ;; ;; 2021/07/31 ;; * First released. ;; ;;; Acknowledgements: ;; ;; ;; ;;; TODO ;; ;; ;; ;;; Require ;;; Code: (defcustom eaf-music-play-order "list" "" :type 'string) (defcustom eaf-music-player-keybinding '(("" . "open_devtools") ("j" . "js_play_next") ("k" . "js_play_prev") ("h" . "js_play_random") ("," . "js_backward") ("." . "js_forward") ("SPC" . "js_toggle") ("C-n" . "js_scroll_up") ("C-p" . "js_scroll_down") ("C-v" . "js_scroll_up_page") ("M-v" . "js_scroll_down_page") ("M-<" . "js_scroll_to_begin") ("M->" . "js_scroll_to_bottom") ("g" . "js_jump_to_file") ("t" . "js_toggle_play_order") ("F" . "open_link") ) "The keybinding of EAF Music Player." :type 'cons) (defcustom eaf-music-extension-list '("mp3") "The extension list of music application." :type 'cons) (defcustom eaf-music-default-file nil "The default music file or directory." :type 'file) ;;;###autoload (defun eaf-open-music-player (&optional music-file) "Open EAF music player." (interactive) (eaf-open "eaf-music-player" "music-player" (read-file-name "Open music: " (or music-file eaf-music-default-file)))) (add-to-list 'eaf-app-extensions-alist '("music-player" . eaf-music-extension-list)) (add-to-list 'eaf-app-binding-alist '("music-player" . eaf-music-player-keybinding)) (setq eaf-music-player-module-path (concat (file-name-directory load-file-name) "buffer.py")) (add-to-list 'eaf-app-module-path-alist '("music-player" . eaf-music-player-module-path)) (provide 'eaf-music-player) ;;; eaf-music-player.el ends here