// SPDX-FileCopyrightText: 2026 Reactorcoremeltdown
// SPDX-License-Identifier: GPL-3.0-or-later

package space.rcmd.android.sizzle.audio

/**
 * A small, immutable snapshot of "where playback is" that the audio thread
 * publishes and the UI reads to draw the playhead. Kept as a plain value class so
 * copying it across threads is cheap and lock-free.
 */
data class TransportState(
    val isPlaying: Boolean = false,
    /** Absolute line index within the currently-playing pattern. */
    val currentLine: Int = 0,
    /** Beat index within the arrangement (0 until the canvas width in beats). */
    val currentBeat: Int = 0,
)
