FileRepository
11
README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
This is a Kotlin Multiplatform project targeting Android, Desktop.
|
||||||
|
|
||||||
|
* `/composeApp` is for code that will be shared across your Compose Multiplatform applications.
|
||||||
|
It contains several subfolders:
|
||||||
|
- `commonMain` is for code that’s common for all targets.
|
||||||
|
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name.
|
||||||
|
For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app,
|
||||||
|
`iosMain` would be the right folder for such calls.
|
||||||
|
|
||||||
|
|
||||||
|
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html)…
|
||||||
10
build.gradle.kts
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
plugins {
|
||||||
|
// this is necessary to avoid the plugins to be loaded multiple times
|
||||||
|
// in each subproject's classloader
|
||||||
|
alias(libs.plugins.androidApplication) apply false
|
||||||
|
alias(libs.plugins.androidLibrary) apply false
|
||||||
|
alias(libs.plugins.composeHotReload) apply false
|
||||||
|
alias(libs.plugins.composeMultiplatform) apply false
|
||||||
|
alias(libs.plugins.composeCompiler) apply false
|
||||||
|
alias(libs.plugins.kotlinMultiplatform) apply false
|
||||||
|
}
|
||||||
99
composeApp/build.gradle.kts
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||||||
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.kotlinMultiplatform)
|
||||||
|
alias(libs.plugins.androidApplication)
|
||||||
|
alias(libs.plugins.composeMultiplatform)
|
||||||
|
alias(libs.plugins.composeCompiler)
|
||||||
|
alias(libs.plugins.composeHotReload)
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
androidTarget {
|
||||||
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||||
|
compilerOptions {
|
||||||
|
jvmTarget.set(JvmTarget.JVM_11)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jvm("desktop")
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
val desktopMain by getting
|
||||||
|
|
||||||
|
androidMain.dependencies {
|
||||||
|
implementation(compose.preview)
|
||||||
|
implementation(libs.androidx.activity.compose)
|
||||||
|
implementation(libs.koin.android) // Koin Android-specific extensions
|
||||||
|
|
||||||
|
}
|
||||||
|
commonMain.dependencies {
|
||||||
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.foundation)
|
||||||
|
implementation(compose.material3)
|
||||||
|
implementation(compose.ui)
|
||||||
|
implementation(compose.components.resources)
|
||||||
|
implementation(compose.components.uiToolingPreview)
|
||||||
|
implementation(libs.androidx.lifecycle.viewmodel)
|
||||||
|
implementation(libs.androidx.lifecycle.runtimeCompose)
|
||||||
|
implementation(libs.koin.core) // Koin core for shared logic
|
||||||
|
implementation(libs.koin.compose) // Koin for Compose Multiplatform UI
|
||||||
|
implementation(libs.koin.core.viewmodel) // Koin for KMP ViewModels
|
||||||
|
|
||||||
|
}
|
||||||
|
commonTest.dependencies {
|
||||||
|
implementation(libs.kotlin.test)
|
||||||
|
}
|
||||||
|
desktopMain.dependencies {
|
||||||
|
implementation(compose.desktop.currentOs)
|
||||||
|
implementation(libs.kotlinx.coroutinesSwing)
|
||||||
|
}
|
||||||
|
//androidMain.dependsOn(androidAndJvmMain)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "mg.dot.feufaro"
|
||||||
|
compileSdk = libs.versions.android.compileSdk.get().toInt()
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
applicationId = "mg.dot.feufaro"
|
||||||
|
minSdk = libs.versions.android.minSdk.get().toInt()
|
||||||
|
targetSdk = libs.versions.android.targetSdk.get().toInt()
|
||||||
|
versionCode = 1
|
||||||
|
versionName = "1.0"
|
||||||
|
}
|
||||||
|
packaging {
|
||||||
|
resources {
|
||||||
|
excludes += "/META-INF/{AL2.0,LGPL2.1}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buildTypes {
|
||||||
|
getByName("release") {
|
||||||
|
isMinifyEnabled = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_11
|
||||||
|
targetCompatibility = JavaVersion.VERSION_11
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
debugImplementation(compose.uiTooling)
|
||||||
|
}
|
||||||
|
|
||||||
|
compose.desktop {
|
||||||
|
application {
|
||||||
|
mainClass = "mg.dot.feufaro.MainKt"
|
||||||
|
|
||||||
|
nativeDistributions {
|
||||||
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
||||||
|
packageName = "mg.dot.feufaro"
|
||||||
|
packageVersion = "1.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
22
composeApp/src/androidMain/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:allowBackup="true"
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="@string/app_name"
|
||||||
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
|
android:supportsRtl="true"
|
||||||
|
android:theme="@android:style/Theme.Material.Light.NoActionBar">
|
||||||
|
<activity
|
||||||
|
android:exported="true"
|
||||||
|
android:name=".MainActivity">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import android.app.Application
|
||||||
|
import org.koin.core.context.GlobalContext.startKoin
|
||||||
|
import mg.dot.feufaro.di.commonModule // Importez votre module commun
|
||||||
|
import org.koin.android.ext.koin.androidContext
|
||||||
|
import org.koin.android.ext.koin.androidLogger
|
||||||
|
import org.koin.core.logger.Level
|
||||||
|
import mg.dot.feufaro.di.androidModule
|
||||||
|
|
||||||
|
class AndroidApp: Application {
|
||||||
|
override fun onCreate() {
|
||||||
|
super.onCreate()
|
||||||
|
startKoin {
|
||||||
|
// Log Koin messages (INFO pour le développement, ERROR pour la production)
|
||||||
|
androidLogger(Level.INFO)
|
||||||
|
// Fournit le Context Android à Koin pour l'injection
|
||||||
|
androidContext(this@AndroidApp)
|
||||||
|
// Incluez votre module Koin commun (et d'autres modules Android spécifiques si vous en avez)
|
||||||
|
modules(commonModule, androidModule)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optionnel : Vous pouvez ajouter un log ou un petit test ici pour vérifier que Koin démarre bien
|
||||||
|
// val fileRepository = org.koin.core.context.GlobalContext.get().get<FileRepository>()
|
||||||
|
// println("Koin et FileRepository initialisés dans AndroidApp: $fileRepository")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import java.io.BufferedReader
|
||||||
|
import java.io.File
|
||||||
|
import java.io.IOException
|
||||||
|
import java.io.InputStreamReader
|
||||||
|
|
||||||
|
// This is just a regular class that implements the common 'FileRepository' interface.
|
||||||
|
// It is NOT an 'actual' declaration of 'FileRepository'.
|
||||||
|
class AndroidFileRepository(private val context: Context) : FileRepository { // IMPORTS AND IMPLEMENTS THE commonMain 'FileRepository' interface
|
||||||
|
override suspend fun readFileLines(filePath: String): List<String> = withContext(Dispatchers.IO) {
|
||||||
|
try {
|
||||||
|
when {
|
||||||
|
filePath.startsWith("assets://") -> {
|
||||||
|
readAssetFileLines(filePath)
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
File(filePath).readLines()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: IOException) {
|
||||||
|
throw IOException("Failed to read file or asset '$filePath'")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
override suspend fun readFileContent(filePath: String): String = withContext(Dispatchers.IO) { "" }
|
||||||
|
private fun readAssetFileLines(assetFileName: String): List<String> {
|
||||||
|
return context.assets.open(assetFileName).use { inputStream ->
|
||||||
|
BufferedReader(InputStreamReader(inputStream)).useLines { it.toList() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private fun readAssetFileContent(assetFileName: String): String {
|
||||||
|
|
||||||
|
return context.assets.open(assetFileName).use { inputStream ->
|
||||||
|
// BufferedReader(InputStreamReader(inputStream)) permet de lire le texte ligne par ligne.
|
||||||
|
BufferedReader(InputStreamReader(inputStream)).use { reader ->
|
||||||
|
reader.readText() // Lit tout le contenu en une seule chaîne.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.activity.ComponentActivity
|
||||||
|
import androidx.activity.compose.setContent
|
||||||
|
import androidx.activity.enableEdgeToEdge
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
|
||||||
|
class MainActivity : ComponentActivity() {
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
enableEdgeToEdge()
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
|
setContent {
|
||||||
|
App()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Preview
|
||||||
|
@Composable
|
||||||
|
fun AppAndroidPreview() {
|
||||||
|
App()
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
|
|
||||||
|
class AndroidPlatform : Platform {
|
||||||
|
override val name: String = "Android ${Build.VERSION.SDK_INT}"
|
||||||
|
}
|
||||||
|
|
||||||
|
actual fun getPlatform(): Platform = AndroidPlatform()
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
package mg.dot.feufaro.di
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import mg.dot.feufaro.AndroidFileRepository // Import the actual Android implementation
|
||||||
|
import org.koin.core.module.dsl.singleOf // Import for Koin DSL
|
||||||
|
import org.koin.core.module.dsl.bind // Import for Koin DSL
|
||||||
|
import org.koin.dsl.module
|
||||||
|
import org.koin.android.ext.koin.androidContext // Import for androidContext()
|
||||||
|
|
||||||
|
val androidModule = module {
|
||||||
|
// Koin will automatically provide the Android Context because you called androidContext() in AndroidApp.
|
||||||
|
// It then uses this Context to construct AndroidFileRepository.
|
||||||
|
singleOf(::AndroidFileRepository) { bind<FileRepository>() }
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
|
android:width="108dp"
|
||||||
|
android:height="108dp"
|
||||||
|
android:viewportWidth="108"
|
||||||
|
android:viewportHeight="108">
|
||||||
|
<path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:endX="85.84757"
|
||||||
|
android:endY="92.4963"
|
||||||
|
android:startX="42.9492"
|
||||||
|
android:startY="49.59793"
|
||||||
|
android:type="linear">
|
||||||
|
<item
|
||||||
|
android:color="#44000000"
|
||||||
|
android:offset="0.0" />
|
||||||
|
<item
|
||||||
|
android:color="#00000000"
|
||||||
|
android:offset="1.0" />
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:fillType="nonZero"
|
||||||
|
android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
|
||||||
|
android:strokeWidth="1"
|
||||||
|
android:strokeColor="#00000000" />
|
||||||
|
</vector>
|
||||||
|
|
@ -0,0 +1,170 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="108dp"
|
||||||
|
android:height="108dp"
|
||||||
|
android:viewportWidth="108"
|
||||||
|
android:viewportHeight="108">
|
||||||
|
<path
|
||||||
|
android:fillColor="#3DDC84"
|
||||||
|
android:pathData="M0,0h108v108h-108z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M9,0L9,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,0L19,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M29,0L29,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M39,0L39,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M49,0L49,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M59,0L59,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M69,0L69,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M79,0L79,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M89,0L89,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M99,0L99,108"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,9L108,9"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,19L108,19"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,29L108,29"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,39L108,39"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,49L108,49"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,59L108,59"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,69L108,69"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,79L108,79"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,89L108,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M0,99L108,99"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,29L89,29"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,39L89,39"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,49L89,49"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,59L89,59"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,69L89,69"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M19,79L89,79"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M29,19L29,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M39,19L39,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M49,19L49,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M59,19L59,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M69,19L69,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:pathData="M79,19L79,89"
|
||||||
|
android:strokeWidth="0.8"
|
||||||
|
android:strokeColor="#33FFFFFF" />
|
||||||
|
</vector>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@drawable/ic_launcher_background" />
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<background android:drawable="@drawable/ic_launcher_background" />
|
||||||
|
<foreground android:drawable="@drawable/ic_launcher_foreground" />
|
||||||
|
</adaptive-icon>
|
||||||
BIN
composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
BIN
composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
BIN
composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 16 KiB |
3
composeApp/src/androidMain/res/values/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">Feufaro</string>
|
||||||
|
</resources>
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<vector
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
|
android:width="450dp"
|
||||||
|
android:height="450dp"
|
||||||
|
android:viewportWidth="64"
|
||||||
|
android:viewportHeight="64">
|
||||||
|
<path
|
||||||
|
android:pathData="M56.25,18V46L32,60 7.75,46V18L32,4Z"
|
||||||
|
android:fillColor="#6075f2"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m41.5,26.5v11L32,43V60L56.25,46V18Z"
|
||||||
|
android:fillColor="#6b57ff"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m32,43 l-9.5,-5.5v-11L7.75,18V46L32,60Z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:centerX="23.131"
|
||||||
|
android:centerY="18.441"
|
||||||
|
android:gradientRadius="42.132"
|
||||||
|
android:type="radial">
|
||||||
|
<item android:offset="0" android:color="#FF5383EC"/>
|
||||||
|
<item android:offset="0.867" android:color="#FF7F52FF"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:pathData="M22.5,26.5 L32,21 41.5,26.5 56.25,18 32,4 7.75,18Z">
|
||||||
|
<aapt:attr name="android:fillColor">
|
||||||
|
<gradient
|
||||||
|
android:startX="44.172"
|
||||||
|
android:startY="4.377"
|
||||||
|
android:endX="17.973"
|
||||||
|
android:endY="34.035"
|
||||||
|
android:type="linear">
|
||||||
|
<item android:offset="0" android:color="#FF33C3FF"/>
|
||||||
|
<item android:offset="0.878" android:color="#FF5383EC"/>
|
||||||
|
</gradient>
|
||||||
|
</aapt:attr>
|
||||||
|
</path>
|
||||||
|
<path
|
||||||
|
android:pathData="m32,21 l9.526,5.5v11L32,43 22.474,37.5v-11z"
|
||||||
|
android:fillColor="#000000"/>
|
||||||
|
</vector>
|
||||||
44
composeApp/src/commonMain/kotlin/mg/dot/feufaro/App.kt
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.layout.Column
|
||||||
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.safeContentPadding
|
||||||
|
import androidx.compose.material3.Button
|
||||||
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.runtime.*
|
||||||
|
import androidx.compose.ui.Alignment
|
||||||
|
import androidx.compose.ui.Modifier
|
||||||
|
import org.jetbrains.compose.resources.painterResource
|
||||||
|
import org.jetbrains.compose.ui.tooling.preview.Preview
|
||||||
|
|
||||||
|
import feufaro.composeapp.generated.resources.Res
|
||||||
|
import feufaro.composeapp.generated.resources.compose_multiplatform
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
@Preview
|
||||||
|
fun App() {
|
||||||
|
MaterialTheme {
|
||||||
|
var showContent by remember { mutableStateOf(false) }
|
||||||
|
Column(
|
||||||
|
modifier = Modifier
|
||||||
|
.safeContentPadding()
|
||||||
|
.fillMaxSize(),
|
||||||
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
|
) {
|
||||||
|
Button(onClick = { showContent = !showContent }) {
|
||||||
|
Text("Click me!")
|
||||||
|
}
|
||||||
|
AnimatedVisibility(showContent) {
|
||||||
|
val greeting = remember { Greeting().greet() }
|
||||||
|
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
|
||||||
|
Image(painterResource(Res.drawable.compose_multiplatform), null)
|
||||||
|
Text("Compose: $greeting")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import java.io.IOException // Java.io.IOException est généralement partagée sur JVM/Android
|
||||||
|
|
||||||
|
// Définissez une expect interface. Elle spécifie le contrat de votre repository.
|
||||||
|
// Utilisez 'expect interface' car l'implémentation (actual) variera selon la plateforme.
|
||||||
|
expect interface FileRepository {
|
||||||
|
// Lecture de fichier ligne par ligne
|
||||||
|
suspend fun readFileLines(filePath: String): List<String>
|
||||||
|
|
||||||
|
// Lecture de fichier entier en tant que String
|
||||||
|
suspend fun readFileContent(filePath: String): String
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
class Greeting {
|
||||||
|
private val platform = getPlatform()
|
||||||
|
|
||||||
|
fun greet(): String {
|
||||||
|
return "Hello, ${platform.name}!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
interface Platform {
|
||||||
|
val name: String
|
||||||
|
}
|
||||||
|
|
||||||
|
expect fun getPlatform(): Platform
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package mg.dot.feufaro.di
|
||||||
|
|
||||||
|
import org.koin.dsl.module
|
||||||
|
|
||||||
|
val commonModule = module {
|
||||||
|
// Déclarez FileRepository comme un singleton.
|
||||||
|
// L'implémentation concrète (actual) sera résolue par Koin en fonction de la plateforme.
|
||||||
|
// Pour Android, Koin injectera le Context que vous avez fourni via androidContext().
|
||||||
|
|
||||||
|
}
|
||||||
3499
composeApp/src/commonMain/resources/10-1.xml
Normal file
823
composeApp/src/commonMain/resources/10-2.xml
Normal file
|
|
@ -0,0 +1,823 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 4.0.2 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd">
|
||||||
|
<score-partwise version="4.0.2">
|
||||||
|
<identification>
|
||||||
|
<encoding>
|
||||||
|
<software>Audiveris 5.3.1</software>
|
||||||
|
<supports type="yes" element="print" attribute="new-system" value="yes"></supports>
|
||||||
|
<supports type="yes" element="print" attribute="new-page" value="yes"></supports>
|
||||||
|
<software>ProxyMusic 4.0.2</software>
|
||||||
|
<encoding-date>2025-06-28</encoding-date>
|
||||||
|
</encoding>
|
||||||
|
<source>/home/mahefa/Images/10-2.jpg</source>
|
||||||
|
<miscellaneous>
|
||||||
|
<miscellaneous-field name="source-file">/home/mahefa/Images/10-2.jpg</miscellaneous-field>
|
||||||
|
<miscellaneous-field name="source-sheet-1">1</miscellaneous-field>
|
||||||
|
</miscellaneous>
|
||||||
|
</identification>
|
||||||
|
<defaults>
|
||||||
|
<scaling>
|
||||||
|
<millimeters>5.7573</millimeters>
|
||||||
|
<tenths>40</tenths>
|
||||||
|
</scaling>
|
||||||
|
<page-layout>
|
||||||
|
<page-height>344</page-height>
|
||||||
|
<page-width>1059</page-width>
|
||||||
|
<page-margins type="both">
|
||||||
|
<left-margin>80</left-margin>
|
||||||
|
<right-margin>80</right-margin>
|
||||||
|
<top-margin>80</top-margin>
|
||||||
|
<bottom-margin>80</bottom-margin>
|
||||||
|
</page-margins>
|
||||||
|
</page-layout>
|
||||||
|
<lyric-font font-family="Sans Serif" font-size="10"></lyric-font>
|
||||||
|
</defaults>
|
||||||
|
<part-list>
|
||||||
|
<score-part id="P1">
|
||||||
|
<part-name>Voice</part-name>
|
||||||
|
<part-abbreviation>Voice</part-abbreviation>
|
||||||
|
<score-instrument id="P1-I1">
|
||||||
|
<instrument-name>Voice Oohs</instrument-name>
|
||||||
|
</score-instrument>
|
||||||
|
<midi-instrument id="P1-I1">
|
||||||
|
<midi-channel>1</midi-channel>
|
||||||
|
<midi-program>54</midi-program>
|
||||||
|
<volume>78</volume>
|
||||||
|
</midi-instrument>
|
||||||
|
</score-part>
|
||||||
|
<score-part id="P2">
|
||||||
|
<part-name>Voice</part-name>
|
||||||
|
<part-abbreviation>Voice</part-abbreviation>
|
||||||
|
<score-instrument id="P2-I1">
|
||||||
|
<instrument-name>Voice Oohs</instrument-name>
|
||||||
|
</score-instrument>
|
||||||
|
<midi-instrument id="P2-I1">
|
||||||
|
<midi-channel>2</midi-channel>
|
||||||
|
<midi-program>54</midi-program>
|
||||||
|
<volume>78</volume>
|
||||||
|
</midi-instrument>
|
||||||
|
</score-part>
|
||||||
|
</part-list>
|
||||||
|
<!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = =-->
|
||||||
|
<part id="P1">
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="1" width="328">
|
||||||
|
<print>
|
||||||
|
<system-layout>
|
||||||
|
<system-margins>
|
||||||
|
<left-margin>8</left-margin>
|
||||||
|
<right-margin>-19</right-margin>
|
||||||
|
</system-margins>
|
||||||
|
<top-system-distance>-22</top-system-distance>
|
||||||
|
</system-layout>
|
||||||
|
<measure-numbering>system</measure-numbering>
|
||||||
|
</print>
|
||||||
|
<attributes>
|
||||||
|
<divisions>1</divisions>
|
||||||
|
<key>
|
||||||
|
<fifths>2</fifths>
|
||||||
|
</key>
|
||||||
|
<clef>
|
||||||
|
<sign>G</sign>
|
||||||
|
<line>2</line>
|
||||||
|
</clef>
|
||||||
|
<staff-details print-object="yes"></staff-details>
|
||||||
|
</attributes>
|
||||||
|
<direction placement="above">
|
||||||
|
<direction-type>
|
||||||
|
<words></words>
|
||||||
|
</direction-type>
|
||||||
|
<sound tempo="120"></sound>
|
||||||
|
</direction>
|
||||||
|
<note default-x="92">
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="12">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="178">
|
||||||
|
<pitch>
|
||||||
|
<step>C</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="8">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="177">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="8">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="243">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="19">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="242">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>5</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="19">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="286">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="15">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="286">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>C</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>5</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="15">up</stem>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>6</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="91">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-62">down</stem>
|
||||||
|
<notations>
|
||||||
|
<articulations>
|
||||||
|
<staccato default-y="-24" placement="above"></staccato>
|
||||||
|
</articulations>
|
||||||
|
<slur type="start" number="1" default-x="5" default-y="-50" placement="below" bezier-x="9" bezier-y="-8"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="134">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-68">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="-5" default-y="-55" bezier-x="-11" bezier-y="-5"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="2" width="275">
|
||||||
|
<note default-x="18">
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="12">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="103">
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="8">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="189">
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="4">up</stem>
|
||||||
|
<lyric number="1" default-y="-108" placement="below">
|
||||||
|
<syllabic>single</syllabic>
|
||||||
|
<text>al</text>
|
||||||
|
</lyric>
|
||||||
|
</note>
|
||||||
|
<note default-x="189">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="4">up</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="233">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="1">up</stem>
|
||||||
|
<lyric number="1" default-y="-108" placement="below">
|
||||||
|
<syllabic>single</syllabic>
|
||||||
|
<text>le</text>
|
||||||
|
</lyric>
|
||||||
|
</note>
|
||||||
|
<note default-x="233">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="1">up</stem>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>6</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="16">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-62">down</stem>
|
||||||
|
<notations>
|
||||||
|
<articulations>
|
||||||
|
<staccato default-y="-24" placement="above"></staccato>
|
||||||
|
</articulations>
|
||||||
|
<slur type="start" number="1" default-x="4" default-y="-50" placement="below" bezier-x="9" bezier-y="-8"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="59">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-68">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="-5" default-y="-56" bezier-x="-11" bezier-y="-5"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="102">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-68">down</stem>
|
||||||
|
<notations>
|
||||||
|
<articulations>
|
||||||
|
<staccato default-y="-94" placement="below"></staccato>
|
||||||
|
</articulations>
|
||||||
|
<slur type="start" number="1" default-x="5" default-y="-55" placement="below" bezier-x="7" bezier-y="-11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="146">
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-82">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="-5" default-y="-70" bezier-x="-13" bezier-y="-2"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="3" width="198">
|
||||||
|
<note default-x="17">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>6</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
<dot/>
|
||||||
|
</note>
|
||||||
|
<note default-x="89">
|
||||||
|
<pitch>
|
||||||
|
<step>C</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>4</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="8" default-y="-61" bezier-x="-16" bezier-y="-7"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>10</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="43">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-72">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="1" default-x="4" default-y="-60" placement="below" bezier-x="16" bezier-y="-8"></slur>
|
||||||
|
</notations>
|
||||||
|
<lyric number="1" default-y="-109" placement="below">
|
||||||
|
<syllabic>single</syllabic>
|
||||||
|
<text>lu</text>
|
||||||
|
</lyric>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="4" width="109">
|
||||||
|
<note default-x="21">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>4</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
<lyric number="1" default-y="-108" placement="below">
|
||||||
|
<syllabic>single</syllabic>
|
||||||
|
<text>ia!</text>
|
||||||
|
</lyric>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>4</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="39">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>4</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>4</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
</note>
|
||||||
|
<barline location="right">
|
||||||
|
<bar-style>light-heavy</bar-style>
|
||||||
|
</barline>
|
||||||
|
</measure>
|
||||||
|
</part>
|
||||||
|
<!--= = = = = = = = = = = = = = = = = = = = = = = = = = = = =-->
|
||||||
|
<part id="P2">
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="1" width="328">
|
||||||
|
<print>
|
||||||
|
<system-layout>
|
||||||
|
<system-margins>
|
||||||
|
<left-margin>8</left-margin>
|
||||||
|
<right-margin>-19</right-margin>
|
||||||
|
</system-margins>
|
||||||
|
<top-system-distance>-22</top-system-distance>
|
||||||
|
</system-layout>
|
||||||
|
<staff-layout number="1">
|
||||||
|
<staff-distance>124</staff-distance>
|
||||||
|
</staff-layout>
|
||||||
|
<measure-numbering>none</measure-numbering>
|
||||||
|
</print>
|
||||||
|
<attributes>
|
||||||
|
<divisions>1</divisions>
|
||||||
|
<key>
|
||||||
|
<fifths>2</fifths>
|
||||||
|
</key>
|
||||||
|
<clef>
|
||||||
|
<sign>F</sign>
|
||||||
|
<line>4</line>
|
||||||
|
</clef>
|
||||||
|
<staff-details print-object="yes"></staff-details>
|
||||||
|
</attributes>
|
||||||
|
<note default-x="90">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-51">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="90">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-51">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="1" default-x="6" default-y="12" placement="above" bezier-x="14" bezier-y="8"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="134">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="134">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<accidental>sharp</accidental>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="6" default-y="9" bezier-x="-13" bezier-y="9"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="177">
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>2</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-63">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="177">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-63">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="241">
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>2</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-59">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="241">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-59">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="285">
|
||||||
|
<pitch>
|
||||||
|
<step>C</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-55">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="284">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-55">down</stem>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="2" width="275">
|
||||||
|
<note default-x="14">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-44">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="1" default-x="17" default-y="6" placement="above" bezier-x="6" bezier-y="11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="59">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="59">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="4" default-y="6" bezier-x="-6" bezier-y="11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="144">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-44">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="1" default-y="-1" bezier-x="-6" bezier-y="11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="189">
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="189">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-47">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="232">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-44">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="231">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-44">down</stem>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>5</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="14">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-54">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="102">
|
||||||
|
<pitch>
|
||||||
|
<step>C</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-55">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="102">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>E</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-55">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="1" default-x="11" default-y="-1" placement="above" bezier-x="6" bezier-y="11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="146">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>1</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>quarter</type>
|
||||||
|
<stem default-y="-54">down</stem>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="3" width="198">
|
||||||
|
<note default-x="17">
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-40">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="1" default-x="6" default-y="-29" placement="below" bezier-x="32" bezier-y="-19"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="17">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>B</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-40">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="start" number="2" default-x="6" default-y="17" placement="above" bezier-x="32" bezier-y="24"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="87">
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-35">down</stem>
|
||||||
|
</note>
|
||||||
|
<note default-x="145">
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>2</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-63">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="1" default-x="-6" default-y="-50" bezier-x="-36" bezier-y="-8"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<note default-x="145">
|
||||||
|
<chord/>
|
||||||
|
<pitch>
|
||||||
|
<step>G</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="-63">down</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="stop" number="2" default-x="6" default-y="14" bezier-x="-31" bezier-y="26"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>6</duration>
|
||||||
|
</backup>
|
||||||
|
<forward>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
</forward>
|
||||||
|
<note default-x="87">
|
||||||
|
<pitch>
|
||||||
|
<step>A</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>2</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>half</type>
|
||||||
|
<stem default-y="28">up</stem>
|
||||||
|
<notations>
|
||||||
|
<slur type="continue" number="1" default-x="-18" default-y="21" placement="above" bezier-x2="6" bezier-y2="11"></slur>
|
||||||
|
<slur type="stop" number="1" default-x="14" default-y="21" bezier-x="-6" bezier-y="11"></slur>
|
||||||
|
</notations>
|
||||||
|
</note>
|
||||||
|
</measure>
|
||||||
|
<!--=======================================================-->
|
||||||
|
<measure number="4" width="109">
|
||||||
|
<note default-x="20">
|
||||||
|
<pitch>
|
||||||
|
<step>F</step>
|
||||||
|
<alter>1</alter>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>4</duration>
|
||||||
|
<voice>1</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
</note>
|
||||||
|
<backup>
|
||||||
|
<duration>4</duration>
|
||||||
|
</backup>
|
||||||
|
<note default-x="20">
|
||||||
|
<pitch>
|
||||||
|
<step>D</step>
|
||||||
|
<octave>3</octave>
|
||||||
|
</pitch>
|
||||||
|
<duration>4</duration>
|
||||||
|
<voice>2</voice>
|
||||||
|
<type>whole</type>
|
||||||
|
</note>
|
||||||
|
<barline location="right">
|
||||||
|
<bar-style>light-heavy</bar-style>
|
||||||
|
</barline>
|
||||||
|
</measure>
|
||||||
|
</part>
|
||||||
|
</score-partwise>
|
||||||
3520
composeApp/src/commonMain/resources/11.xml
Normal file
2605
composeApp/src/commonMain/resources/12.xml
Normal file
4275
composeApp/src/commonMain/resources/13.xml
Normal file
10
composeApp/src/commonMain/resources/480.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
M0:|c:D|m:9/4|r:9.9.9.9.D.|t:FFPM-480 - Mamin'ny foko, ry Jeso ô!|a:Razafimahefa, 1867-1961|h:Phoebe P. Knapp, 1839-1908|n:15|l:12
|
||||||
|
S0:/|:!
|
||||||
|
T0:{!M:R:D|S:-:-!S:-:-!F:S:L|S:-:-!-:-:-/S:M:S|D:-:-!T:-:-!L:S:F|S:-:-!-:-:-/M:R:D|S:-:-!S:-:-!F:S:L|S:-:-!-:-:-/D:R:M|F:-:-!R:-:-!D:R:T|D:-:-!-:-:-/S:S:S|D:-:-!S:-:--!L:L:L|S:-:-!-:-:-/S:S:S|L:-:-!D:-:-!T:T:L|T:-:-!--/T:D:R|D:-:-!S:-:-!L:S:L|S:-:-!-:-:-/D:R:M|F:-:-!R:-:-!D:R:T|D:-:-!-:-:-}
|
||||||
|
N1:mrdssfsls/smsd'tlsFs/mrdssfsls/drmfrdrt,d/sssd'sllls/sssld'ttlt/td'r'd'slsls/drmfrdrt,d
|
||||||
|
N2:dddmmdddd/mdmmrrrrr/dddmmdddd/dddrl,dt,s,s,/mmmmmfffm/mmmfsssFs/fffmmfmfm/dtdrl,dt,s,s,
|
||||||
|
N3:sfmsslmfm/sssssd'tlt/sfmsslmfm/mfslfmffm/d'd'd'sd'd'd'd'd'/d'd'd'd'd'r'r'r'r'/sltd'd'd'd'd'd'/sslfmfrm
|
||||||
|
N4:d9/ddddrrrrs,/d9/dddf,f,s,s,s,d/d5fffd/dddfmrrrs/sssd6/mrdf,f,s,s,s,d
|
||||||
|
L1:Ma_min'_ny _fo_ko _ry _Je_so _ô!/Ny _fa_mon_je_na i_zay _vi_ta_nao/Ny _ha_di_soa_ko _na_ve_la_nao/Te_na a_fa_ka a_ho _man_dra_ki_zay./Je_soa _ma_la_la ô! _Mpa_mon_jy _soa/I_ndro _ny _ai_ko _rai_so ho _A_nao/Ve_lon-_ka_nom_po, _ve_lon-_ka_noa,/Vo_non-_ka_nao i_zay _si_tra_kao./
|
||||||
|
L2:Ta_no _ny _fo_ko, _ry _Je_soa _tia,/Za_za _tsy _ma_ha_sa_ra_kaA_nao;/Mbo_la _ma_le_my _mo_ra _ma_nia,/Ta_no _hi_fi_ki_traao _A_mi_nao!
|
||||||
|
Y3:Aoka ny foko sy ny fonao/Hiara-mitempo tena iray;/Aoka ny saiko sy ny sainao/Hiray safidy mandrakizay!
|
||||||
3500
composeApp/src/commonMain/resources/8.xml
Normal file
2890
composeApp/src/commonMain/resources/9.xml
Normal file
11
composeApp/src/commonMain/resources/ews-1.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
M0:|c:D|m:4/4|r:8.8 L.M.|t:1 - From all that dwell below the sky|n:15|l:10|a:John Warrington Hatton (1793: 1710-1793)|h:Isaac Watts (1719)|x:https://hymnary.org/tune/duke_street_hatton
|
||||||
|
T0:{|D:-!M:F|S:-!(L:T)|D:-!(T:L)|S:-!-:-/S:-!S:S|L:-!(S:S)|(F:T)!M:-|R:-!-:-/M:-!M:R|(D:M)!(S:D)|(L:R)!(F:M)|R:-!-:-/S:-!L:T|(D:-.F!S):D|D:-!T:-|D:-!-:-}
|
||||||
|
N1:dmfsltd'tls/sssls-f-mr/mmrdmsd'lsfmr/sltd'--fmrd
|
||||||
|
N2:ddt,ddfmrdt,/d5s,l,t,dt,/ddt,s,dd-d-t,dt,/ddrmrdrdt,d
|
||||||
|
N3:msssf-ssFs/mmsfsmf-ss/ssfmsd'sfss-s/sffmfslsfm
|
||||||
|
N4:ddrmfrdr-s,/ddmfm-r-ds,/dds,d-m-fmrds,/mfrdrmfss,d
|
||||||
|
E1:From all that dwell be_low the Skies/Let the Cre_a_tor's Praise a_rise;/Let the Re_deem_er's Name be sung/Thro' ev'_ry Land, by ev'_ry Tongue,
|
||||||
|
E2:E_ter_nal are Thy mer_cies Lord;/E_ter_nal truth a_ttends Thy Word;/Thy praise shall sound from shore to shore/Till suns shall rise and set no more.
|
||||||
|
E3:Your lof_ty themes, ye mor_tals, bring;/In songs of praise di_vine_ly sing./The great sal_va_tion loud pro_claim,/And shout for joy the Sa_vior’s name.
|
||||||
|
E4:In ev’_ry land be_gin the song;/To ev’_ry land the strains be_long./In cheer_ful sounds all voi_ces raise/And fill the world with lou_dest praise.
|
||||||
|
|
||||||
15
composeApp/src/commonMain/resources/ews-2.txt
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
M0:|c:Eb|m:4/4|r:8.6.8.6 C.M.|t:2 - My God how wonderful Thy are|n:12|l:8|a:Thomas Ravenscroft (1621)|h:Frederick William Faber (1848: 1814-1863)|x:https://hymnary.org/tune/dundee_ravenscroft|b:DUNDEE
|
||||||
|
T0:{!D:-|M:F!S:D|R:M!F:-|-:-/M:-|R:D!D:T|D:-/S:-|D:T!L:S|S:F!S:-|-:-/M:-|R:(D.T)!D:T|D:-!}
|
||||||
|
N1:dmfsdrmf/mrddt,d/sd'tlssFs/mrd-dt,d
|
||||||
|
N2:s,dddl,t,dddt,l,l,s,s,/dmrdt,l,l,t,/s,l,m,f,s,s,s,
|
||||||
|
N3:mslsmssl/ssmfrm/mssmrmrr/mfd-rrm
|
||||||
|
N4:ddl,m,l,s,df,/ds,l,f,s,d/dds,l,t,drs,/df,l,-s,s,d
|
||||||
|
E1:My God, how won_der_ful Thy are,/Thy ma_jes_ty how bright,/How beau_ti_ful Thy mer_cy seat,/in depths of burn_ing light!
|
||||||
|
E2:How dread are Thine e_ter_nal years,/O e_ver_last_ing LORD;/by pros_trate spi_rits, day and night,/in_cess_ant_ly a_dored.
|
||||||
|
E3:How beau_ti_ful, how beau_ti_ful,/the sight of Thee must be,/Thine end_less wis_dom, bound_less pow'r,/and aw_ful pu_ri_ty.
|
||||||
|
E4:O how I fear Thee, Li_ving God,/with deep_est, tend'_rest fears,/and wor_ship Thee with trem_bling hope,/and pe_ni_ten_tial tears.
|
||||||
|
E5:Yet I may love Thee too, O LORD,/Al_migh_ty as Thou art;/for Thou hast stooped to ask of me/the love of my poor heart.
|
||||||
|
E6:Oh then this worse than worth_less heart/In pi_ty deign to take,/And make it love Thee, for Thy_self/And for Thy glo_ry’s sake.
|
||||||
|
E7:No earth_ly fa_ther loves like Thee,/no mo_ther e’er so mild,/bears and for_bears, as Thou hast done/with me, Thy sin_ful child.
|
||||||
|
E8:On_ly to sit and think of God/O what a joy it is!/To think the thought, to breathe the Name/Earth has no high_er bliss!.
|
||||||
|
E9:Fa_ther of Je_sus, love's re_ward,/what rap_ture will it be,/pros_trate be_fore Thy throne to lie,/and e_ver gaze on Thee!/
|
||||||
19
composeApp/src/commonMain/resources/ews-3.txt
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
M0:|c:G|m:4/4|r:8.8|t:3 - Thee, God, we praise|n:15|l:11.5|a:Niceta of Remesiana (1867-1937)|h:Genevan Psalter, 1551 Edition, attr. Louis Bourgeois (1510-1561)|x:https://hymnary.org/hymn/ELH1996/page/258|b:OLD 100TH
|
||||||
|
T0:{:D|M:F!S:D|R:F!M/M|R:M!(D.D):T|D:M!R/L|R:F!(S.D):D|L:T!D/D|M:D!R:(F.R)|(M.R):(R.R)!D:}
|
||||||
|
N1:ddt,l,s,drm/mmmr-dfmr/drmr-dl,t,d/smdrf-m-r-d
|
||||||
|
N2:s,l,s,f,m,m,s,s,/s,s,s,s,f,m,l,s,s,/m,s,s,s,-s,s,f,m,/s,s,F,s,l,-s,-s,f,m,
|
||||||
|
N3:mmmdddt,d/dddt,-dddt,/dt,dt,-ddrs,/rddt,l,t,d-t,-d
|
||||||
|
N4:dl,m,f,d,l,s,d/d,m,d,s,-l,f,d,s,/l,s,ds,f,m,f,r,d,/t,d,l,s,r,-m,f,s,-d,
|
||||||
|
E1:Thee, God, we praise, Thy name we bless,/Thee, Lord, of all we do con_fess;/The whole cre_a_tion wor_ships Thee,/The Fa_ther of e_ter_ni_ty.
|
||||||
|
E2:To Thee a_loud all an_gels cry,/The heav'ns and all the pow'rs on high,/The che_rubs and the se_raphs join,/And thus they hymn Thy praise di_vine.
|
||||||
|
E3:O ho_ly, ho_ly, ho_ly Lord,/Thou, God, of hosts, by all a_dored;/Earth and the heav'ns are full of Thee,/Thy light, thy pow'r, Thy ma_jes_ty.
|
||||||
|
E4:The a_postles join the glo_rious throng,/The pro_phets swell the\ im_mor_tal song,/The white-_robed hosts of mar_tyrs bright/All serve and praise Thee day and night.
|
||||||
|
E5:The ho_ly Church in ev'_ry place/Through_out the world e_xalts Thy praise,/And e_ver doth ack_now_ledge Thee,/Fa_ther of bound_less ma_jes_ty.
|
||||||
|
E6:O God e_ter_nal, migh_ty King,/We un_to Thee our prai_ses bring;/And to Thy true and on_ly Son,/And Ho_ly Spi_rit, Three in One.
|
||||||
|
E7:O King of glo_ry, Christ the Lord,/God's e_ver_las_ting Son_the Word,/To res_cue man_kind from its doom,/Thou didst our ve_ry flesh as_sume.
|
||||||
|
E8:Thou o_ver_cam_st death's sharp sting,/Be_lie_vers un_to heav'n to bring;/At God's right hand, e_xal_ted there,/Thou dost the Fa_ther's glo_ry share.
|
||||||
|
E9:And we be_lieve Thou wilt des_cend/To be our judge, when comes the end;/Thy ser_vants help, whom Thou, O God,/Hast ran_somed with Thy pre_cious blood.
|
||||||
|
E10:A_mong Thy saints let us be found/With glo_ry e_ver_las_ting crowned;/Thy peo_ple save from age to age,/And bless Thy cho_sen he_ri_tage.
|
||||||
|
E11:O guide them, lift them up for aye:/We mag_ni_fy Thee day by day,/Thy name we wor_ship and a_dore,/World with_out end, for e_ver_more.
|
||||||
|
E12:Vouch_safe, O Lord, we hum_bly pray,/To keep us safe from sin this day:/O Lord, have mer_cy on us all,/Have mer_cy on us when we call.
|
||||||
|
E13:Thy mer_cy, Lord, to us ex_tend,/As on Thy mer_cy we de_pend:/Lord, I have put my trust in Thee,/Con_found_ed let me ne_ver be.
|
||||||
9
composeApp/src/commonMain/resources/ews-4.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:C|m:4/4|r:13.13.8.8.11|t:4 - Join the song of saints in glory|n:15|l:11.5|a:Josie Wallace (1914)|h:Isaac Hickman Meredith (1872-1962)|x:https://hymnary.org/page/fetch/SSM1914/49|b:OLD 100TH
|
||||||
|
T0:{|D:-.L!S:M|D:R!M:S/D:-.D!D:D|D:-!-:Z/M:-.R!D:R|M:R!D:M/R:-.R!R:R|R:-!-:Z/(S.S):(S.S)!(S.L):(S.T)|(S.S):(S.S)!(S.S)!(S.S)/(S.S):(S.S)!(S.S):(S.S)|(S.S):(S.S)!(S.S):(S.S)/D:-.D!R:R|M:D!D:L/(S:M)!(R:F)|D:-!-:Z/D:-.D!D:D|D/D.M!S.D:M.S|D:-.D!D:D|D:-!-:Z/R:-.R!R:R|R/R.S!T.R:S.T|R:-.R!R:R|R:-!-:Z/R:-!R:-|R:-!T:-|L:-!S:-|F:-/M:R|S:-!M:D|T:-!S:-|S:-!-:Z/}
|
||||||
|
N1:d'lsmdrms|d'd'd'd'd'|m'r'd'r'm'r'd'm'|r'r'r'r'r'|z16|t--td'-d'-m'-r'-t-s-|d'd'r'r'm'd'd'ls-r'-d'|d'd'd'd'd'|dmsd'm's'd''d''d''d''d''|r'r'r'r'r'|rstr's't'r''r''r''r''r''|m'r'd'tlsf|mr(s---)ss-
|
||||||
|
N2:d'lsmdrms|mmffm |ssssssss |ssFFf |z16|r--rm-m-s-f-r-f- |msssssffmmffm |mmffm |z6 d'd'd'd'd' |ssFFs |-6 r'r'r'r'r' |sfmrdmr |---ddt,rd-
|
||||||
|
N3:d'lsmdrms|sslls |d'td'td'td'd' |r'r'd'd't |s-s-l-t-l-s-m-s- |z16|sd'ttd'Tld'd'd'TTd' |sslls |z6 s - l l s |ttld't |-6 t - l d't |d'td'SlTl |---mmrfm
|
||||||
|
N4:d'lsmdrms|ddffd |drmrdrmd |ssrrs |s,ss,ss,ss,ss,ss,ss,ss,s|s,ss,ss,ss,ss,ss,ss,ss,s|dmssd'mffssssd|ddffd|z6 m-ffm |ssrrs |-6 s-Fls |d'slmfDr |---s,s,s,s,d
|
||||||
|
E1:Join the song of saints in glo_ry,/Praise Je_ho_vah’s Name,/Sing a_gain re_demp_tion’s sto_ry,/Praise Je_ho_vah’s Name,/Come, His won_drous works de_cla_ring/Come, His lo_ving-_kind_ness sha_ring,/To the throne of grace re_pair_ing,/Praise His Name./Praise Je_ho_vah’s Name./_9_2/Praise Je_ho_vah’s Name.//_9_Join we now in glad ac_claim,/Praise His Name, (Praise Je_ho_vah's Name)/
|
||||||
|
E2:Join the throng that bows be_fore Him,/Praise Je_ho_vah’s Name,/Men and saints a_like a_dore Him,/Praise Je_ho_vah’s Name,/On_ly He is all-_pre_vail_ing,/On_ly He is ne_ver-_fail_ing,/By His grace all sin as_sail_ing,/Praise His Name.
|
||||||
|
E3:Join the song that ne_ver cea_ses,/Praise Je_ho_vah’s Name,/With the years its pow’r in_crea_ses,/Praise Je_ho_vah’s Name,/Sun and stars of heav’n u_ni_ted,/Earth and sky in u_nion pligh_ted,/With e_ter_nal glo_ry light_ed,/Praise His Name./
|
||||||
9
composeApp/src/commonMain/resources/ews-456.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:G|m:3/4|r:11.11.11.11.12.12.11.11|t:456 - To God Be The Glory|n:15|l:10|a:Fanny Crosby (1875)|h:William Howard Doane (1875: 1832-1915)|x:https://hymnary.org/tune/duke_street_hatton
|
||||||
|
T0:{:D|(D:D):D.D|D:D:D|D:D:D|D:-/D|D:D:D|D:D:D|D:D:(D.D)|D:-/D|(D:D):D.D|D:D:D|D:D:D|D:-/D|D:D:D|D:D:D|D:D:D|D:-/D.,D|D:-:D.,D|D:-:D.,D|D:D:D|D:-/D.,D|D:-:D.,D|D:-:D.D|D:D:D|D:-/D|(D:D):D.D|D:D:D|D:D:D|D:-/D|D:D:D|D:D:D|D:D:D|D:-}
|
||||||
|
N1:s,s,-l,t,ds,drs,rm/mfl,fmdmmrl,-r/s,s,-l,t,ds,drs,rm/msfrdt,dmmrd/mfsmfssmdrmr/rmfrmffrssfm/s,s,-l,t,ds,drs,rm/msfrdt,dmmrd
|
||||||
|
N2:m,m,s,f,f,m,m,s,s,s,s,s,/s,l,f,l,s,s,s,F,F,l,-s,/f,m,s,f,f,m,m,s,s,s,s,s,/T,l,l,l,s,s,s,s,s,f,m,/s,s,ds,s,ds,s,s,s,s,s,/s,dt,t,dt,s,s,s,s,s,s,/m,m,s,f,f,m,m,s,s,s,s,s,/T,l,l,l,s,s,s,s,s,f,m,
|
||||||
|
N3:ss-frrssfffs/s7mmlsf/fs-frrssfffs/ssld'tltssfs/sltslttssfsf/fsllsllfssfs/ss-frrssfffs/ssld'tltssfs
|
||||||
|
N4:s,s,t,rrs,s,t,rrrs/sddds,t,s,l,l,D-r/rs,t,rrs,s,t,rrrs/sdddr6s,/s7s,t,l,s,r/r7dt,t,l,s,/s,s,t,rrs,s,t,rrrs/sdddrrrrrrs,
|
||||||
|
E1:To God be the glo_ry, great things He has done,/so loved He the world that He gave us His Son,/who yield_ed His life an a_tone_ment for sin,/and o_pened the life gate that all may go in./Praise the Lord, praise the Lord, let the earth hear His voice!/Praise the Lord, praise the Lord, let the peo_ple re_joice!/O come to the Fa_ther through Je_sus the Son, and give Him the glo_ry, great things He has done.
|
||||||
|
E2:O per_fect re_demp_tion, the pur_chase of blood,/to ev'_ry be_lie_ver the pro_mise of God;/the vi_lest of_fen_der who tru_ly be_lieves,/that mo_ment from Je_sus a par_don re_ceives.
|
||||||
|
E3:Great things He has taught us, great things He has done,/and great our re_joi_cing through Je_sus the Son;/but pu_rer, and high_er, and great_er will be/our won_der, our rap_ture, when Je_sus we see.
|
||||||
11
composeApp/src/commonMain/resources/ews-5.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
M0:|c:D|m:3/4|r:8.7.8.7.4.7|t:5 - Praise, My Soul, The King Of Heaven|n:15|l:11.5|a:Thomas Hastings (1830: 1784-1872)|h:Henry Francis Lyte (1834: 1793-1847)|x:https://hymnary.org/page/fetch/OLOF2018/345/high|b:ZION
|
||||||
|
T0:{:S.,S|S:M:D.,S|L:S/D.,D|R.,R:D:T|D:-/S.,S|S:M:D.,S|L:S/D.,D|R.,R:D:T|D:-/M.,M|M:D/M.,M|R.,R:D:T|D:-/S.,S|S:M/S.,S|F.,F:M:R|M:-/}
|
||||||
|
N1:sssmd'sls/d'd'r'r'd'td'/sssmd'sls/d'd'r'r'd'td'/mmmd/mmrrdt,d/sssm/ssffmrm
|
||||||
|
N2:mmmdmmfm/ssffmrm/mmmdmmfm/ssffmrm/dddd/ddl,l,s,s,s,/mmmd/ddrrdt,d
|
||||||
|
N3:d'd'd'ssd'd'd'/ssllsss/d'd'd'ssd'd'd'/ssllsss/sssm/ssffmrm/d'd'd's/d'd'llsss
|
||||||
|
N4:ddddddfd/mmffss,d/ddddddfd/mmffss,d/dddd/ddf,f,s,s,d/dddd/mmffss,d
|
||||||
|
E1:Praise, my soul, the King of hea_ven;/to his feet your tri_bute bring./Ran_somed, healed, res_tored, for_gi_ven,/e_ver_more his prai_ses sing./Al_le_lu_ia,/Praise the e_ver_las_ting King!/al_le_lu_ia!/Praise the e_ver_las_ting King!/
|
||||||
|
E2:Praise him for his grace and fa_vor/to his peo_ple in dis_tress./Praise him, still the same as e_ver,/slow to chide, and swift to bless./Al_le_lu_ia,/Glo_rious in his faith_ful_ness!/al_le_lu_ia!/Glo_rious in his faith_ful_ness!/
|
||||||
|
E3:Fa_ther_like he tends and spares us;/well our fee_ble frame he knows./In his hand he gent_ly bears us,/res_cues us from all our foes./Al_le_lu_ia,/Wide_ly yet his mer_cy flows!/al_le_lu_ia!/Wide_ly yet his mer_cy flows!/
|
||||||
|
E4:Frail as sum_mer's flow'r we flou_rish;/blows the wind and it is gone;/but, while mor_tals rise and pe_rish,/God en_dures un_chan_ging on:/Al_le_lu_ia,/praise the high e_ter_nal One./al_le_lu_ia,/praise the high e_ter_nal One./
|
||||||
|
E5:An_gels, help us to a_dore him;/you be_hold him face to face./Sun and moon, bow down be_fore him,/dwel_lers all in time and space./Al_le_lu_ia,/Praise with us the God of grace!/al_le_lu_ia!/Praise with us the God of grace!/
|
||||||
10
composeApp/src/commonMain/resources/ews-6.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
M0:|c:E|m:4/4|r:12.13.11.11.|t:6 - Holy, Holy, Holy|n:15|l:12.5|a:John B. Dykes, 1823-1876|h:Reginald Heber, 1783-1826
|
||||||
|
T0:{|D:R!M:F|(D:R)!(M:F)/[D:S.L]!M:F|(D:R)!M:-/D:(S.L)!M:F|D:R!M:F|D:R!M:-.F|(D:-!F):-/D:R!M:F|(D:R)!(M:F)/D:(S.L)!M:F|(D:R)!M:-/(D:R)!M:F|D:-!(M:F)/D:R!M:-.F|D:-!-:}
|
||||||
|
N1:ddmms-s-/l-llls-m/s-sssd'd'tsrslss-/ddmms-s-/l-llls-s/d'-sslm-/frrdd
|
||||||
|
N2:s,s,ddt,rdt,/l,t,-drm-d/rr-mrdrrmrt,dt,t,-/s,s,ddt,rdt,/l,t,-drm-d/d-ddddT,l,l,t,dd
|
||||||
|
N3:mmddrfms/fs-ltd'ss/ss-ssmFsstsFssf/mmddrfms/fs-ltd'sm/mfsTls-/fffmm
|
||||||
|
N4:ddl,l,s,-d-/f,-f,ffd-d/t,-t,dt,l,l,t,drrrs,s,-/ddl,l,s,-d-/f,-f,ffd-d/l,-m,m,f,d-/f,f,s,ddf,f,-s,f,m,m,f,s,l,l,l,r,t,,/t,,t,,m,m,r,f,m,r,/d,r,-m,f,
|
||||||
|
E1:Ho_ly, ho_ly, ho_ly! /Lord God Al_mi_ghty!/Ear_ly in the morn_ing our 2song shall rise to thee /Ho_ly, ho_ly, ho_ly, /mer_ci_ful and mi_ghty! /God in three per_sons, /ble_ssed Tri_ni_ty!
|
||||||
|
E2:Ho_ly, ho_ly, ho_ly! /All\ the saints a_dore thee,/cast_ing down their gol_den crowns a_round the gla_ssy sea;/che_ru_bim and sera_phim /fall_ing down be_fore thee,/which wert and art and /e_ver_more shalt be.
|
||||||
|
E3:Ho_ly, ho_ly, ho_ly! /Though\ the dark_ness hide thee,/though the eye of sin_ful man thy glo_ry may not see,/on_ly thou art ho_ly;/there is none be_side thee,/per_fect in pow’r, in /love, and pu_ri_ty.
|
||||||
|
E4:Ho_ly, ho_ly, ho_ly! /Lord God Al_mi_ghty!/All thy works shall praise thy name in earth, and sky and sea./Ho_ly, ho_ly, ho_ly, /mer_ci_ful and mi_ghty! /God in three per_sons,/ble_ssed Tri_ni_ty!
|
||||||
10
composeApp/src/commonMain/resources/ews-7.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
M0:|c:G|m:6/4|r:7.8.7.8.7.6.7.6.7.6.7.6|t:7 - My Soul Now Praise Your Maker|n:15|l:11.5|a:Johann Poliander (1540); tr: Catherine Winkworth (1863: 1827-1878)|h:Johann Hans Kugelmann (1495-1542)|x:https://hymnary.org/page/fetch/LBoW1978/862/high|b:NUN LOB MEIN SEEL
|
||||||
|
T0:{:D|D:-:T!L:-:S|(D:-:R)!M:-/M|M:-:M!M:-:R|(D:R):T!D:-/D|D:-:T!L:-:S|(D:-:R)!M:-/M|M:-:M!M:-:R|(D:R):T!D:-/D|D:-:M!R:-:M|(D:-:T)!L:-/L|R:-:T!D:(L:T)|(S:-:D!D):Z/S|D:-:D!(R:T):R|(M:-.L:T)!D:-/D|F:-:F!M:-:M|(R:-:M!F):Z/R|M:-:M!F:-:F|(S:-:S)!D:-/M|R:-:T!D:(L:T)|(S:-:R!R):Z/S|D:-:T!L:-:S|(R:-:D)!R:-/M|F:-:R!(D:M):R|D:-:-!-:Z}
|
||||||
|
N1:ddt,l,s,drm/mmmmrd-t,d/ddt,l,s,drm/mmmmrd-t,d/ddmrmdt,l,/l,rt,dl,-s,--/s,ddr-rm--d/dffmmr--/rmmffs-d/mrt,dl,-s,--/sdt,l,s,r-r/mfmdmrd
|
||||||
|
N2:s,l,s,f,r,s,l,d/s,dt,l,rs,-t,s,/s,l,s,f,r,s,l,d/s,dt,l,rs,-t,s,/l,s,dt,ml,s,m,/l,l,s,s,s,F,r,--/m,m,s,l,-s,s,--l,/s,f,l,t,l,l,--/t,ddl,drt,d/s,l,s,s,-F,r,--/m,m,s,f,m,s,F,s,/s,f,s,l,d,t,s,
|
||||||
|
N3:mmrdt,dfs/mlmdfm-rm/mmrdt,dfs/mlmdfm-rm/frsssfrd/dfmmr-l,t,d/t,dddl,t,d--d/dl,rrDrmf/sslffrsm/dl,rmr-rl,t,/t,dmddrl,t,/dl,dfssm
|
||||||
|
N4:dl,m,f,s,m,r,d,/dl,s,l,r,m,f,s,d,/dl,m,f,s,m,r,d,/dl,s,l,r,m,f,s,d,/f,m,d,s,m,f,s,l,/f,r,m,d,r,-s,--/m,l,m,f,-s,d,r,m,f,/m,r,f,s,l,r,--/s,dl,rl,t,s,l,/m,f,s,d,r,-s,--/m,l,m,f,d,t,r,s,/d,r,m,f,m,s,d,
|
||||||
|
E1:My soul, now praise your Ma_ker!/Let all with_in me bless His name/Who makes you full par_ta_ker/Of mer_cies more than you dare claim./For_get Him not whose meek_ness/Still bears with all your sin,/Who heals your e_v'ry weak_ness,/Re_news your life with_in;/Whose grace and care are end_less/And saved you through the past;/Who leaves no suf_f'rer friend_less/But rights the wronged at last.
|
||||||
|
E2:He of_fers all His trea_sure/Of jus_tice, truth, and right_eous_ness,/His love bey_ond all mea_sure,/His year_ning pi_ty o'er dis_tress,/Nor treats us as we me_rit/But sets His an_ger by./The poor and cont_rite spi_rit/Finds His com_pas_sion nigh;/And high as heav'n a_bove us,/As dawn from close of day,/So far, since He has loved us,/He puts our sins a_way./
|
||||||
|
E3:For as a ten_der fa_ther/Has pi_ty on His chil_dren here,/God in His arms will ga_ther/All who are His in child_like fear./He knows how frail our pow_ers,/Who but from dust are made./We flou_rish like the flo_wers,/And e_ven so we fade;/The wind but through them pas_ses,/And all their bloom is o'er./We wi_ther like the gras_ses;/Our place knows us no more./
|
||||||
|
E4:His grace re_mains for_e_ver,/And chil_dren's chil_dren yet shall prove/That God for_sakes them ne_ver/Who in true fear shall seek His love./In heav'n is fixed His dwel_ling,/His rule is o_ver all;/O hosts with might ex_cel_ling,/With praise be_fore Him fall./Praise Him for_e_ver reig_ning,/All you who hear His Word/Our life and all sus_tain_ing./My soul, O praise the Lord!/
|
||||||
9
composeApp/src/commonMain/resources/ews-8.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:F|m:4/4|r:6.7.6.7.6.6.6.6|t:8 - Now thank we all our God|n:15|l:11.5|b:NUN DANKET|a:Johann Crüger, 1598-1662; harm. Felix Mendelssohn, 1809-1847|h:Martin Rinkart, 1586-1649; tr. Catherine Winkworth, 1827-1878|x:https://hymnary.org/tune/nun_danket_cruger_555665
|
||||||
|
T0:{:S|S:S!S:(D.R)|S:-!Z/(D.M)|(D.F):(D.S)!R:M|(D:L)!$QD/S|S:S!(D.T):L|S:-!Z/(R.D)|(R.M):M!(R.F):(R.S)|(R.L:T.D)!$QD/R|R:(R.T)!(M.D):(M.R)|R:-!Z/R|(M.F):S!(M.S):(M.L)|S:-!Z/(M.T)|L:(F.D)!F:M|F:-!Z/(F.R)|R:(F.M)!R:(F.F)|D:-|}
|
||||||
|
N1:sssll-s/s-f-m-rmr-d/sssl-ls/s-f-mr-m-r---d/rrr-m-m-r/rmFsl-f-s/s-ls-fmf/m-rd-dt,-d
|
||||||
|
N2:drddl,t,d/dt,l,t,d-t,ddt,d/drdd-dd/r-rdrrdt,T,t,-l,s,f,/s,l,t,l,s,-d-t,/rd-rd-t,-t,/t,-l,l,-l,Dr/dt,l,m,f,s,s,f,m,
|
||||||
|
N3:mrmfdrm/m-f-s-ssf-m/mrmf-fm/m-f-sr-t,-rdt,-d/t,rsfm-s-s/ss-ssfmRm/s-mrmfll/s-fdrmr-m
|
||||||
|
N4:dt,dff-d/d-r-mfsds,-d,/dT,T,l,s,f,d,/dt,l,-s,f,-m,-f,-s,-d,/s,f,s,-d,r,m,f,s,/t,d-t,l,-t,-m,/mrdt,drl,r,/m,-f,l,-s,s,-d,
|
||||||
|
E1:Now thank we all our God/with heart and hands and voi_ces,/who won_drous things has done,/in whom his world re_joi_ces;/who from our mo_thers' arms/has blessed us on our way/with count_less gifts of love,/and still is ours to_day./
|
||||||
|
E2:O may this boun_teous God/through all our life be near us,/with e_ver joy_ful hearts/and bles_sed peace to cheer us,/to keep us in his grace,/and guide us when per_plexed,/and free us from all ills/of this world in the next./
|
||||||
|
E3:All praise and thanks to God/the Fa_ther now be gi_ven,/the Son and Spi_rit blest,/who reign in high_est hea_ven/the one e_ter_nal God,/whom heaven and earth a_dore;/for thus it was, is now,/and shall be e_ver_more./
|
||||||
12
composeApp/src/commonMain/resources/ffpm-1-2.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
M0:|c:E|m:4/4|t:FFPM 1 - Andriananahary Masina indrindra|r:12.13.12.11|n:19|l:15|h:J.B.Dykes 1823-1876|a:R. Heber, 1783-1826. Nad. J.A. Houlder, 1844-1932
|
||||||
|
S0:/|:!
|
||||||
|
T0:{/D:D!M:M|(S:R)!(S:T)/L:(L.D)!L:L|(S:S)!M:-/S:(S.R)!S:S|D:D!T:S|R:S!L:-.S|S:-!-:-/D:D!M:M|[S:R]![S:R]/L:(L.R)!L:L|(S:S)!S:-/D:D!S:S|L:-!(M:R)/F:R!R:-.D|D:-!-:-}
|
||||||
|
N1:ddmms-s-/l-llls-m/s-sssd'd'tsrslss/ddmms-s-/l-llls-s/d'd'sslm-/frrdd
|
||||||
|
N2:s,s,ddt,rdt,/l,t,-drm-d/rr-mrdrrmrt,dt,t,/s,s,ddt,rdt,/l,t,-drm-d/ddddddT,/l,l,t,dd
|
||||||
|
N3:mmddrfms/fs-ltd'ss/ss-ssmFsstsFss/mmddrfms/fs-ltd'sm/mfsTls-/fffmm
|
||||||
|
N4:ddl,l,s,-d-/f,-f,ffd-d/t,-t,dt,l,l,t,drrrs,s,/ddl,l,s,-d-/f,-f,ffd-d/l,l,m,m,f,d-/f,f,s,dd
|
||||||
|
Y1:Andriananahary /masina indrindra!/Ny anjelinao izay mitoetra\ eo aminao/Mifamaly hoe_:/Masina indrindra/Andriananahary,/Telo\ Izay Iray.
|
||||||
|
Y2:Andriananahary/masina indrindra!/Na tsy hita aza\ izao ny voninahitrao!/Masina indrindra Hi_anao irery,/Andriananahary, Telo\ Izay Iray.
|
||||||
|
Y3:Zava-manana\ aina samy mankalaza/Sady manambara\ Anao\ izay Tompony izao;/Hianao irery _no mitahy azy,/Andriananahary, Telo\ Izay Iray.
|
||||||
|
Y4:Andriananahary feno hatsarana!/He ny fitahi_anao izay mpanomponao;/Tsara di_a tsara ny omenao azy,/Andriananahary, Telo\ Izay Iray.
|
||||||
|
Y5:Andriananahary masina indrindra/Izahay mpanomponao ta-hankalaza\ Anao;/Feno fahendrena, feno fi_antrana,/Andriananahary, Telo\ Izay Iray.
|
||||||
9
composeApp/src/commonMain/resources/ffpm-14.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:D|m:3/4|r:P.M.|t:FFPM 14 - O, Ry Tany Rehetra Avia Izao|a:Stef. Ramaka, 1874-1957|h:(Pilgrimssonger 1859)
|
||||||
|
U0:z8:2z114444444448/4 444 444 444 8/(2z11) 444 444 444 8/2z11(22)(22)(22) 44(22) 444 8/2z11 442z11 6z2/2z11 442z11 8/2z11 442z11 442z11 84 8
|
||||||
|
N1:sssmfsmdrdrm/mfflssmrfmr/mfsmfsd'slfls/mmrmfsltd'dsfmmrd/sssmmmf/fffrrrm/sd'tlflsmdrmrd
|
||||||
|
N2:mmmdrmddt,l,t,d/dddfmmdt,rdt,/drmdrmmmfffm/ddt,drmfrdddrddt,d/mmmdddr/rrrt,t,t,d/mmffdfmddddt,d
|
||||||
|
N3:sssssssmfmss/slld'd'd'sssss/sssssssd'd'd'd'd'/sss-s-s-mml-ssfm/sssssss/s7/d,7smlsfm
|
||||||
|
N4:d8s,3d/df,3d3s,t,ds,/d8flfd3s,-s,-s,-l,2f,-s,3d/d6t,/t,l,s,s,d3/ddfflfdddf,s,s,d
|
||||||
|
Y1:O ry tany rehetra, avi_a izao/Hidera ny Tompo Mpanavotra\ anao/Ny Tompo mi_antso antsika hankao/Anatrehany mba hohasoaviny ao!/Dera, laza ani_e, voninahi-dehibe/Ho Anao, ry Tomponay Tsitoha ô! Ame\n/
|
||||||
|
Y2:He, Jehova\h mi_antra antsika izao/Ka di_a manolotra\ antsika indray/Ny endriny mbamin’ny aina vaovao;/Eny, Izy manaiky toko_a ho Ray!
|
||||||
|
Y3:Asandrato ny fe_o hihoby ho_e:/Isaorana mandrakizay I_anao,/Ry Tompo mahery Izay manome/Ho anay olom-bery ny aina vaovao!
|
||||||
11
composeApp/src/commonMain/resources/ffpm-17.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
M0:|c:G|m:4/4|r:L.M. miadanadana|t:FFPM 17 - Haja Sy Voninahitra|a:Maintimolaly|h:
|
||||||
|
U0:z0:42244 4(22)8 4224(22) 4(22)8 422(222)2 (222)28 422(222)2 (22)(22)$Q(4$Q4) 42(11)44 4(22)8
|
||||||
|
N1:#t,ddrmsfmrm/mmmfmrdrtd/ddrmrdtdrmdr/mmfsfmslsfmmr/sssfmdrdtd
|
||||||
|
N2:m,#f,sssTls-s/ssllslss-s/sssstdss--m,s/ddrmrdmf'mrddt/sst-slls-s
|
||||||
|
N3:#s,ddtddddtd/dddddfmfrm/mdtds-fmrddt/z13/mdr-dmrmfm
|
||||||
|
N4:#d,dmsd'mfs-d/d'd'lrmfss-d/dms#s,drmrdtdd,s/z13/#d,dms-d'lfs-d
|
||||||
|
Y1:Haja sy voninahitra/Omena\ an'Andriamanitra,/Fa\ Izy\ ihany no mahefa/Izay sitraky ny fony/Izay sitraky ny fony
|
||||||
|
Y2:Masina, tsy\ azo\ haratsiana;/Mahery, tsy\ azo resena;/Marina, tsy\ azo laingaina;/Hendry tsy\ azo fitahina/Hendry tsy\ azo fitahina
|
||||||
|
Y3:Ny am-po toy ny am-bava;/Ny maizina toy\ ny mazava;/Ny takona toy ny mise\ho;/Tsy misy àry tsy\ hitany./Tsy misy àry tsy\ hitany.
|
||||||
|
Y4:Tsy mi_ova ny fombany;/Le\hibe ka tsy oharina;/Ti_a, tsy azo\ arovana;/Miantra tsy azo ferana/Miantra tsy azo ferana
|
||||||
|
Y5:Saotra\ amam-bavaka atao/Dera sy laza ho Azy;/Izy no ivavahana,/Fa\ anton'izao tontolo\ izao/Fa\ anton'izao tontolo\ izao
|
||||||
9
composeApp/src/commonMain/resources/ffpm-191.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:G|m:4/4|t:FFPM 191 - Ny Teny Sy Fanahinao|r:8.6.8.6.6.6.8.6|n:19|l:15|h:H.A. Brorson 1694-1764 Nad. C. Borchgrevink 1841-1919|a:P. Nilsen-Lund 1842-1914
|
||||||
|
T0:{:(S.F)|D:D!(R.S):(R.R)|M:M!F/(S.F)|M:M!F:(R.F)|D:-!${D.C.}-/(T.D)|R:(R.M)!(F.M):(R.D)|T:-!-/(R.M)|(F.M):(R.D)!T:L|S:-!-/(S.F)|D:D!(R.S):(R.T)|M:M!F/(S.F)|M:M!F:(R.F)|D:-!-}
|
||||||
|
N1:s,-ddr-r-mmfsfmmfr-d/t,drrmfmrdt,/rmfmrdt,l,s,/s,-ddr-r-mmfsfmmfr-d
|
||||||
|
N2:s,-s,s,l,s,f-s,dt,s,-s,drt,-d/s,-s,fms,dl,-s,/s,drdt,l,s,F,s,/s,-s,s,l,s,f,-s,dt,s,-s,drt,-d
|
||||||
|
N3:s,-s,mr-r-ddrr-mmlsfm/rdt,t,drmf,mr/rdt,drmrdt,/s,-s,mr-r-ddrr-mmlsfm
|
||||||
|
N4:s,f,mdf,s,l,t,dds,/t,-dl,f,s,-d/s,-s,s,-s,-r,-s,/s,-s,l,t,drr,s,/s,f,mdf,s,l,t,dds,/t,-dl,f,s,-d
|
||||||
|
Y1:Ny teny sy Fanahinao,/Ry Ray, mba avelao${D:Handroso tsara, hanavao Izao tontolo\ izao.}Mitombo, mihabe/Ny ratsy\ izao odre!/Fa vitsy ny mpanomponao/I\zay ifali_anao.
|
||||||
|
Y2:Vonje_o, ry Jesosy ô!/Ny fi_angonanao,${D:Fa misy marobe izao I\zay mody olonao.}Anefa tsy manao/I\zay tena sitrakao./O, ry Mpanjaka lehibe!/Mba mamonje anie.
|
||||||
|
Y3:Fanahy ô! Mba raisonao/I\zao vavakay izao;${D:Ny fonay mba havaozinao, Ny maso hazavao,}Hahafantaranay/Izay alehanay,/Mba hamo_azanay Izao/I\zay vo_a ti_anao.
|
||||||
7
composeApp/src/commonMain/resources/ffpm-194.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
M0:a:P Nilsen-Lund,1842-1914|h:P Nilsen-Lund,1842-1914|c:Bb|m:3/4 Miadanadana
|
||||||
|
T0:{:.,S|S.,S:S.,S:S.,S|M/D:D.,D|R:F:T.,T|D:${D.C.}-/D|T.,D:R:(D.,T)|D.,R:M/D|T.,D:R:(D.,T)|D.,R:${D.C.}M.:}
|
||||||
|
N1:s,s,s,s,s,s,s,mdddrft,t,ddt,drdt,drmdt,drdt,drm
|
||||||
|
N2:s,s,s,s,s,s,s,s,s,l,l,l,l,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,
|
||||||
|
N3:mmmmmmmdmmmrrrrmmrmfmrmrdmrmfmrmrd
|
||||||
|
N4:dddddddddl,l,f,r,s,s,dds,s,s,s,dddds,s,s,s,ddd
|
||||||
|
Y1:Andri_ananahary ô, Endrey ny voninahitrao!${D:Ny tany sy ny lanitra Mamelatra ny lazanao}/Ny asanao rehetra, e!Ny famonjena lehibe, ${D:Mitari-dalana anay, Hidera ny Anaranao}
|
||||||
11
composeApp/src/commonMain/resources/ffpm-440-1.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
M0:|c:A|m:4/4|r:C.M.|t:FFPM 440. Ry Kristy ô, Mpanjakako|n:19|l:15|a:Ralaikera|h:
|
||||||
|
S0:/:|!
|
||||||
|
T0:{|s:d.,r!m:-.m|(r.r):(r.t)!d:-.s|l:s!s:(f.d)|s:-!-:-/s:d.,r!m:-.m|(f.r):(r.t)!d:-.s|(s.f):-.(m,r)!d:(t.f)|d:-!-:-}
|
||||||
|
N1:s,drmmfrrt,ds,l,s,s,F,-s,/s,drmmfrrt,ds,l,fmrdt,-d
|
||||||
|
N2:m,m,f,s,s,s,-s,-s,s,f,s,s,r,-r,/s,s,s,s,s,s,-s,-s,s,f,l,dl,s,-f,m,
|
||||||
|
N3:dddddrt,t,fmdddt,l,dr,/mdt,ddrt,frmddrs,fmr-d
|
||||||
|
N4:d,d,d,d,d,s,-s,-d,m,f,m,r,r,-s,/d,m,r,d,d,s,-s,-d,m,f,r,m,f,s,s,-d,
|
||||||
|
Y1:Ry Kristy ô, Mpanjakako! Ny foko ho Anao/Ny fe_oko hasandratro Hihira ho Anao;
|
||||||
|
Y2:Mba raiso ny fanahiko Hanao ny sitrakao;/Ny tenako, ny heriko, Dia ento ho Anao.
|
||||||
|
Y3:Ny tongotro, ny tanako, Hiasa ho Anao;/Ny androko, ny volako, Omeko ho Anao
|
||||||
|
Y4:Izaho dia tsy mendrika Anao, ry Tompo ô!/Kanefa re, mba raisonao Ny foko ho Anao
|
||||||
8
composeApp/src/commonMain/resources/ffpm-539.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
M0:|c:E|m:6/4|r:Faingana|t:FFPM 539 - Faly dia faly izahay mpanomponao|n:15|l:11|a:J.A. Houlder 1844-192|h:(Plaistow, 67)
|
||||||
|
S0:/|:!
|
||||||
|
T0:{|M:-:M!(F:M):F|(S:-:D)!D:-:-|D:-:D!(R:D):R|(M:F):M!R:-:-/M:-:M!(F:M):F|(S:-:D)!D:-:-|M:-:M!(R:D):R|D:-:-!-:-:/S|S:-:F!(R:M):F|S:-:M!D:-:S|S:-:F!(R:M):F|S:-:M!D:-/S|L:-:F!D:-:L|S:-:M!D:-:S|(S:L):S!(S:F):M|(M:-:-!R):-:-/M:-:M!(F:M):F|(S:-:D)!D:-:-|D:-:D!(R:D):R|(M:F):M!R:-:-|M:-:M!(F:M):F|(S:-:D)!D:-:-|M:-:M!(R:D):R|D:-:-!-
|
||||||
|
N1:mmfmfsd'd'ddrdrmfmr/mmfmfsd'd'mmrdrd/ssfrmfsmdssfrmfsmd/slfd'lsmdsslssfmmr/mmfmfsd'd'ddrdrmfmr/mmfmfsd'd'mmrdrd
|
||||||
|
N2:ddrdrm-mddt,l,t,drdt,/ddrdrm-mddt,l,t,d/dt,t,t,drmds,dt,t,t,drms,s,/dddl,ddddmmfmr-ddt,/ddrdrm-mddt,l,t,drdt,/ddrdrm-mddt,l,t,d
|
||||||
|
N3:sss-sd'ssmms-ss-ss/sss-sd'sssss-fm/mrrfmrdsmmrrfmrdsm/mflffmsmsd'-ss-ss-/sss-sd'ssmms-ss-ss/sss-sd'sssss-fm
|
||||||
|
N4:ddd-dd-ddds,-s,-d-ds,/ddd-dd-ds,s,s,-s,d/ds,s,s,-s,dddds,s,s,-s,ddd/dddddddddd-dt,-ds,-/ddd-dd-ddds,-s,-d-ds,/ddd-dd-ds,s,s,-s,d
|
||||||
|
L1:Fa_ly _di__a _fa__ly _i_za_hay __mpa_no__mpo _nao,/Izay _mi_hi__ra _e__to _a_na_tre__ha_nao. _/Fa _be _fi_a__ntra _Hi_a_nao, _ry _Je_so _To__mpo _ti_a_nay!/Ka _fe_no _ha_ra_vo_a_na _to_ko__a _i__za_hay;
|
||||||
12
composeApp/src/commonMain/resources/ffpm-549.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
M0:|c:F|m:4/4 Faingampaingana|r:8 (im-10)|t:549. Jesosy no asandratro|n:19|l:15|a:Rajaobelona 1868-1938|h:P. Nilsen-Lund
|
||||||
|
S0:/|:!
|
||||||
|
T0:{:(D.R)|M:M!M.,R:M.,F|S:-!-/(D.R)|M:M!M.,S:F.,M|R:-!-/(D.R)|M:M!M.,R:M.,S|L:-!-/L|S.,M:D.,R!M:R|D:-!-/(R.M)|F:F!M.,M:R.,R|D:-!-/R|M:L!S.,S:F.,F|S:-!-/(D.R)|M:M!M.,R:M.,S|L:-!-/L|S.,M:D.,R!M:R|D:-!-/(R.M)|F:-!-:R|S.,L:S.,F!M/S|L.,L:S.,F!M:R|D:-!-}
|
||||||
|
N1:drmmmrmfs/drmmmsfmr/drmmmrmsl/lsmdrmrd/ rmffmmrrd/rmlssFFs/drmmmrmsl/lsmdrmrd/ rmfrslsfm/sllsfmrd
|
||||||
|
N2:d-dddt,drm/dt,drddrdt,/d-dds,s,ddd/ddddddt,d/ t,-d,ss,s,S,S,l,/t,dmrrddt,/d-dds,s,ddd/ddddddt,d/ t,drt,dddt,d/ddddrdt,d
|
||||||
|
N3:mfsssssss/mfsSllsss/mfssdrdmf/fssmlsfm/ s-frddmmm/ssd'ttlls/mfssdrdmf/fssmlsfm/ s-sssfsss/mffslsfm
|
||||||
|
N4:d-dmsfmrd/mrdt,l,l,t,ds,/d-dddt,l,s,f,/f,m,s,l,f,s,s,d,/ s,-l,t,ddt,t,l,/s,dl,rrrrs,/d-dddt,l,s,f,/f,m,s,l,f,s,s,d,/ s,-s,fmfmrd/dffmfss,d,
|
||||||
|
L1:Je_so_sy _no _a_san_dra_tro/Fa _I_zy _no _Mpa_na_vo_tro !/Ny _tà_na_ny _na_na_fa_ka/Ny _ai_ko _tao _an-_da_va_ka ;/Ny _ra_fi_ko _ho _ke_tra_ka,/I_za_ho _a_fa-_ke_na_tra/Fa _ma_na_na _ny _Tom_po_ko/'zay _man_da_ko _sy _a_ro_ko! /Ry _fo_ko _ô, _an_ka_la_zao/Je_so_sy, _'zay _Mpa_mon_ji_nao !/
|
||||||
|
L2:Ny _tsi_ron’_ny _fi_ai_na_na/A_na_na_ko _sa_ha_dy _re,/Fa _e_fa _mby _an-_tà_na_na/Ny _fa_mon_je_na _le_hi_be !/Ny _ra_no_n’ai_na _a_zo_ko,/Ny _mo_fo_n’ai_na _ha_ni_ko,/Sa_ka_fo _ma_ha_tan_ja_ka/Ma_me_lo_na _ny _re_ra_ka !
|
||||||
|
L3:Ny _ra_ny _no _an_ja_ra_ko,/Ny _ai_ny _no _fa_na_na_ko ;/Ny _la_ni_tra _ho _lo_va_ko,/Ny _ta_ny _dia _hi_lao_za_ko; /Ny _o ta _tsy _ha na ra ka/Ny _a dy _dia _ho _ta pa ka,/Ny _a lo ka _ho _ta pi tra/Fa _ao _ny _te na _za va tra!
|
||||||
|
L4:Ny _ha_ni_try _ny _la_ni_tra/Ma_me_ro_ve_ro _fa_tra_tra,/Ny _ka_lo_n’ny _vo_a_vo_tra/Ma_na_tsi_ka a_hy hi_a_ka_tra !/Ny _ta_va_n’ny _Mpa_mon_ji_ko/No _tsin_jo_n’ny _fa_na_hi_ko,/Ny _ta_va_ny _ma_na_fa_ka/Ny _hai_zi_na ao _a_na_ti_ko !
|
||||||
|
L5:Ny _ma_so_ko _mi_ban_ji_na/Ta_ha_ka _ny _mpi_a_mbi_na/Ma_ni_ry _ny _Mpa_mon_ji_ko/Ho _ta_fa_hao_na _a_mi_ko !/I_za_ho _ho_vim_bi_ni_ny/Hi_pe_tra_ka eo _a_ni_la_ny,/Ha_nao _ny _hi_ran-_da_ni_tra/Sy _ho_ni_na _fi_na_ri_tra !/
|
||||||
11
composeApp/src/commonMain/resources/ffpm-55.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
M0:|c:C|m:4/4|r:9.8.9.8.9.8|t:FFPM 55 - Ny Andron'ny Fahasoavana|a:N.F.S. Grundtvig, 1783-1872, Nad. I G. Torvik, 1871-1954|h:C.E.F. Weyese, 1774-1842
|
||||||
|
T0:{:d|m:m.m!s:s.s|d:l!s/m|l:s.s!f:r|m:-!r/s|s:s.s!l:l|t:d!r/r|s:s.s!t:d|(l:f)!s/s|m:m.m!f:s|l:l!s/s|d:d.d!t:d|(r:t)!$Qd}
|
||||||
|
N1:dmmmsssd'ls/mlssfrmr/sssslltd'r'/r'ssstd'l-s/smmmfslls/sd'd'd'td'r'-d'
|
||||||
|
N2:ddt,ddt,t,ddd/dddddrdt,/rmmrddt,ss/FssmsssFs/rrddddddd/rmmmrsf-m
|
||||||
|
N3:m(ssd)rffsfm/sffmdsss/ttd'ssFsst/lr'td'r'd'd'-t/sssssfffm/sld'd'sslts
|
||||||
|
N4:dds,l,s,rrmfd/df,s,s,l,t,ds,/smdt,l,rs,mr/dt,mdt,l,r-s,/t,ddT,l,s,f,l,d/t,l,lsfmfsd
|
||||||
|
Y1:Ny andron'ny fahaso_avana/Miposaka ho antsika/Manerana\ izao tontolo\ izao/Ny tarany efa hita/Ka ravo ny olombelona,/Fa lasa ny alintsika
|
||||||
|
Y2:Niova tery ny alina/Fa teraka ny Mpamonjy,/Mamiratra be ny lanitra/Miseho izao re ny vonjy,/Ka lasa tokoa ny aizina,/Mihoby ny vo_avonjy
|
||||||
|
Y3:Na dia ho nahay nihira re/Ny hazo an'ala rehetra,/Ka afa-mikalo ny ravina/Hidera ny Avo Indrindra,/Tsy ampy ho fanandratana/Ny Tompon'ny ain-drehetra.
|
||||||
|
Y4:Ny fe_on'ny olonao izao/Misandratra, ry Jehovah/Hidera ny fiti_avanao/Sy ny indrafonao so_a/Ni_aro ny fi_angonanao/Hatramin'ny fahagola.
|
||||||
|
Y5:Ho any an-tanindrazanay/I\zahay re, ry Ray Tsitoha,/Ka hiditra ao an-tranon-dRay/Nomanin'Ilay Mpialoha;/Ny olonao dia ho tafaray/Hidera Anao tokoa!
|
||||||
9
composeApp/src/commonMain/resources/ffpm-6.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
M0:|c:D|m:4/4|r:7.6.7.6.D|t:FFPM 6 - Avia Miondreha|a:Ramahandry|h:R. Whately, 1787-1863
|
||||||
|
U0:zC:4 6244 44z4/4 624(22) C/4 6244 44z4/4 4444 C/4 ${Do dia A}6244 44z4/4 4444 C/4 ${Do dia D}6244 44z4/4 4444 C
|
||||||
|
N1:smfsd'tl/smmmd-r/smfsd'tl/lsd'r'td'/sdrmfmr/rfrl,t,d/smfsd'tl/lsd'r'td'
|
||||||
|
N2:mdrmmff/mdddd-t, /rdrmmff/fmmfrm/dm, f, s, l, s, s, /s, t, s, f, s, s, /mdrmmff/fmmfrm
|
||||||
|
N3:sssssfd'/ssssmfs/sssssfd'/d'd'd'lss/mdddddt, /t, rt, drm/d'ssssfd'/d'd'd'tss
|
||||||
|
N4:dddddff/ddddd-s, /t,ddddff/fdlfsd/d, d, d, d, d, s, s, /s, s, s, s, s, d, /dddddff/fddssd
|
||||||
|
Y1:Avi_a, mi_ondreha,/Ry vazan-tany ô!/Fa lehibe Jehova\h,/Sy masina tokoa;/Mi_ankohofa tsara,/Manatona\ Azy ‘zao/Haneho fanajana/Ilay Mpanao anao./
|
||||||
|
Y2:Andri_ananahary,/Manaiky izahay/Fa Aminao ny hery/Tsy hay toherina./Tsy misy maharara/Ny ti_anao hatao,/Fa Hi_anao Mpitondra/Izao rehetra\ izao./
|
||||||
|
Y3:Re any lavitra\ any/Izao ny herinao,/Ka isam-bazan-tany/Hi_ondrika\ Aminao;/Mpanjaka sy Mpitsara/Mahery Hi_anao;/Mi_adana ny tany/Mi_ankina\ aminao./
|
||||||
8
composeApp/src/commonMain/resources/ffpm-8.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
M0:|c:E|m:4/4|r:8.7.8.7.DP|t:FFPM 8 - Dera Laza, Hery, Haja|a:R.G. Hartley 1836-1870|h:(Union Harmonist, p95)
|
||||||
|
U0:z0:${x3}62446244/6262448/${x0}6244624(22)/6262444/z22 ${m:2/4}422(2z11)4 422(2z11)4/ 422(22)(22)(22)2z11(44) 2z1122 211 22 2z112221122 (22)(22)(22)4 (22)(22)(22)4 (22)(22)(22)4 (22)(22)(22)22/(2z11)2244(2z11)2244 (2z11)22(22)(22)42z116
|
||||||
|
N1:drmdrmfr/mfsslrr/drmdrmfr/mfsfmrd/mrddfmrr/sfld'tls/mrddfmrr-/sslr'd'td'/sd'd'd'tls lllsfm/fmrmsd'tlsfmmrrmfrmm-zz rmfrmm-zz d'ltslFs lfsmfrm d'ltslFs lfsmfrms/sfmd'lsfmrsfm/sfmd'tlsfmrrd
|
||||||
|
N2:s,tds,t,drt,/dt,ddddt,/s,t,ds,t,drt,/dt,drdt,d/dt,l,l,rdt,t,/mrdrrdt,/dt,l,l,rdt,t,-/dddfmrm/dmmmrdt,dddd-s,/ddt,d-d- d-t,ddt,t,drt,dd-zz t,drt,dd-zzmdrt,dl,t,frmdrt,d mdrt,dl,t, frmdrt,ddddddddd-t,rrdd-ddd-drdt,t,d
|
||||||
|
N3:mssmssss/srsmfls/mssmssss/srslsfm/sslllltt/ttd'lsFs/sslllltt-/ssflsss/mssss-rfffmrd/lsssms- fssss- s-zzzsssms- zzzsssm zzzzzzzzzzzzzzzzzzzzzzzzzzzz/mmfssfm l-ttssmfsmf-sls-fm
|
||||||
|
N4:ds,dds,s,s,s,/drmdf,F,s,/ds,dds,s,s,s,/drmfss,d/ddffrrss/mmlFsrs,/ddffrrssf/mmfrss,d/ddmds-s,f,l,f,d-d/f,s,s,d-m- fmrds,-s-zzzssmds-zzzssmd z28/dd-dmfdr-s,s,ddd-dmf-mfss,s,d
|
||||||
|
Y1:Dera, laza, hery, haja,/Ho an’Andriamanitra/Tompon’aina, Zanahary,/Rain’ny voninahitra!/Izy no mpanao antsika/Sady ivelomana;/Fototr’aina, foto-tso_a,/Izy ivavahana/Hihira isika hoe: Halelo_ia,/Dera ho an’Andriamanitra!/Di_a Halelo_ia,_4Di_a Halelo_ia_4Halelo_ia Halelo_ia Halelo_ia Halelo_ia_/Hihira isika hoe: Halelo_ia,/Dera ho an’Andriamanitra!/
|
||||||
|
Y2:Ray Tsitoha, tsy mi_ova,/Ti_a sy mamindra fo,/Mahaso_a isan’andro,/Izy no isaorana!/Vatolampy tsy mifindra,/Tokin’olombelona;/Fi_arova-mahavonjy,/Izy itoki_ana/
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import kotlin.test.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
|
class ComposeAppCommonTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun example() {
|
||||||
|
assertEquals(3, 1 + 2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import mg.dot.feufaro.FileRepository
|
||||||
|
import java.io.File
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
|
// This is just a regular class that implements the common 'FileRepository' interface.
|
||||||
|
// It is NOT an 'actual' declaration of 'FileRepository'.
|
||||||
|
class DesktopFileRepository : FileRepository { // IMPORTS AND IMPLEMENTS THE commonMain 'FileRepository' interface
|
||||||
|
override suspend fun readFileLines(filePath: String): List<String> = withContext(Dispatchers.IO) {
|
||||||
|
try {
|
||||||
|
when {
|
||||||
|
filePath.startsWith("assets://") -> {
|
||||||
|
readAssetFileLines(filePath)
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
File(filePath).readLines()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: IOException) {
|
||||||
|
throw IOException("Failed to read file or asset '$filePath'")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
override suspend fun readFileContent(filePath: String): String = withContext(Dispatchers.IO) { "" }
|
||||||
|
private fun readAssetFileLines(assetFileName: String): List<String> {
|
||||||
|
return try {
|
||||||
|
//myApplicationContext.assets.open(filename.removePrefix("assets://")).bufferedReader().use {
|
||||||
|
object {}.javaClass.getResource("/"+assetFileName.removePrefix("assets://")).readText().split("\n")
|
||||||
|
|
||||||
|
} catch (e: IOException) {
|
||||||
|
throw IOException("Could not read asset file: $assetFileName", e)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
private fun readAssetFileContent(assetFileName: String): String {
|
||||||
|
return try {
|
||||||
|
//myApplicationContext.assets.open(filename.removePrefix("assets://")).bufferedReader().use {
|
||||||
|
object {}.javaClass.getResource("/"+assetFileName.removePrefix("assets://")).readText()
|
||||||
|
} catch (e: IOException) {
|
||||||
|
throw IOException("Could not read asset file: $assetFileName", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import mg.dot.feufaro.FileRepository
|
||||||
|
|
||||||
|
|
||||||
|
actual interface FileRepository {
|
||||||
|
actual suspend fun readFileLines(filePath: String): List<String>
|
||||||
|
actual suspend fun readFileContent(filePath: String): String
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
class JVMPlatform: Platform {
|
||||||
|
override val name: String = "Java ${System.getProperty("java.version")}"
|
||||||
|
}
|
||||||
|
|
||||||
|
actual fun getPlatform(): Platform = JVMPlatform()
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
package mg.dot.feufaro.di
|
||||||
|
|
||||||
|
import mg.dot.feufaro.DesktopFileRepository // Import the actual desktop implementation
|
||||||
|
import org.koin.core.module.dsl.singleOf // Import for Koin DSL
|
||||||
|
import org.koin.core.module.dsl.bind // Import for Koin DSL
|
||||||
|
import org.koin.dsl.module
|
||||||
|
import mg.dot.feufaro.FileRepository
|
||||||
|
|
||||||
|
val desktopModule = module {
|
||||||
|
// When Koin is initialized on Desktop, it will use DesktopFileRepository
|
||||||
|
// as the implementation for the FileRepository interface.
|
||||||
|
singleOf(::DesktopFileRepository) { bind<FileRepository>() }
|
||||||
|
}
|
||||||
26
composeApp/src/desktopMain/kotlin/mg/dot/feufaro/main.kt
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
package mg.dot.feufaro
|
||||||
|
|
||||||
|
import androidx.compose.ui.window.Window
|
||||||
|
import androidx.compose.ui.window.application
|
||||||
|
import mg.dot.feufaro.di.commonModule
|
||||||
|
import mg.dot.feufaro.di.desktopModule
|
||||||
|
import org.koin.core.context.GlobalContext.startKoin
|
||||||
|
import org.koin.core.logger.Level
|
||||||
|
|
||||||
|
fun main() = application {
|
||||||
|
startKoin {
|
||||||
|
printLogger(Level.INFO) // Mettez Level.INFO pour voir les logs de Koin
|
||||||
|
modules(commonModule, desktopModule) // Incluez seulement le module commun
|
||||||
|
}
|
||||||
|
|
||||||
|
// Testez l'injection
|
||||||
|
val fileRepository = org.koin.core.context.GlobalContext.get().get<FileRepository>()
|
||||||
|
println("FileRepository initialized for Desktop: $fileRepository")
|
||||||
|
|
||||||
|
Window(
|
||||||
|
onCloseRequest = ::exitApplication,
|
||||||
|
title = "Feufaro",
|
||||||
|
) {
|
||||||
|
App()
|
||||||
|
}
|
||||||
|
}
|
||||||
12
gradle.properties
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#Kotlin
|
||||||
|
kotlin.code.style=official
|
||||||
|
kotlin.daemon.jvmargs=-Xmx3072M
|
||||||
|
|
||||||
|
#Gradle
|
||||||
|
org.gradle.jvmargs=-Xmx3072M -Dfile.encoding=UTF-8
|
||||||
|
org.gradle.configuration-cache=true
|
||||||
|
org.gradle.caching=true
|
||||||
|
|
||||||
|
#Android
|
||||||
|
android.nonTransitiveRClass=true
|
||||||
|
android.useAndroidX=true
|
||||||
46
gradle/libs.versions.toml
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
[versions]
|
||||||
|
agp = "8.7.3"
|
||||||
|
android-compileSdk = "35"
|
||||||
|
android-minSdk = "24"
|
||||||
|
android-targetSdk = "35"
|
||||||
|
androidx-activity = "1.10.1"
|
||||||
|
androidx-appcompat = "1.7.1"
|
||||||
|
androidx-constraintlayout = "2.2.1"
|
||||||
|
androidx-core = "1.16.0"
|
||||||
|
androidx-espresso = "3.6.1"
|
||||||
|
androidx-lifecycle = "2.9.1"
|
||||||
|
androidx-testExt = "1.2.1"
|
||||||
|
composeHotReload = "1.0.0-alpha11"
|
||||||
|
composeMultiplatform = "1.8.2"
|
||||||
|
junit = "4.13.2"
|
||||||
|
kotlin = "2.2.0"
|
||||||
|
kotlinx-coroutines = "1.10.2"
|
||||||
|
#20250704
|
||||||
|
koin = "4.0.4"
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
|
||||||
|
kotlin-testJunit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
|
||||||
|
junit = { module = "junit:junit", version.ref = "junit" }
|
||||||
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
|
||||||
|
androidx-testExt-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-testExt" }
|
||||||
|
androidx-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx-espresso" }
|
||||||
|
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
|
||||||
|
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" }
|
||||||
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activity" }
|
||||||
|
androidx-lifecycle-viewmodel = { module = "org.jetbrains.androidx.lifecycle:lifecycle-viewmodel", version.ref = "androidx-lifecycle" }
|
||||||
|
androidx-lifecycle-runtimeCompose = { module = "org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidx-lifecycle" }
|
||||||
|
kotlinx-coroutinesSwing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "kotlinx-coroutines" }
|
||||||
|
#20250704
|
||||||
|
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
|
||||||
|
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }
|
||||||
|
koin-core-viewmodel = { module = "io.insert-koin:koin-core-viewmodel", version.ref = "koin" }
|
||||||
|
koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||||
|
androidLibrary = { id = "com.android.library", version.ref = "agp" }
|
||||||
|
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "composeHotReload" }
|
||||||
|
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
|
||||||
|
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
||||||
|
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
|
||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
7
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionPath=wrapper/dists
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
||||||
|
networkTimeout=10000
|
||||||
|
validateDistributionUrl=true
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
zipStorePath=wrapper/dists
|
||||||
252
gradlew
vendored
Normal file
|
|
@ -0,0 +1,252 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright © 2015-2021 the original authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Gradle start up script for POSIX generated by Gradle.
|
||||||
|
#
|
||||||
|
# Important for running:
|
||||||
|
#
|
||||||
|
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||||
|
# noncompliant, but you have some other compliant shell such as ksh or
|
||||||
|
# bash, then to run this script, type that shell name before the whole
|
||||||
|
# command line, like:
|
||||||
|
#
|
||||||
|
# ksh Gradle
|
||||||
|
#
|
||||||
|
# Busybox and similar reduced shells will NOT work, because this script
|
||||||
|
# requires all of these POSIX shell features:
|
||||||
|
# * functions;
|
||||||
|
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||||
|
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||||
|
# * compound commands having a testable exit status, especially «case»;
|
||||||
|
# * various built-in commands including «command», «set», and «ulimit».
|
||||||
|
#
|
||||||
|
# Important for patching:
|
||||||
|
#
|
||||||
|
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||||
|
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||||
|
#
|
||||||
|
# The "traditional" practice of packing multiple parameters into a
|
||||||
|
# space-separated string is a well documented source of bugs and security
|
||||||
|
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||||
|
# options in "$@", and eventually passing that to Java.
|
||||||
|
#
|
||||||
|
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||||
|
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||||
|
# see the in-line comments for details.
|
||||||
|
#
|
||||||
|
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||||
|
# Darwin, MinGW, and NonStop.
|
||||||
|
#
|
||||||
|
# (3) This script is generated from the Groovy template
|
||||||
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
|
# within the Gradle project.
|
||||||
|
#
|
||||||
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Attempt to set APP_HOME
|
||||||
|
|
||||||
|
# Resolve links: $0 may be a link
|
||||||
|
app_path=$0
|
||||||
|
|
||||||
|
# Need this for daisy-chained symlinks.
|
||||||
|
while
|
||||||
|
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||||
|
[ -h "$app_path" ]
|
||||||
|
do
|
||||||
|
ls=$( ls -ld "$app_path" )
|
||||||
|
link=${ls#*' -> '}
|
||||||
|
case $link in #(
|
||||||
|
/*) app_path=$link ;; #(
|
||||||
|
*) app_path=$APP_HOME$link ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# This is normally unused
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
APP_BASE_NAME=${0##*/}
|
||||||
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
|
||||||
|
' "$PWD" ) || exit
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
|
MAX_FD=maximum
|
||||||
|
|
||||||
|
warn () {
|
||||||
|
echo "$*"
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
die () {
|
||||||
|
echo
|
||||||
|
echo "$*"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false
|
||||||
|
msys=false
|
||||||
|
darwin=false
|
||||||
|
nonstop=false
|
||||||
|
case "$( uname )" in #(
|
||||||
|
CYGWIN* ) cygwin=true ;; #(
|
||||||
|
Darwin* ) darwin=true ;; #(
|
||||||
|
MSYS* | MINGW* ) msys=true ;; #(
|
||||||
|
NONSTOP* ) nonstop=true ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM.
|
||||||
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||||
|
else
|
||||||
|
JAVACMD=$JAVA_HOME/bin/java
|
||||||
|
fi
|
||||||
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD=java
|
||||||
|
if ! command -v java >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can.
|
||||||
|
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
|
case $MAX_FD in #(
|
||||||
|
max*)
|
||||||
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
|
warn "Could not query maximum file descriptor limit"
|
||||||
|
esac
|
||||||
|
case $MAX_FD in #(
|
||||||
|
'' | soft) :;; #(
|
||||||
|
*)
|
||||||
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
ulimit -n "$MAX_FD" ||
|
||||||
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Collect all arguments for the java command, stacking in reverse order:
|
||||||
|
# * args from the command line
|
||||||
|
# * the main class name
|
||||||
|
# * -classpath
|
||||||
|
# * -D...appname settings
|
||||||
|
# * --module-path (only if needed)
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||||
|
|
||||||
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
|
if "$cygwin" || "$msys" ; then
|
||||||
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||||
|
|
||||||
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||||
|
for arg do
|
||||||
|
if
|
||||||
|
case $arg in #(
|
||||||
|
-*) false ;; # don't mess with options #(
|
||||||
|
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||||
|
[ -e "$t" ] ;; #(
|
||||||
|
*) false ;;
|
||||||
|
esac
|
||||||
|
then
|
||||||
|
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||||
|
fi
|
||||||
|
# Roll the args list around exactly as many times as the number of
|
||||||
|
# args, so each arg winds up back in the position where it started, but
|
||||||
|
# possibly modified.
|
||||||
|
#
|
||||||
|
# NB: a `for` loop captures its iteration list before it begins, so
|
||||||
|
# changing the positional parameters here affects neither the number of
|
||||||
|
# iterations, nor the values presented in `arg`.
|
||||||
|
shift # remove old arg
|
||||||
|
set -- "$@" "$arg" # push replacement arg
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
|
# Collect all arguments for the java command:
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
|
# and any embedded shellness will be escaped.
|
||||||
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
||||||
|
set -- \
|
||||||
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-classpath "$CLASSPATH" \
|
||||||
|
org.gradle.wrapper.GradleWrapperMain \
|
||||||
|
"$@"
|
||||||
|
|
||||||
|
# Stop when "xargs" is not available.
|
||||||
|
if ! command -v xargs >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "xargs is not available"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use "xargs" to parse quoted args.
|
||||||
|
#
|
||||||
|
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||||
|
#
|
||||||
|
# In Bash we could simply go:
|
||||||
|
#
|
||||||
|
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||||
|
# set -- "${ARGS[@]}" "$@"
|
||||||
|
#
|
||||||
|
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||||
|
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||||
|
# character that might be a shell metacharacter, then use eval to reverse
|
||||||
|
# that process (while maintaining the separation between arguments), and wrap
|
||||||
|
# the whole thing up as a single "set" statement.
|
||||||
|
#
|
||||||
|
# This will of course break if any of these variables contains a newline or
|
||||||
|
# an unmatched quote.
|
||||||
|
#
|
||||||
|
|
||||||
|
eval "set -- $(
|
||||||
|
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||||
|
xargs -n1 |
|
||||||
|
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||||
|
tr '\n' ' '
|
||||||
|
)" '"$@"'
|
||||||
|
|
||||||
|
exec "$JAVACMD" "$@"
|
||||||
94
gradlew.bat
vendored
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
@rem
|
||||||
|
@rem Copyright 2015 the original author or authors.
|
||||||
|
@rem
|
||||||
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@rem you may not use this file except in compliance with the License.
|
||||||
|
@rem You may obtain a copy of the License at
|
||||||
|
@rem
|
||||||
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@rem
|
||||||
|
@rem Unless required by applicable law or agreed to in writing, software
|
||||||
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@rem See the License for the specific language governing permissions and
|
||||||
|
@rem limitations under the License.
|
||||||
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
|
@if "%DEBUG%"=="" @echo off
|
||||||
|
@rem ##########################################################################
|
||||||
|
@rem
|
||||||
|
@rem Gradle startup script for Windows
|
||||||
|
@rem
|
||||||
|
@rem ##########################################################################
|
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
|
set DIRNAME=%~dp0
|
||||||
|
if "%DIRNAME%"=="" set DIRNAME=.
|
||||||
|
@rem This is normally unused
|
||||||
|
set APP_BASE_NAME=%~n0
|
||||||
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
|
@rem Find java.exe
|
||||||
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
|
set JAVA_EXE=java.exe
|
||||||
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:findJavaFromJavaHome
|
||||||
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
|
|
||||||
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
|
@rem Execute Gradle
|
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||||
|
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||||
|
|
||||||
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
|
rem the _cmd.exe /c_ return code!
|
||||||
|
set EXIT_CODE=%ERRORLEVEL%
|
||||||
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||||
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||||
|
exit /b %EXIT_CODE%
|
||||||
|
|
||||||
|
:mainEnd
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
:omega
|
||||||
35
settings.gradle.kts
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
rootProject.name = "Feufaro"
|
||||||
|
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
||||||
|
|
||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
google {
|
||||||
|
mavenContent {
|
||||||
|
includeGroupAndSubgroups("androidx")
|
||||||
|
includeGroupAndSubgroups("com.android")
|
||||||
|
includeGroupAndSubgroups("com.google")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
gradlePluginPortal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencyResolutionManagement {
|
||||||
|
repositories {
|
||||||
|
google {
|
||||||
|
mavenContent {
|
||||||
|
includeGroupAndSubgroups("androidx")
|
||||||
|
includeGroupAndSubgroups("com.android")
|
||||||
|
includeGroupAndSubgroups("com.google")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
|
||||||
|
}
|
||||||
|
|
||||||
|
include(":composeApp")
|
||||||