feat(eq): add per-device equalizer with 4-level preset resolution

Introduce multi-device EQ support allowing each audio output device
(built-in speaker, wired, USB, individual Bluetooth by MAC) to have
its own equalizer preset, combined with existing per-station presets
for a full station×device matrix.

- Add DispositivoAudio model and ServicioDispositivoAudio interface
- Add Android platform channel (AudioDeviceCallback) for device detection
- Add iOS AudioDevicesPlugin (AVAudioSession route tracking)
- Extend ServicioEcualizador with device and matrix persistence keys
- Implement 4-level resolution: matrix > station > device > global
- Add advanced EQ settings section with feature toggle (off by default)
- Extend export/import to v3 with backward compatibility
- 184 tests passing, zero analyzer issues
This commit is contained in:
2026-06-27 11:33:53 +02:00
parent 8f42e67b48
commit 4632d53eb8
36 changed files with 2850 additions and 64 deletions
+22
View File
@@ -1192,4 +1192,26 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get streamUrlHint => 'https://stream.example.com:8000/radio';
@override
String get advancedEqSectionTitle => 'Opciones avanzadas de ecualización';
@override
String get advancedEqEnableToggle => 'Activar EQ por dispositivo';
@override
String get advancedEqEnableToggleSubtitle =>
'Aplica automáticamente un preset de EQ distinto al cambiar la salida de audio.';
@override
String get advancedEqKnownDevicesTitle => 'Dispositivos de audio conocidos';
@override
String get advancedEqKnownDevicesEmpty =>
'No hay dispositivos registrados. Conectá uno para empezar.';
@override
String advancedEqDevicePresetLabel(Object presetName) {
return 'Preset: $presetName';
}
}