Add new tones, different tone frequences between K2 and K3 for nicer tones on K3 (#35)

* Add new tones, different tone frequences between K2 and K3 for nicer tones on K3

* Update changelog
This commit is contained in:
timklge 2025-03-12 20:45:45 +01:00 committed by GitHub
parent 1e5a1b00a1
commit 8e0552ca8d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 63 additions and 11 deletions

View File

@ -71,9 +71,7 @@ tasks.register("generateManifest") {
"latestVersionCode" to android.defaultConfig.versionCode,
"developer" to "timklge",
"description" to "Shows in-ride alerts after a given time interval, distance or HR / power / speed / cadence out of range",
"releaseNotes" to "* Enlarge trigger select\n" +
"* Increase tone frequency\n" +
"* Optimize build\n" +
"releaseNotes" to "* Add additional beep patterns for Karoo 3\n" +
"* Add touchable back button",
)

View File

@ -10,6 +10,7 @@ import de.timklge.karooreminder.screens.preferencesKey
import io.hammerhead.karooext.KarooSystemService
import io.hammerhead.karooext.extension.KarooExtension
import io.hammerhead.karooext.models.DataType
import io.hammerhead.karooext.models.HardwareType
import io.hammerhead.karooext.models.InRideAlert
import io.hammerhead.karooext.models.PlayBeepPattern
import io.hammerhead.karooext.models.StreamState
@ -122,7 +123,8 @@ class KarooReminderExtension : KarooExtension("karoo-reminder", BuildConfig.VERS
applicationContext.sendBroadcast(intent)
if (displayedReminder.beepPattern != ReminderBeepPattern.NO_TONES) {
karooSystem.dispatch(PlayBeepPattern(displayedReminder.beepPattern.tones))
val tones = if (karooSystem.hardwareType == HardwareType.K2) displayedReminder.beepPattern.tonesKaroo2 else displayedReminder.beepPattern.tonesKaroo3
karooSystem.dispatch(PlayBeepPattern(tones))
mediaPlayer?.start()
}
karooSystem.dispatch(displayedReminder.alert)

View File

@ -63,6 +63,7 @@ import de.timklge.karooreminder.R
import de.timklge.karooreminder.ReminderTrigger
import de.timklge.karooreminder.streamUserProfile
import io.hammerhead.karooext.KarooSystemService
import io.hammerhead.karooext.models.HardwareType
import io.hammerhead.karooext.models.PlayBeepPattern
import io.hammerhead.karooext.models.UserProfile
@ -326,7 +327,7 @@ fun DetailScreen(isCreating: Boolean, reminder: Reminder, onSubmit: (updatedRemi
.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp)) {
ReminderBeepPattern.entries.forEach { pattern ->
val tones = pattern.tones
val tones = if (karooSystem.hardwareType == HardwareType.K2) pattern.tonesKaroo2 else pattern.tonesKaroo3
Row(modifier = Modifier
.fillMaxWidth()

View File

@ -11,10 +11,14 @@ import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
@Serializable
enum class ReminderBeepPattern(val displayName: String, val tones: List<PlayBeepPattern.Tone>) {
NO_TONES("No tones", emptyList()),
THREE_TONES_UP("Three tones up", listOf(PlayBeepPattern.Tone(4_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(6_000, 500))),
THREE_TONES_DOWN("Three tones down", listOf(PlayBeepPattern.Tone(6_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(4_000, 500))),
enum class ReminderBeepPattern(val displayName: String, val tonesKaroo2: List<PlayBeepPattern.Tone>, val tonesKaroo3: List<PlayBeepPattern.Tone>) {
NO_TONES("No tones", emptyList(), emptyList()),
THREE_TONES_UP("Three tones up",
listOf(PlayBeepPattern.Tone(4_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(6_000, 500)),
listOf(PlayBeepPattern.Tone(2_000, 250), PlayBeepPattern.Tone(2_500, 250), PlayBeepPattern.Tone(3_000, 250))),
THREE_TONES_DOWN("Three tones down",
listOf(PlayBeepPattern.Tone(6_000, 500), PlayBeepPattern.Tone(5_000, 500), PlayBeepPattern.Tone(4_000, 500)),
listOf(PlayBeepPattern.Tone(3_000, 250), PlayBeepPattern.Tone(2_500, 250), PlayBeepPattern.Tone(2_000, 250))),
DOUBLE_HIGH("Double high", listOf(
PlayBeepPattern.Tone(4_000, 500),
PlayBeepPattern.Tone(0, 200),
@ -22,7 +26,16 @@ enum class ReminderBeepPattern(val displayName: String, val tones: List<PlayBeep
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(5_000, 500),
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(4_000, 500))
PlayBeepPattern.Tone(4_000, 500)),
listOf(
PlayBeepPattern.Tone(2_000, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_500, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_500, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_000, 250)
)
),
DOUBLE_LOW("Double low", listOf(
PlayBeepPattern.Tone(5_000, 500),
@ -31,8 +44,46 @@ enum class ReminderBeepPattern(val displayName: String, val tones: List<PlayBeep
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(4_000, 500),
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(5_000, 500))
PlayBeepPattern.Tone(5_000, 500)),
listOf(
PlayBeepPattern.Tone(2_500, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_000, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_000, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_500, 250)
)
),
LONG_SHORT_SHORT("Long short short", listOf(
PlayBeepPattern.Tone(4_000, 1_000),
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(4_000, 500),
PlayBeepPattern.Tone(0, 200),
PlayBeepPattern.Tone(4_000, 500)),
listOf(
PlayBeepPattern.Tone(2_500, 500),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_500, 250),
PlayBeepPattern.Tone(0, 100),
PlayBeepPattern.Tone(2_500, 250)
)
),
FIVE_TONES_UP("Five tones up", listOf(
PlayBeepPattern.Tone(3_000, 300),
PlayBeepPattern.Tone(3_500, 300),
PlayBeepPattern.Tone(4_000, 300),
PlayBeepPattern.Tone(4_500, 300),
PlayBeepPattern.Tone(5_000, 300)),
listOf(
PlayBeepPattern.Tone(2_000, 200),
PlayBeepPattern.Tone(2_500, 200),
PlayBeepPattern.Tone(3_000, 200),
PlayBeepPattern.Tone(3_500, 200),
PlayBeepPattern.Tone(4_000, 200)
)
),
}
/**