Fix! $ farany DSFin

This commit is contained in:
Hasinjato 2026-08-17 14:28:22 +03:00
parent ec9194ce14
commit b8b9eda836
3 changed files with 27 additions and 13 deletions

View file

@ -388,6 +388,7 @@ actual class FMediaPlayer actual constructor(
} else {
yield()
}
if (!isRunning || !isActive) break
currentTickPos = ev.tickAbsolute
lastEventNano = System.nanoTime()
@ -444,7 +445,7 @@ actual class FMediaPlayer actual constructor(
currentTickPos = gridIndex.toLong() * resolution
lastEventNano = System.nanoTime()
val initialOrPreviousBpm = if (gridIndex == 0 && userCustomTempo) {
val initialOrPreviousBpm = if (userCustomTempo) {
targetBpm
} else {
navigationSteps
@ -461,6 +462,9 @@ actual class FMediaPlayer actual constructor(
navigationSteps.forEach { step ->
if (step.gridIndex > gridIndex) {
step.alreadyDone = false
if (step.isFarany) {
step.faranyActive = false
}
}
}
applyVoiceStates()
@ -480,7 +484,10 @@ actual class FMediaPlayer actual constructor(
}
private fun resetNavigationFlags() {
navigationSteps.forEach { it.alreadyDone = false }
navigationSteps.forEach {
it.alreadyDone = false
it.faranyActive = false
}
}
private fun prepareNavigation(sharedScreenModel: SharedScreenModel) {
@ -605,10 +612,12 @@ actual class FMediaPlayer actual constructor(
// ── Farany ────────────────────────────────
finReg.containsMatchIn(mTrim) -> {
val hasDcAfter = metadataList.any { m ->
(m.gridIndex ?: 0) > ci && m.marker.any { mk -> dcR.containsMatchIn(mk) }
val hasDcOrDsAfter = metadataList.any { m ->
(m.gridIndex ?: 0) > ci && m.marker.any { mk ->
dcR.containsMatchIn(mk) || dsR.containsMatchIn(mk)
}
}
if (hasDcAfter) {
if (hasDcOrDsAfter) {
navigationSteps.add(
NavigationStep(
marker,
@ -770,9 +779,13 @@ actual class FMediaPlayer actual constructor(
step.isFarany -> {
println("C Farany ok $step")
if (pendingFin || step.faranyActive) {
println("Farany activé → STOP à grille $currentIndex")
isRunning = false
step.alreadyDone = true
isRunning = false
allNotesOff()
playJob?.cancel()
seekToGrid(0)
boundModel?.updateActiveIndexByIndex(0)
println("Farany activé → STOP à grille $currentIndex")
onFinished()
return@collect
} else {
@ -825,7 +838,7 @@ actual class FMediaPlayer actual constructor(
val interpolated = (currentTickPos + extraTicks) / resolution
val rawGrid = interpolated.toInt().coerceAtLeast(0)
//sharedScreenModel.updateActiveIndexByIndex(rawGrid)
if (interpolated.toInt() >= lastSentGrid) {
if (interpolated.toInt() != lastSentGrid) {
lastSentGrid = interpolated.toInt()
sharedScreenModel.updateActiveIndexByIndex(interpolated.toInt())
}

View file

@ -1,8 +1,8 @@
M0:|c:G|m:6/4|r:P.M|t:FF 7 Tsy hainay ny hangina|a:Ramarolahy Aina Nirina Jaona|h:
U0:zK:4 C444 C84 444444 C84 C444 C84 444444 C8${$}4 ${x7} 444444${x0} K4 444444 (444)84 444444 C84 444444 (444)84 444444 84${D.S}8
U0:zK:4C444C84444444C84C444C84444444C8${$}${Fiverenana}4444444444444444444444444444444444444444444${Farany}K4444444(444)84444444C84444444(444)8444444484${D.S.Fin}8
N1:s,mmfsls smsmfmrrd mrFmrsr #s,tmrdrtlss sm-3f#t,ls-4 ssrmfsls-4 s,m-3fls-ssfrdsmfmrd d4msmf--d d4mrdsf r4Fmrs--r trrrd#s,tls--
N2:#f,sddrmRm sdddttsss sFdddtt sF6r,f sdstdrRmdrmddt--t-- dmdtdrdsdt-- dmrrdlsddttss T7llTl T7ll d7ttdt sl3F3r,m,f
N3:#l,s5Fs ssmdrsffm dr7d4rdtt ssmfs--smfsmmr--f-- msmrmfsmmf-- msT'T'l'fmmsrsfm m4smsddrd m4sfmdd F4l'Fl'rrmr rF3rrdtdr
N4:#r,sd6 s7dd ddllFss sr6ss sdmsd-- dmsddls--s-- ddmslt d3s--dmmfrs7d, d7f4 d7ff r'7s4 r'4r3slt
Y1:Tsy hainay ny hangina/Ka tsy hankalaza ny Avo/Nameno fitahiana/Ka tsy mba namela ho lavo.${R=}Ka de_4ra ry Ray!_5/Sy saotra no\ atolotra\ Anao_5/ny fo_4tena fa_2ly loatra no entinay midera\ Anao./Ny sainay tsy ampy\ hahalala/Ny fatranny fitiavana_o/Ka raiso ry Tompo Malala/Ny fankasitrahana\ Anao (ry Ray).
Y1:Tsy hainay ny hangina/Ka tsy hankalaza ny Avo/Nameno fitahiana/Ka tsy mba namela ho lavo.${R=}Ka de_4ra ry Ray!_4/Sy saotra no\ atolotra\ Anao_4/ny fo_4tena fa_2ly loatra no entinay midera\ Anao./Ny sainay tsy ampy\ hahalala/Ny fatranny fitiavana_o/Ka raiso ry Tompo Malala/Ny fankasitrahana\ Anao (ry Ray).
Y2:Tsy hainay hadinoina/Lay fara-fitiavanao, Ray o!/Fa maty novonoina/Ny Zanakao hamonjy anay./

View file

@ -405,7 +405,7 @@ actual class FMediaPlayer actual constructor(
}
// Farany
finReg.containsMatchIn(mTrim) -> {
val hasDcAfter = metadataList.any { m ->
val hasDcOrDsAfter = metadataList.any { m ->
val after = (m.gridIndex ?: 0) > currentIndex
println(
@ -413,14 +413,15 @@ actual class FMediaPlayer actual constructor(
)
val hasMarker = m.marker.any { mk ->
dcRegex.matches(mk.trim())
dcRegex.containsMatchIn(mk) || dsRegex.containsMatchIn(mk)
}
println("after=$after, hasMarker=$hasMarker, result=${after && hasMarker}")
after && hasMarker
}
if (hasDcAfter) {
if (hasDcOrDsAfter) {
navigationSteps.add(
NavigationStep(
marker = marker,