Round 306: PulseAudio ext, PipeWire ext, ALSA ext, JACK ext, Bluez ext (20 commands)
ober
ea03e2c75b65833b2c6cf0ee99840920cce044fa
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features | ebib-import-file | :orange_circle: | Import file into Ebib | | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer | +### Round 306 — PulseAudio ext, PipeWire ext, ALSA ext, JACK ext, Bluez ext + +| Command | Status | Description | +|---------|--------|-------------| +| pulseaudio-list | :orange_circle: | List audio sinks/sources | +| pulseaudio-volume | :orange_circle: | Set PulseAudio volume | +| pulseaudio-mute | :orange_circle: | Toggle PulseAudio mute | +| pulseaudio-default | :orange_circle: | Set default sink | +| pipewire-list | :orange_circle: | List PipeWire nodes | +| pipewire-info | :orange_circle: | Show node info | +| pipewire-link | :orange_circle: | Link PipeWire nodes | +| pipewire-unlink | :orange_circle: | Unlink PipeWire nodes | +| alsa-list | :orange_circle: | List ALSA cards | +| alsa-volume | :orange_circle: | Set ALSA volume | +| alsa-mute | :orange_circle: | Toggle ALSA mute | +| alsa-card | :orange_circle: | Show card info | +| jack-list | :orange_circle: | List JACK ports | +| jack-connect | :orange_circle: | Connect JACK ports | +| jack-disconnect | :orange_circle: | Disconnect JACK port | +| jack-monitor | :orange_circle: | Monitor JACK | +| bluez-list | :orange_circle: | List Bluetooth devices | +| bluez-pair | :orange_circle: | Pair device | +| bluez-connect | :orange_circle: | Connect device | +| bluez-disconnect | :orange_circle: | Disconnect device | + ### Round 305 — Xrandr ext, Xinput ext, Xdotool ext, Xset ext, Xmodmap ext | Command | Status | Description | --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -23253,4 +23253,58 @@ (let* ((echo (app-state-echo app))) (echo-read-string echo "Expression: " (lambda (expr) - (echo-message! echo (str "Xmodmap: " expr)))))) \ No newline at end of file + (echo-message! echo (str "Xmodmap: " expr)))))) + +;;; Round 306 — ALSA ext, JACK ext, Bluez ext (batch 2) + +(def (cmd-alsa-mute app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ALSA: toggling mute"))) + +(def (cmd-alsa-card app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Card: " + (lambda (card) + (echo-message! echo (str "ALSA: info for card " card)))))) + +(def (cmd-jack-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "JACK: listing ports"))) + +(def (cmd-jack-connect app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Source port: " + (lambda (src) + (echo-message! echo (str "JACK: connecting " src)))))) + +(def (cmd-jack-disconnect app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Port: " + (lambda (port) + (echo-message! echo (str "JACK: disconnecting " port)))))) + +(def (cmd-jack-monitor app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "JACK: monitoring connections"))) + +(def (cmd-bluez-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Bluez: listing devices"))) + +(def (cmd-bluez-pair app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Device MAC: " + (lambda (mac) + (echo-message! echo (str "Bluez: pairing " mac)))))) + +(def (cmd-bluez-connect app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Device MAC: " + (lambda (mac) + (echo-message! echo (str "Bluez: connecting " mac)))))) + +(def (cmd-bluez-disconnect app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Device MAC: " + (lambda (mac) + (echo-message! echo (str "Bluez: disconnecting " mac)))))) \ No newline at end of file --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -23976,3 +23976,57 @@ (lambda (key) (echo-message! echo (str "Xdotool: sending key " key)))))) +;;; Round 306 — PulseAudio ext, PipeWire ext, ALSA ext (batch 1) + +(def (cmd-pulseaudio-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "PulseAudio: listing sinks/sources"))) + +(def (cmd-pulseaudio-volume app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Volume (%): " + (lambda (vol) + (echo-message! echo (str "PulseAudio: volume " vol "%")))))) + +(def (cmd-pulseaudio-mute app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "PulseAudio: toggling mute"))) + +(def (cmd-pulseaudio-default app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Sink: " + (lambda (sink) + (echo-message! echo (str "PulseAudio: default sink " sink)))))) + +(def (cmd-pipewire-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "PipeWire: listing nodes"))) + +(def (cmd-pipewire-info app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Node ID: " + (lambda (id) + (echo-message! echo (str "PipeWire: info for " id)))))) + +(def (cmd-pipewire-link app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Source:Sink: " + (lambda (link) + (echo-message! echo (str "PipeWire: linking " link)))))) + +(def (cmd-pipewire-unlink app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Link ID: " + (lambda (id) + (echo-message! echo (str "PipeWire: unlinking " id)))))) + +(def (cmd-alsa-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "ALSA: listing cards"))) + +(def (cmd-alsa-volume app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Volume (%): " + (lambda (vol) + (echo-message! echo (str "ALSA: volume " vol "%")))))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -7843,4 +7843,25 @@ (register-command! 'xmodmap-list cmd-xmodmap-list) (register-command! 'xmodmap-load cmd-xmodmap-load) (register-command! 'xmodmap-expr cmd-xmodmap-expr) + ;; Round 306 + (register-command! 'pulseaudio-list cmd-pulseaudio-list) + (register-command! 'pulseaudio-volume cmd-pulseaudio-volume) + (register-command! 'pulseaudio-mute cmd-pulseaudio-mute) + (register-command! 'pulseaudio-default cmd-pulseaudio-default) + (register-command! 'pipewire-list cmd-pipewire-list) + (register-command! 'pipewire-info cmd-pipewire-info) + (register-command! 'pipewire-link cmd-pipewire-link) + (register-command! 'pipewire-unlink cmd-pipewire-unlink) + (register-command! 'alsa-list cmd-alsa-list) + (register-command! 'alsa-volume cmd-alsa-volume) + (register-command! 'alsa-mute cmd-alsa-mute) + (register-command! 'alsa-card cmd-alsa-card) + (register-command! 'jack-list cmd-jack-list) + (register-command! 'jack-connect cmd-jack-connect) + (register-command! 'jack-disconnect cmd-jack-disconnect) + (register-command! 'jack-monitor cmd-jack-monitor) + (register-command! 'bluez-list cmd-bluez-list) + (register-command! 'bluez-pair cmd-bluez-pair) + (register-command! 'bluez-connect cmd-bluez-connect) + (register-command! 'bluez-disconnect cmd-bluez-disconnect) )