package de.duffy.screencast

import androidx.lifecycle.MutableLiveData

/** Gemeinsamer Zustand zwischen Dienst und Oberflaeche. */
object CastState {
    val running = MutableLiveData(false)
    val url = MutableLiveData("")
    val viewers = MutableLiveData(0)
    val resolution = MutableLiveData("")
    val error = MutableLiveData<String?>(null)

    /**
     * Mitschrift des Verbindungsaufbaus. Beim Direktweg zum Fernseher haengt
     * viel vom jeweiligen Geraet ab - hier steht dann schwarz auf weiss, an
     * welcher Stelle es geklemmt hat.
     */
    val log = MutableLiveData<List<String>>(emptyList())

    fun appendLog(line: String) {
        val current = log.value ?: emptyList()
        log.postValue((current + line).takeLast(40))
    }

    fun clearLog() = log.postValue(emptyList())
}
