mirror of
https://github.com/antebudimir/tempus.git
synced 2025-12-31 17:43:32 +00:00
47 lines
No EOL
1.2 KiB
Kotlin
47 lines
No EOL
1.2 KiB
Kotlin
package com.cappielloantonio.tempo.service
|
|
|
|
import android.media.audiofx.Equalizer
|
|
|
|
class EqualizerManager {
|
|
|
|
private var equalizer: Equalizer? = null
|
|
|
|
fun attachToSession(audioSessionId: Int): Boolean {
|
|
release()
|
|
if (audioSessionId != 0 && audioSessionId != -1) {
|
|
try {
|
|
equalizer = Equalizer(0, audioSessionId).apply {
|
|
enabled = true
|
|
}
|
|
return true
|
|
} catch (e: Exception) {
|
|
// Some devices may not support Equalizer or audio session may be invalid
|
|
equalizer = null
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
fun setBandLevel(band: Short, level: Short) {
|
|
equalizer?.setBandLevel(band, level)
|
|
}
|
|
|
|
fun getNumberOfBands(): Short = equalizer?.numberOfBands ?: 0
|
|
|
|
fun getBandLevelRange(): ShortArray? = equalizer?.bandLevelRange
|
|
|
|
fun getCenterFreq(band: Short): Int? =
|
|
equalizer?.getCenterFreq(band)?.div(1000)
|
|
|
|
fun getBandLevel(band: Short): Short? =
|
|
equalizer?.getBandLevel(band)
|
|
|
|
fun setEnabled(enabled: Boolean) {
|
|
equalizer?.enabled = enabled
|
|
}
|
|
|
|
fun release() {
|
|
equalizer?.release()
|
|
equalizer = null
|
|
}
|
|
} |