Some checks failed
Flutter CI/CD — PluriWave / Test + Build (push) Has been cancelled
- MainActivity: extiende AudioServiceActivity (fix pantalla en blanco) - ServicioAudio: AndroidEqualizer en AudioPipeline, aplicarPreset(), setBanda() - PresetEcualizador: modelo independiente (Flat/Rock/Pop/BassBoost/Jazz/Voz) - EcualizadorWidget: 5 sliders verticales + PresetsEcualizadorWidget - TarjetaEmisora: botón favorito visible en grid y lista (toggle con SnackBar) - EstadoRadio: emisoras custom (CRUD), export/import JSON v1, presets por emisora - PantallaAjustes: ecualizador interactivo, form añadir emisora, backup export/import - pubspec: +file_picker ^8.1.7, +uuid ^4.5.1
30 lines
1.5 KiB
Dart
30 lines
1.5 KiB
Dart
/// Modelo de preset de ecualizador.
|
|
/// 5 bandas: 60Hz, 250Hz, 1kHz, 4kHz, 16kHz
|
|
class PresetEcualizador {
|
|
final String nombre;
|
|
final List<double> bandas; // 5 valores entre -12.0 y +12.0 dB
|
|
|
|
const PresetEcualizador({required this.nombre, required this.bandas})
|
|
: assert(bandas.length == 5);
|
|
|
|
static final flat = PresetEcualizador(nombre: 'Flat', bandas: [0.0, 0.0, 0.0, 0.0, 0.0]);
|
|
static final rock = PresetEcualizador(nombre: 'Rock', bandas: [2.0, 1.0, -1.0, 2.0, 3.0]);
|
|
static final pop = PresetEcualizador(nombre: 'Pop', bandas: [1.0, 1.5, 0.5, 1.0, 1.5]);
|
|
static final bassBoost = PresetEcualizador(nombre: 'Bass Boost', bandas: [5.0, 3.0, -1.0, 0.5, 0.0]);
|
|
static final jazz = PresetEcualizador(nombre: 'Jazz', bandas: [3.0, -1.0, -1.5, 2.0, 4.0]);
|
|
static final voz = PresetEcualizador(nombre: 'Voz', bandas: [-2.0, -1.0, 2.0, 3.0, 1.0]);
|
|
|
|
static final presets = [flat, rock, pop, bassBoost, jazz, voz];
|
|
|
|
factory PresetEcualizador.desdeJson(Map<String, dynamic> json) {
|
|
final raw = (json['bandas'] as List?)?.map((e) => (e as num).toDouble()).toList() ?? <double>[];
|
|
final bandas = List<double>.generate(5, (i) => i < raw.length ? raw[i] : 0.0);
|
|
return PresetEcualizador(nombre: json['nombre'] as String? ?? 'Personalizado', bandas: bandas);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() => {'nombre': nombre, 'bandas': bandas};
|
|
|
|
PresetEcualizador copyWithBandas(List<double> bandas) =>
|
|
PresetEcualizador(nombre: 'Personalizado', bandas: bandas);
|
|
}
|