From 144869511cd7c7e3f71d10d93fb1fe974fdc03b4 Mon Sep 17 00:00:00 2001
From: Chris7X <15891666+Chris7X@users.noreply.github.com>
Date: Sat, 4 Apr 2026 22:13:22 +0200
Subject: [PATCH 1/4] feat(voiceburst): Voice Burst - voice messages with
Codec2 compression
- Codec2 JNI integration for Android (arm64-v8a, x86_64)
- AudioRecorder/AudioPlayer interfaces
- VoiceBurstViewModel and UI button
- GPL-3.0 license headers
- All comments in English
---
feature/voiceburst/build.gradle.kts | 78 +++++
.../jniLibs/arm64-v8a/libcodec2.so | Bin 0 -> 1412248 bytes
.../jniLibs/arm64-v8a/libcodec2_jni.so | Bin 0 -> 60728 bytes
.../androidMain/jniLibs/x86_64/libcodec2.so | Bin 0 -> 1471072 bytes
.../jniLibs/x86_64/libcodec2_jni.so | Bin 0 -> 59896 bytes
.../geeksville/mesh/voiceburst/Codec2JNI.kt | 70 +++++
.../kotlin/org/meshtastic/codec2/Codec2Jni.kt | 54 ++++
.../voiceburst/audio/AndroidAudioPlayer.kt | 166 ++++++++++
.../voiceburst/audio/AndroidAudioRecorder.kt | 163 ++++++++++
.../voiceburst/codec/AndroidCodec2Encoder.kt | 289 ++++++++++++++++++
.../di/FeatureVoiceBurstAndroidModule.kt | 89 ++++++
.../repository/AndroidVoiceBurstRepository.kt | 247 +++++++++++++++
.../codec/AndroidCodec2EncoderTest.kt | 235 ++++++++++++++
.../feature/voiceburst/audio/AudioPlayer.kt | 43 +++
.../feature/voiceburst/audio/AudioRecorder.kt | 57 ++++
.../feature/voiceburst/codec/Codec2Encoder.kt | 56 ++++
.../voiceburst/di/FeatureVoiceBurstModule.kt | 33 ++
.../voiceburst/model/VoiceBurstPayload.kt | 127 ++++++++
.../voiceburst/model/VoiceBurstState.kt | 85 ++++++
.../repository/VoiceBurstRepository.kt | 68 +++++
.../feature/voiceburst/ui/VoiceBurstButton.kt | 150 +++++++++
.../voiceburst/ui/VoiceBurstViewModel.kt | 288 +++++++++++++++++
22 files changed, 2298 insertions(+)
create mode 100644 feature/voiceburst/build.gradle.kts
create mode 100644 feature/voiceburst/src/androidMain/jniLibs/arm64-v8a/libcodec2.so
create mode 100644 feature/voiceburst/src/androidMain/jniLibs/arm64-v8a/libcodec2_jni.so
create mode 100644 feature/voiceburst/src/androidMain/jniLibs/x86_64/libcodec2.so
create mode 100644 feature/voiceburst/src/androidMain/jniLibs/x86_64/libcodec2_jni.so
create mode 100644 feature/voiceburst/src/androidMain/kotlin/com/geeksville/mesh/voiceburst/Codec2JNI.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/codec2/Codec2Jni.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/feature/voiceburst/audio/AndroidAudioPlayer.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/feature/voiceburst/audio/AndroidAudioRecorder.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/feature/voiceburst/codec/AndroidCodec2Encoder.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/feature/voiceburst/di/FeatureVoiceBurstAndroidModule.kt
create mode 100644 feature/voiceburst/src/androidMain/kotlin/org/meshtastic/feature/voiceburst/repository/AndroidVoiceBurstRepository.kt
create mode 100644 feature/voiceburst/src/androidUnitTest/kotlin/org/meshtastic/feature/voiceburst/codec/AndroidCodec2EncoderTest.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/audio/AudioPlayer.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/audio/AudioRecorder.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/codec/Codec2Encoder.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/di/FeatureVoiceBurstModule.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/model/VoiceBurstPayload.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/model/VoiceBurstState.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/repository/VoiceBurstRepository.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/ui/VoiceBurstButton.kt
create mode 100644 feature/voiceburst/src/commonMain/kotlin/org/meshtastic/feature/voiceburst/ui/VoiceBurstViewModel.kt
diff --git a/feature/voiceburst/build.gradle.kts b/feature/voiceburst/build.gradle.kts
new file mode 100644
index 0000000000..1e790269f6
--- /dev/null
+++ b/feature/voiceburst/build.gradle.kts
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2026 Meshtastic LLC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import java.io.File
+
+plugins {
+ alias(libs.plugins.meshtastic.kmp.feature)
+ alias(libs.plugins.meshtastic.kotlinx.serialization)
+}
+
+// ─── Codec2 JNI detection ─────────────────────────────────────────
+val codec2SoArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2.so")
+val codec2JniArm64 = File(projectDir, "src/androidMain/jniLibs/arm64-v8a/libcodec2_jni.so")
+val codec2Available = codec2SoArm64.exists() && codec2JniArm64.exists()
+
+if (codec2Available) {
+ logger.lifecycle(":feature:voiceburst — libcodec2.so + libcodec2_jni.so trovate")
+} else {
+ logger.lifecycle(":feature:voiceburst — .so assenti → stub mode (esegui scripts/build_codec2.sh)")
+}
+
+kotlin {
+ jvm()
+
+ @Suppress("UnstableApiUsage")
+ android {
+ namespace = "org.meshtastic.feature.voiceburst"
+ androidResources.enable = false
+ withHostTest { isIncludeAndroidResources = true }
+ }
+
+ sourceSets {
+ commonMain.dependencies {
+ implementation(projects.core.common)
+ implementation(projects.core.data)
+ implementation(projects.core.datastore)
+ implementation(projects.core.model)
+ implementation(projects.core.navigation)
+ implementation(projects.core.proto)
+ implementation(projects.core.repository)
+ implementation(projects.core.service)
+ implementation(projects.core.ui)
+ implementation(projects.core.di)
+
+ implementation(libs.kotlinx.collections.immutable)
+ }
+
+ androidUnitTest.dependencies {
+ implementation(libs.junit)
+ implementation(libs.robolectric)
+ implementation(libs.turbine)
+ implementation(libs.kotlinx.coroutines.test)
+ implementation(libs.androidx.test.ext.junit)
+ }
+
+ commonTest.dependencies {
+ implementation(project(":core:testing"))
+ }
+ }
+}
+
+// ─── NESSUN externalNativeBuild ───────────────────────────────────
+// Le .so prebuilt in jniLibs/ vengono incluse automaticamente da AGP.
+// Il JNI wrapper è compilato da scripts/build_codec2.sh.
\ No newline at end of file
diff --git a/feature/voiceburst/src/androidMain/jniLibs/arm64-v8a/libcodec2.so b/feature/voiceburst/src/androidMain/jniLibs/arm64-v8a/libcodec2.so
new file mode 100644
index 0000000000000000000000000000000000000000..57c83581d2eda9e472a25d6b5bc41086f1be6f4e
GIT binary patch
literal 1412248
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