feat(eq): настоящий эквалайзер + улучшайзеры звука (audiofx)
Раньше пресет эквалайзера в настройках был косметикой (лежал в DataStore, к звуку не подключён). Теперь — реальные системные эффекты на фикс. аудиосессии плеера: - AudioEffectsController: графический Equalizer (полосы устройства), BassBoost, Virtualizer (объём), LoudnessEnhancer (громкость тихих, до +12 дБ). Привязка к generateAudioSessionId() в PlayerController, переживает смену станций. Применение в реальном времени, сохранение в DataStore (commit на отпускании слайдера). - Отдельный экран EqualizerScreen (Настройки → ЗВУК → Эквалайзер): тумблер, системные пресеты + «Свой», слайдеры полос (±дБ), bass/virtualizer/loudness. - Эффекты best-effort: при отсутствии поддержки блок недоступен (null), UI скрывает. - Убран фейковый чип-пресет Flat/Rock/Pop/Jazz/Bass.
This commit is contained in:
@@ -26,4 +26,20 @@ interface SettingsRepository {
|
||||
// Цветовая тема приложения (id ThemePalette, напр. "forest"). По умолчанию "forest".
|
||||
fun getThemePalette(): Flow<String>
|
||||
suspend fun setThemePalette(id: String)
|
||||
|
||||
// ── Эквалайзер и улучшайзеры звука (android.media.audiofx) ──
|
||||
fun getEqEnabled(): Flow<Boolean>
|
||||
suspend fun setEqEnabled(enabled: Boolean)
|
||||
// Индекс системного пресета эквалайзера; -1 = свой (ручные полосы).
|
||||
fun getEqPreset(): Flow<Int>
|
||||
suspend fun setEqPreset(index: Int)
|
||||
// Уровни полос в миллибелах через запятую (под текущее число полос устройства).
|
||||
fun getEqBands(): Flow<String>
|
||||
suspend fun setEqBands(csv: String)
|
||||
fun getEqBass(): Flow<Int> // 0..100 %
|
||||
suspend fun setEqBass(value: Int)
|
||||
fun getEqVirtualizer(): Flow<Int> // 0..100 %
|
||||
suspend fun setEqVirtualizer(value: Int)
|
||||
fun getEqLoudness(): Flow<Int> // 0..100 % → 0..+12 дБ
|
||||
suspend fun setEqLoudness(value: Int)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user