commit b24cd761813fa75d5bacc75eabbc6d7b0265dbf3 from: Omar Polo date: Mon Dec 28 10:46:06 2020 UTC small adjustment commit - f05c8ffa324c378d2cc0cf0e5f61b1a6b50c7fb6 commit + b24cd761813fa75d5bacc75eabbc6d7b0265dbf3 blob - a90c9547aa53e154e102a097cce038f4e284673b blob + ea5413e6db6edb19309107661d011aac93e60913 --- sndio.el +++ sndio.el @@ -5,7 +5,7 @@ ;; Author: Omar Polo ;; Version: 1.0 ;; Keywords: multimedia -;; URL: https://git.omarpolo.com/sndioctl.el +;; URL: https://git.omarpolo.com/sndio.el ;;; Commentary: @@ -14,42 +14,43 @@ ;;; Code: -(require 'cl-lib) +(eval-when-compile (require 'subr-x)) -(defvar sndioctl-cmd "sndioctl" +(defvar sndio-sndioctl-cmd "sndioctl" "Path to the sndioctl executable.") (defvar sndio-step 0.02 "Step for `sndio-increase' and `sndio-decrease'.") +(defvar sndio-mode-map + (let ((m (make-sparse-keymap))) + (define-key m (kbd "n") #'forward-line) + (define-key m (kbd "p") #'previous-line) + (define-key m (kbd "i") #'sndio-increase) + (define-key m (kbd "d") #'sndio-decrease) + (define-key m (kbd "m") #'sndio-mute) + (define-key m (kbd "t") #'sndio-toggle) + (define-key m (kbd "g") #'sndio-update) + m) + "Keymap for sndio.") + (define-derived-mode sndio-mode special-mode "sndio" "Major mode for sndio interaction." - - (define-key sndio-mode-map (kbd "n") #'forward-line) - (define-key sndio-mode-map (kbd "p") #'previous-line) - (define-key sndio-mode-map (kbd "i") #'sndio-increase) - (define-key sndio-mode-map (kbd "d") #'sndio-decrease) - (define-key sndio-mode-map (kbd "m") #'sndio-mute) - (define-key sndio-mode-map (kbd "t") #'sndio-toggle) - (define-key sndio-mode-map (kbd "g") #'sndio-update) - (buffer-disable-undo) - (sndio-update)) (defun sndio-update () "Update the current sndio buffer." (interactive) (with-current-buffer "*sndio*" - (save-excursion - (let ((inhibit-read-only t)) - (erase-buffer) - (process-file sndioctl-cmd nil (current-buffer) nil))))) + (let ((inhibit-read-only t)) + (erase-buffer) + (process-file sndio-sndioctl-cmd nil (current-buffer) nil)))) (defun sndio--run (&rest args) - "Run `sndioctl-cmd' with ARGS yielding its output." + "Run `sndio-sndioctl-cmd' with ARGS yielding its output." (with-temp-buffer - (when (zerop (apply #'process-file sndioctl-cmd nil t nil args)) + (when (zerop (apply #'process-file sndio-sndioctl-cmd nil t nil args)) (buffer-string)))) (defun sndio--current-io () @@ -105,4 +106,4 @@ (sndio-mode)) (provide 'sndio) -;;; sndio.el ends here. +;;; sndio.el ends here