Compare commits

..

2 commits

4 changed files with 8 additions and 166 deletions

View file

@ -68,17 +68,6 @@ object ScreenSolfa : Screen {
var isScanning by remember { mutableStateOf(false) } var isScanning by remember { mutableStateOf(false) }
var qrCodeResult by remember { mutableStateOf("Aucun code scanné") } var qrCodeResult by remember { mutableStateOf("Aucun code scanné") }
/* if (isScanning) {
ScannerScreen(
onScanComplete = { result ->
qrCodeResult = result
isScanning = false
},
onClose = {
isScanning = false
}
)
} else {*/
MainScreenWithDrawer( MainScreenWithDrawer(
solfaScreenModel, solfaScreenModel,
@ -165,17 +154,6 @@ object ScreenSolfa : Screen {
Text(nextLabel) Text(nextLabel)
} }
MGButton(onClick = { MGButton(onClick = {
/*println("Load btn clicked")
launchFilePicker(
mimeTypes = arrayOf("text/plain"),
onFileSelected = { path ->
if (path != null) {
println("fichier $path");
} else {
println("Pas de dichier")
}
}
)*/
solfaScreenModel.loadCustomFile() solfaScreenModel.loadCustomFile()
}) { }) {
val loadFile: String by sharedScreenModel.loadFile.collectAsState() val loadFile: String by sharedScreenModel.loadFile.collectAsState()

View file

@ -38,8 +38,6 @@ import mg.dot.feufaro.data.DrawerItem
import mg.dot.feufaro.data.getDrawerItems import mg.dot.feufaro.data.getDrawerItems
import mg.dot.feufaro.getPlatform import mg.dot.feufaro.getPlatform
import mg.dot.feufaro.midi.MediaPlayer import mg.dot.feufaro.midi.MediaPlayer
//import mg.dot.feufaro.midi.MidiPlayer
//import mg.dot.feufaro.midi.StopMidi
import mg.dot.feufaro.solfa.Solfa import mg.dot.feufaro.solfa.Solfa
import mg.dot.feufaro.viewmodel.SolfaScreenModel import mg.dot.feufaro.viewmodel.SolfaScreenModel
import java.io.File import java.io.File
@ -74,11 +72,7 @@ fun MainScreenWithDrawer(
//var isDragging by remember { mutableStateOf(false) }
//var isPlay by remember { mutableStateOf(false) }
//var isPos by remember { mutableStateOf(true) }
var isPlayMid by remember { mutableStateOf(false) } var isPlayMid by remember { mutableStateOf(false) }
//var currentPos by remember { mutableStateOf(0f) }
val isPlay by sharedScreenModel.isPlay.collectAsState() val isPlay by sharedScreenModel.isPlay.collectAsState()
val isPos by sharedScreenModel.isPos.collectAsState() val isPos by sharedScreenModel.isPos.collectAsState()
var isDragging = sharedScreenModel.isDragging var isDragging = sharedScreenModel.isDragging
@ -90,19 +84,9 @@ var refreshTrigeer by remember { mutableStateOf(0)}
val volumelevel by sharedScreenModel.volumeLevel.collectAsState() val volumelevel by sharedScreenModel.volumeLevel.collectAsState()
val player = sharedScreenModel.mediaPlayer val player = sharedScreenModel.mediaPlayer
/*val mediaPlayer = remember(refreshTrigeer) {
MediaPlayer(filename = midiFile, onFinished = {
isPos = true
isPlay = false
currentPos = 0f
// isPlayMid = true
println("fin de lecture du whawyd3.mid")
}).apply { setVolume(volumelevel) }
}*/
LaunchedEffect(isPlay, isPos) { LaunchedEffect(isPlay, isPos) {
if (isPlay && !isPos) { if (isPlay && !isPos) {
// while (isPlay && !isPos) {
while (true) { while (true) {
sharedScreenModel.updateProgress() sharedScreenModel.updateProgress()
delay(100) delay(100)
@ -110,20 +94,6 @@ LaunchedEffect(isPlay, isPos) {
} }
} }
/*LaunchedEffect(isPlay, isPos, mediaPlayer) {
if (isPlay && !isPos) {
val d = mediaPlayer.getDuration().toFloat()
if (d > 0) duration = d
while (isPlay && !isPos) {
if(!isDragging) {
val p = mediaPlayer.getCurrentPosition().toFloat()
if (p >= 0) currentPos = p
}
delay(100)
}
}
}*/
LaunchedEffect(isSearchActive) { LaunchedEffect(isSearchActive) {
if (isSearchActive) { if (isSearchActive) {
focusRequester.requestFocus() focusRequester.requestFocus()
@ -145,12 +115,7 @@ LaunchedEffect(isPlay, isPos) {
onScannerButtonClick() onScannerButtonClick()
}, },
onSongSelected = { newSong -> onSongSelected = { newSong ->
// mediaPlayer?.stop()
// isPos = true
// isPlay = false
// currentPos = 0f
sharedScreenModel.loadNewSong("whawyd3.mid") sharedScreenModel.loadNewSong("whawyd3.mid")
// refreshTrigeer++
} }
) )
}, content = { }, content = {
@ -174,15 +139,7 @@ LaunchedEffect(isPlay, isPos) {
}) { }) {
Icon(Icons.Filled.Menu, contentDescription = "Ouvrir Menu") Icon(Icons.Filled.Menu, contentDescription = "Ouvrir Menu")
} }
}, actions = {/* Text( }, actions = {
text = measure,
modifier = Modifier.weight(1f, fill = false),
fontSize = 20.sp,
maxLines = 2,
softWrap = false,
overflow = TextOverflow.Ellipsis
)
Spacer(Modifier.width(8.dp))*/
Text( Text(
text = songKey, text = songKey,
fontSize = 25.sp, fontSize = 25.sp,
@ -250,11 +207,6 @@ LaunchedEffect(isPlay, isPos) {
FloatingActionButton( FloatingActionButton(
onClick = { onClick = {
isPlayMid = !isPlayMid isPlayMid = !isPlayMid
// if(isPlayMid) sharedScreenModel.stopMidi()
// if(mediaPlayer.getCurrentPosition() != 0L) {
// mediaPlayer?.seekTo(0)
// mediaPlayer?.stop()
// }
}, modifier = Modifier.alpha(0.45f) }, modifier = Modifier.alpha(0.45f)
) { ) {
Icon( Icon(
@ -294,45 +246,8 @@ LaunchedEffect(isPlay, isPos) {
volume = volumelevel, volume = volumelevel,
duration = duration, duration = duration,
onPlayPauseClick = { onPlayPauseClick = {
sharedScreenModel.togglePlayPause()/*if(isPlay){ sharedScreenModel.togglePlayPause()
mediaPlayer?.pause() onSeek = { newPos ->
isPlay = false
isPos = true
} else {
if(currentPos == 0f) {
mediaPlayer?.seekTo(0)
}
mediaPlayer?.play()
mediaPlayer?.setVolume(volumelevel)
isPlay = true
isPos = false*/
},
/* if(!isPlay) {
if (currentPos == 0f) mediaPlayer.seekTo(0)
mediaPlayer?.play()
isPlay = true
isPos = false
} else {
mediaPlayer?.stop()
isPlay = false
isPos = true
}*/
// println("je clique pause = ${sharedScreenModel.isPlay} play = ${sharedScreenModel.isPos}")
// if(isPos) {
// mediaPlayer.play()
// isPos = false
// } else {
// mediaPlayer.pause()
// isPos = true
// }
/*if (isPlayMid) {
// mediaPlayer.seekTo(0f.toLong())
mediaPlayer.play()
isPlayMid = false
}
}*/
onSeek = { newPos -> // currentPos = newPos
sharedScreenModel.setDragging(true) sharedScreenModel.setDragging(true)
sharedScreenModel.seekTo(newPos) sharedScreenModel.seekTo(newPos)
scope.launch { scope.launch {
@ -342,7 +257,7 @@ LaunchedEffect(isPlay, isPos) {
println("DrawerUI:335: mihetsika $newPos") println("DrawerUI:335: mihetsika $newPos")
}, },
mediaPlayer = player, mediaPlayer = player,
onVolumeChange = { newVolume -> // volumelevel = newVolume onVolumeChange = { newVolume ->
sharedScreenModel.setVolume(newVolume) sharedScreenModel.setVolume(newVolume)
println("Changement volume $newVolume -l $volumelevel") println("Changement volume $newVolume -l $volumelevel")
}, },
@ -350,29 +265,6 @@ LaunchedEffect(isPlay, isPos) {
} else { } else {
Text("Sélectionner un morceau") Text("Sélectionner un morceau")
} }
/*Row(
modifier = Modifier.align(Alignment.Center).padding(16.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp)
) {
Slider(
value = currentPos,
onValueChange = { newPos ->
currentPos = newPos
mediaPlayer?.seekTo(newPos.toLong())
},
valueRange = 0f..duration
)
}
Button(
onClick = {
isPos = !isPos
if(isPlay) mediaPlayer?.pause() else mediaPlayer?.play()
if(isPos) mediaPlayer?.pause() else mediaPlayer?.play()
}
) {
Text(if (isPos) "Pause" else "play Midi")
}*/
} }
} }
} }
@ -444,13 +336,6 @@ LaunchedEffect(isPlay, isPos) {
placeholder = { placeholder = {
Text("... ...") Text("... ...")
}, },
/*leadingIcon = {
Icon(
imageVector = Icons.Default.Search,
contentDescription = "Icône de recherche",
tint = MaterialTheme.colorScheme.primary
)
},*/
textStyle = MaterialTheme.typography.titleLarge.copy( textStyle = MaterialTheme.typography.titleLarge.copy(
fontSize = 17.sp, fontSize = 17.sp,
fontWeight = FontWeight.Bold, fontWeight = FontWeight.Bold,
@ -496,22 +381,3 @@ LaunchedEffect(isPlay, isPos) {
} }
}) })
} }
/*
var isPlay by mutableStateOf(false)
private set
fun playMidi() {
if(!isPlay) {
isPlay = true
MidiPlayer("whawyd3.mid") {
isPlay = false
}
}
}
fun stopMidi() {
if(isPlay) {
StopMidi()
isPlay = false
}
}*/

View file

@ -26,6 +26,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.AvTimer
import androidx.compose.material.icons.filled.Church import androidx.compose.material.icons.filled.Church
import androidx.compose.material.icons.filled.Clear import androidx.compose.material.icons.filled.Clear
import androidx.compose.material.icons.filled.ClearAll import androidx.compose.material.icons.filled.ClearAll
@ -339,7 +340,7 @@ fun MidiControlPanel(
onClick = { onClick = {
showBPMTools = !showBPMTools showBPMTools = !showBPMTools
}) { }) {
Icon(imageVector = Icons.Default.MusicNote, contentDescription = "Tempo") Icon(imageVector = Icons.Default.AvTimer, contentDescription = "Tempo")
} }
AnimatedVisibility(visible = showBPMTools){ AnimatedVisibility(visible = showBPMTools){
Box( Box(

View file

@ -1,4 +1,3 @@
// commonMain/kotlin/mg/dot/feufaro/viewmodel/SharedScreenModel.kt
import androidx.compose.runtime.State import androidx.compose.runtime.State
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
@ -133,7 +132,6 @@ class SharedScreenModel() : ScreenModel {
}) })
println("New media Player crée $newMidiFile") println("New media Player crée $newMidiFile")
} }
// val mediaPlayer =
fun togglePlayPause() { fun togglePlayPause() {
_mediaPlayer?.let { player -> _mediaPlayer?.let { player ->
@ -151,7 +149,6 @@ class SharedScreenModel() : ScreenModel {
} }
} }
println("128: Status de isPlay ${_isPlay.value} \nisPos ${_isPos.value} \ncurrentPos ${_currentPos.value} \n volume ${_volumeLevel.value}") println("128: Status de isPlay ${_isPlay.value} \nisPos ${_isPos.value} \ncurrentPos ${_currentPos.value} \n volume ${_volumeLevel.value}")
// _isPlay.value = !_isPlay.value
} }
} }
fun stopMidi() { fun stopMidi() {