asteroid/template/partial
Glenn Thompson e712009d79 Implement DJ Console Phase 1 — dual-deck library mixing
New files:
- dj-session.lisp: DJ session state, deck management, crossfader
  (constant-power curve), auto-playlist pause/resume, ICY metadata
  auto-detect, library search, watchdog timer
- parenscript/dj-console.lisp: UI polling (500ms), deck controls,
  crossfader, library search with load-to-deck, session management
- template/dj-console.ctml: Dark hacker-themed dual-deck interface
  with progress bars, transport controls, crossfader slider, metadata
  override, and library search table

Modified files:
- asteroid.lisp: 14 DJ API endpoints (session, deck, crossfader,
  library search), define-page dj-console, dj-console.js serving
- asteroid.asd: Add dj-session and dj-console components
- cl-streamer/harmony-backend.lisp: Export update-all-mounts-metadata,
  volume-ramp, pipeline-harmony-server for DJ deck control
- navbar-admin.ctml: DJ Console link (role-gated to :dj/:admin)

API endpoints all require :dj role. Session lifecycle:
  GO LIVE -> pause auto-playlist -> mix -> END SESSION -> resume

External audio input stubbed for Phase 2.
2026-03-05 21:22:09 +03:00
..
navbar-admin.ctml Implement DJ Console Phase 1 — dual-deck library mixing 2026-03-05 21:22:09 +03:00
navbar.ctml feat: allows for navbar menu exclution with exclude list 2026-01-21 17:32:41 -05:00
now-playing.ctml feat: frontpage now playing default fill 2026-03-02 17:51:26 -05:00
recently-played.ctml feat: Add recently-played.ctml partial template 2025-11-20 17:05:35 -05:00