Files
FreeTLab bccc5c48b8
Build & Deploy PluriWave / Análisis de código (push) Successful in 38s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m30s
docs(openspec): add SDD artifact trail for recent alarm and EQ changes
Persist the exploration, proposal, spec, design, tasks, and
verify/archive reports produced during the multi-device EQ,
alarm-countdown, and notification-visual-polish SDD cycles.
2026-07-04 12:42:11 +02:00

1.6 KiB

Spec: Multi-Device Equalizer

New Capability: audio-device-detection

Purpose

Platform channel bridge that enumerates current audio output devices and streams change events to Dart. Enables the rest of the system to react to device connect/disconnect without polling.

Requirements

Requirement: Device enumeration on demand

The system MUST expose a synchronous query that returns the list of currently connected audio output devices as a typed list of device IDs.

Scenario: enumerate at startup — Android
  • GIVEN the feature toggle is enabled
  • WHEN ServicioDispositivoAudio.dispositivosActuales() is called on Android
  • THEN it MUST return a list where each entry has a stable deviceId string
  • AND built-in speaker MUST appear as "builtin_speaker"
  • AND BT A2DP devices MUST appear as "bt_a2dp:<MAC>"
  • AND USB audio MUST appear as "usb_headset:<address>"
  • AND wired headset MUST appear as "wired_headset"
Scenario: enumerate at startup — iOS
  • GIVEN the feature toggle is enabled
  • WHEN ServicioDispositivoAudio.dispositivosActuales() is called on iOS
  • THEN it MUST return at least the active route output
  • AND the deviceId MUST be stable within the session using portType+uid
  • AND calling it again before a route change MUST return the same IDs
Scenario: enumerate when toggle is disabled
  • GIVEN the feature toggle is disabled
  • WHEN any method of ServicioDispositivoAudio is called
  • THEN it MUST return an empty list and an empty stream without errors

(See Engram observation #2186 for complete spec with all 27 requirement scenarios)