Coverage Summary for Class: EditClickTrackState (com.vsevolodganin.clicktrack.edit)
Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
EditClickTrackState |
0%
(0/2)
|
0%
(0/2)
|
0%
(0/8)
|
0%
(0/140)
|
EditClickTrackState$Companion |
0%
(0/1)
|
|
0%
(0/1)
|
0%
(0/2)
|
Total |
0%
(0/3)
|
0%
(0/2)
|
0%
(0/9)
|
0%
(0/142)
|
package com.vsevolodganin.clicktrack.edit
import com.benasher44.uuid.uuid4
import com.vsevolodganin.clicktrack.model.BeatsPerMinuteOffset
import com.vsevolodganin.clicktrack.model.ClickTrackId
import com.vsevolodganin.clicktrack.model.CueDuration
import com.vsevolodganin.clicktrack.model.NotePattern
import com.vsevolodganin.clicktrack.model.TimeSignature
import kotlinx.serialization.Serializable
@Serializable
data class EditClickTrackState(
val id: ClickTrackId.Database,
val name: String,
val loop: Boolean,
val tempoOffset: BeatsPerMinuteOffset,
val cues: List<EditCueState>,
val showForwardButton: Boolean,
)
@Serializable
data class EditCueState(
val id: String = uuid4().toString(),
val displayPosition: String,
val name: String,
val bpm: Int,
val timeSignature: TimeSignature,
val activeDurationType: CueDuration.Type,
val beats: CueDuration.Beats,
val measures: CueDuration.Measures,
val time: CueDuration.Time,
val pattern: NotePattern,
val errors: Set<Error>,
) {
enum class Error {
BPM,
}
val duration: CueDuration
get() = when (activeDurationType) {
CueDuration.Type.BEATS -> beats
CueDuration.Type.MEASURES -> measures
CueDuration.Type.TIME -> time
}
}