diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-29 05:34:22 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-29 05:34:22 -0400 |
| commit | c1227a36471c2c3ab38ddfc2260923ad49240c7b (patch) | |
| tree | 45d4d7920821edf406345e57bdf69527c340a34d /tests/test-coverage-core--backend-registry.el | |
| parent | 54250d958f2829ff0f44a223a1481b6ec55a6d91 (diff) | |
| download | dotemacs-c1227a36471c2c3ab38ddfc2260923ad49240c7b.tar.gz dotemacs-c1227a36471c2c3ab38ddfc2260923ad49240c7b.zip | |
refactor: split video-audio-recording.el into layered modules
Break the 1025-line video-audio-recording.el into a thin public face plus two layered libraries, moving every function verbatim so behavior and public names are unchanged:
- video-audio-recording-devices.el — base layer: PulseAudio source and sink discovery, the pactl output parsers, device labeling and sort/status helpers for completing-read, and the lookup predicates. Pure string and shell-query helpers with no dependency on recording state, config, or the engine. This is the heavily-tested core.
- video-audio-recording-capture.el — engine: ffmpeg/wf-recorder command construction, the recording process lifecycle (sentinel, producer-first shutdown, exit polling), the modeline indicator, dependency checks, device acquisition and validation, and the start/stop entry points. Requires the devices layer.
video-audio-recording.el keeps configuration and the recording process-handle state, the device-diagnostic and device-test commands, the toggle commands, and the C-; r keymap, and requires the two layers. The engine reads and updates the config and process-handle variables, which the top module owns, through forward declarations, so no layer requires the top module back. No function call crosses from a layer up into the top module, so the split needs no forward-declared functions.
Every public name is preserved, so all 323 existing video-audio-recording tests pass unchanged through the require chain. The two new modules carry the load-graph and package headers and join the header-contract allowlist.
Claude-Session: https://claude.ai/code/session_014fyKMTTqLrZpL3rDF3dYc3
Diffstat (limited to 'tests/test-coverage-core--backend-registry.el')
0 files changed, 0 insertions, 0 deletions
