61 lines
2.1 KiB
Kotlin
61 lines
2.1 KiB
Kotlin
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.0–1.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
|
||
)
|