Files
GPS2Audio/app/src/main/kotlin/de/waypointaudio/data/TourAudioSettings.kt
T
2026-05-05 20:54:05 +02:00

61 lines
2.1 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package de.waypointaudio.data
/**
* Quelle der Begleitmusik für eine Tour.
*/
enum class MusicSourceType {
LOCAL_PLAYLIST,
STREAM_URL
}
/**
* Verhalten der Begleitmusik, wenn ein Wegpunkt-Audio abgespielt wird.
*/
enum class WaypointMusicBehavior {
/** Begleitmusik pausieren, danach fortsetzen. */
PAUSE_RESUME,
/** Begleitmusik ausblenden (Fade-out), Wegpunkt abspielen, danach einblenden (Fade-in). */
FADE_OUT_IN,
/** Begleitmusik auf duckVolume leise stellen, Wegpunkt parallel abspielen, danach wiederherstellen. */
DUCK_UNDERLAY,
/** Begleitmusik unveränderter Lautstärke weiterspielen, Wegpunkt parallel abspielen. */
CONTINUE_UNDERLAY
}
/**
* Ein einzelnes Element in der lokalen Playlist.
*/
data class PlaylistItem(
val uriString: String,
val displayName: String
)
/**
* Begleitmusik-Einstellungen für eine Tour.
*
* @param enabled Ob Begleitmusik für diese Tour aktiv ist.
* @param sourceType Quelle: lokale Playlist oder Stream-URL.
* @param localPlaylist Liste von Audiodateien (content:// URIs) aus dem lokalen Speicher.
* @param streamUrl Direkte HTTP/HTTPS-Stream-URL (z. B. Internetradio).
* @param behavior Verhalten wenn Wegpunkt-Audio abgespielt wird.
* @param fadeDurationMs Dauer des Fade-Effekts in Millisekunden.
* @param duckVolume Lautstärke (0.01.0) während des Duck-Modus.
* @param shuffle Playlist zufällig abspielen.
* @param autoStartAfterWaypoint Nach Wegpunkt-Audio Begleitmusik automatisch starten,
* auch wenn sie vorher nicht spielte.
*/
data class TourAudioSettings(
val enabled: Boolean = false,
val sourceType: MusicSourceType = MusicSourceType.LOCAL_PLAYLIST,
val localPlaylist: List<PlaylistItem> = emptyList(),
val streamUrl: String? = null,
val behavior: WaypointMusicBehavior = WaypointMusicBehavior.PAUSE_RESUME,
val fadeDurationMs: Long = 1500L,
val duckVolume: Float = 0.25f,
val shuffle: Boolean = false,
val autoStartAfterWaypoint: Boolean = false
)