Skip to content

Commit

Permalink
Adjust audio intensity for Karoo 3 (#287)
Browse files Browse the repository at this point in the history
  • Loading branch information
valterc authored Jan 25, 2025
1 parent cb515b0 commit c992977
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
25 changes: 20 additions & 5 deletions app/src/main/java/com/valterc/ki2/karoo/audio/AudioIntensity.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,26 @@
package com.valterc.ki2.karoo.audio

enum class AudioIntensity(val frequencyMultiplier: Double, val durationMultiplier: Double) {
enum class AudioIntensity(
val frequencyMultiplierK2: Double, val durationMultiplierK2: Double,
val frequencyMultiplierK24: Double, val durationMultiplierK24: Double,
) {

Quiet(0.01, 0.7),
Low(0.1, 0.9),
Reduced(0.4, 0.9),
Normal(1.0, 1.0);
Quiet(
0.01, 0.7,
0.05, 0.3
),
Low(
0.1, 0.9,
0.1, 0.4
),
Reduced(
0.4, 0.9,
0.4, 0.4
),
Normal(
1.0, 1.0,
1.0, 0.5
);

companion object {
fun fromName(name: String): AudioIntensity {
Expand Down
11 changes: 9 additions & 2 deletions app/src/main/java/com/valterc/ki2/karoo/audio/AudioManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.valterc.ki2.karoo.audio
import com.valterc.ki2.data.message.AudioAlertMessage
import com.valterc.ki2.data.preferences.PreferencesView
import com.valterc.ki2.karoo.Ki2ExtensionContext
import io.hammerhead.karooext.models.HardwareType
import io.hammerhead.karooext.models.PlayBeepPattern
import timber.log.Timber
import java.util.function.Consumer
Expand Down Expand Up @@ -51,10 +52,16 @@ class AudioManager(private val context: Ki2ExtensionContext) {
}

private val Int.f: Int
get() = times(intensity.frequencyMultiplier).toInt()
get() = when (context.karooSystem.hardwareType) {
HardwareType.K2 -> times(intensity.frequencyMultiplierK2).toInt()
else -> times(intensity.frequencyMultiplierK24).toInt()
}

private val Int.d: Int
get() = max(times(intensity.durationMultiplier).toInt(), 50)
get() = when (context.karooSystem.hardwareType) {
HardwareType.K2 -> max(times(intensity.durationMultiplierK2).toInt(), 50)
else -> max(times(intensity.durationMultiplierK24).toInt(), 50)
}

fun playSingleBeep() {
context.karooSystem.dispatch(
Expand Down

0 comments on commit c992977

Please sign in to comment.