summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorSoniEx2 <endermoneymod@gmail.com>2025-03-08 11:32:33 -0300
committerSoniEx2 <endermoneymod@gmail.com>2025-03-08 11:32:33 -0300
commitfee7157d84c3ce887a540be82dc7a7d2e0c8e368 (patch)
treec3e119fd761bdcfe6c500bda755ed571a5dd6c4c
parentc97871470f0f3f224a95177ec84b3156b66f3ac4 (diff)
Move things around default
-rw-r--r--src/client/kotlin/space/autistic/radio/client/antenna/AntennaModel.kt6
-rw-r--r--src/client/kotlin/space/autistic/radio/client/antenna/ConstAntennaModel.kt (renamed from src/client/kotlin/space/autistic/radio/client/antenna/NullModel.kt)4
-rw-r--r--src/client/kotlin/space/autistic/radio/client/antenna/WasmAntennaFactory.kt6
-rw-r--r--src/client/kotlin/space/autistic/radio/client/cli/OfflineSimulator.kt (renamed from src/main/kotlin/space/autistic/radio/cli/OfflineSimulator.kt)10
-rw-r--r--src/client/kotlin/space/autistic/radio/client/complex/Complex.kt (renamed from src/main/kotlin/space/autistic/radio/complex/Complex.kt)2
-rw-r--r--src/client/kotlin/space/autistic/radio/client/dsp/Biquad1stOrder.kt (renamed from src/main/kotlin/space/autistic/radio/dsp/Biquad1stOrder.kt)2
-rw-r--r--src/client/kotlin/space/autistic/radio/client/fmsim/FmFullConstants.kt (renamed from src/main/kotlin/space/autistic/radio/fmsim/FmFullConstants.kt)2
-rw-r--r--src/client/kotlin/space/autistic/radio/client/fmsim/FmFullDemodulator.kt (renamed from src/main/kotlin/space/autistic/radio/fmsim/FmFullDemodulator.kt)14
-rw-r--r--src/client/kotlin/space/autistic/radio/client/fmsim/FmFullMixer.kt4
-rw-r--r--src/client/kotlin/space/autistic/radio/client/fmsim/FmFullModulator.kt (renamed from src/main/kotlin/space/autistic/radio/fmsim/FmFullModulator.kt)11
-rw-r--r--src/client/kotlin/space/autistic/radio/client/irc/IRC.kt7
-rw-r--r--src/client/kotlin/space/autistic/radio/client/opus/OpusDecoder.kt (renamed from src/main/kotlin/space/autistic/radio/opus/OpusDecoder.kt)4
-rw-r--r--src/client/kotlin/space/autistic/radio/client/opus/OpusFactory.kt (renamed from src/main/kotlin/space/autistic/radio/opus/OpusFactory.kt)2
-rw-r--r--src/client/kotlin/space/autistic/radio/client/reflection/MemoryReflection.kt (renamed from src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt)2
-rw-r--r--src/main/kotlin/space/autistic/radio/fmsim/FmFullMixer.kt4
15 files changed, 45 insertions, 35 deletions
diff --git a/src/client/kotlin/space/autistic/radio/client/antenna/AntennaModel.kt b/src/client/kotlin/space/autistic/radio/client/antenna/AntennaModel.kt
index 74a7c96..c1f3e13 100644
--- a/src/client/kotlin/space/autistic/radio/client/antenna/AntennaModel.kt
+++ b/src/client/kotlin/space/autistic/radio/client/antenna/AntennaModel.kt
@@ -5,15 +5,15 @@ import org.joml.Vector3d
 interface AntennaModel {
     /**
      * Returns the linear power level/gain to apply for a receiver at the given position. The receiver is assumed to be
-     * vertically oriented.
+     * vertically oriented. The gain should scale with distance, as appropriate.
      *
      * Note: 1.0f = 0dB, 0.5f = -3dB (approx.), 0.1f = -10dB.
      */
     fun apply(position: Vector3d): Float
 
     /**
-     * Returns whether to process block/material attenuation. Useful for "global" antennas (i.e. those that return a
-     * constant for all positions given to [apply]).
+     * Returns whether to process block/material attenuation. Useful (when false) for "global" antennas (i.e. those that
+     * return a constant for all positions given to [apply]).
      */
     fun shouldAttenuate(): Boolean
 }
\ No newline at end of file
diff --git a/src/client/kotlin/space/autistic/radio/client/antenna/NullModel.kt b/src/client/kotlin/space/autistic/radio/client/antenna/ConstAntennaModel.kt
index 3c188b6..fc531d2 100644
--- a/src/client/kotlin/space/autistic/radio/client/antenna/NullModel.kt
+++ b/src/client/kotlin/space/autistic/radio/client/antenna/ConstAntennaModel.kt
@@ -2,9 +2,9 @@ package space.autistic.radio.client.antenna
 
 import org.joml.Vector3d
 
-class NullModel : AntennaModel {
+class ConstAntennaModel(private val level: Float) : AntennaModel {
     override fun apply(position: Vector3d): Float {
-        return 0f
+        return level
     }
 
     override fun shouldAttenuate(): Boolean {
diff --git a/src/client/kotlin/space/autistic/radio/client/antenna/WasmAntennaFactory.kt b/src/client/kotlin/space/autistic/radio/client/antenna/WasmAntennaFactory.kt
index 7181e95..51743dd 100644
--- a/src/client/kotlin/space/autistic/radio/client/antenna/WasmAntennaFactory.kt
+++ b/src/client/kotlin/space/autistic/radio/client/antenna/WasmAntennaFactory.kt
@@ -33,7 +33,7 @@ class WasmAntennaFactory(moduleBytes: ByteArray) : AntennaModelFactory {
 
     override fun create(orientation: Quaterniond): AntennaModel {
         if (failing) {
-            return NullModel()
+            return ConstAntennaModel(0f)
         }
         try {
             val instance = instanceBuilder!!.build()
@@ -57,7 +57,7 @@ class WasmAntennaFactory(moduleBytes: ByteArray) : AntennaModelFactory {
                     Level.SEVERE, "Error while trying to initialize antenna model: missing 'should-attenuate'"
                 )
                 failing = true
-                return NullModel()
+                return ConstAntennaModel(0f)
             }
             val shouldAttenuate = instance.exports().global("should-attenuate").value != 0L
             val apply = instance.export("apply")
@@ -86,7 +86,7 @@ class WasmAntennaFactory(moduleBytes: ByteArray) : AntennaModelFactory {
         } catch (e: ChicoryException) {
             logger.log(Level.SEVERE, "Error while trying to initialize antenna model.", e)
             failing = true
-            return NullModel()
+            return ConstAntennaModel(0f)
         }
     }
 
diff --git a/src/main/kotlin/space/autistic/radio/cli/OfflineSimulator.kt b/src/client/kotlin/space/autistic/radio/client/cli/OfflineSimulator.kt
index bc16814..68c4719 100644
--- a/src/main/kotlin/space/autistic/radio/cli/OfflineSimulator.kt
+++ b/src/client/kotlin/space/autistic/radio/client/cli/OfflineSimulator.kt
@@ -1,10 +1,10 @@
-package space.autistic.radio.cli
+package space.autistic.radio.client.cli
 
 import org.joml.Vector2f
-import space.autistic.radio.complex.cmul
-import space.autistic.radio.fmsim.FmFullConstants
-import space.autistic.radio.fmsim.FmFullDemodulator
-import space.autistic.radio.fmsim.FmFullModulator
+import space.autistic.radio.client.complex.cmul
+import space.autistic.radio.client.fmsim.FmFullConstants
+import space.autistic.radio.client.fmsim.FmFullDemodulator
+import space.autistic.radio.client.fmsim.FmFullModulator
 import java.io.FileInputStream
 import java.io.FileOutputStream
 import java.io.InputStream
diff --git a/src/main/kotlin/space/autistic/radio/complex/Complex.kt b/src/client/kotlin/space/autistic/radio/client/complex/Complex.kt
index 918dac2..7ca6811 100644
--- a/src/main/kotlin/space/autistic/radio/complex/Complex.kt
+++ b/src/client/kotlin/space/autistic/radio/client/complex/Complex.kt
@@ -1,4 +1,4 @@
-package space.autistic.radio.complex
+package space.autistic.radio.client.complex
 
 import org.joml.Vector2f
 import org.joml.Vector2fc
diff --git a/src/main/kotlin/space/autistic/radio/dsp/Biquad1stOrder.kt b/src/client/kotlin/space/autistic/radio/client/dsp/Biquad1stOrder.kt
index 8f86218..ddf5b7a 100644
--- a/src/main/kotlin/space/autistic/radio/dsp/Biquad1stOrder.kt
+++ b/src/client/kotlin/space/autistic/radio/client/dsp/Biquad1stOrder.kt
@@ -1,4 +1,4 @@
-package space.autistic.radio.dsp
+package space.autistic.radio.client.dsp
 
 class Biquad1stOrder(private val b0: Float, private val b1: Float, private val a1: Float) {
     private var delaySlot = 0f
diff --git a/src/main/kotlin/space/autistic/radio/fmsim/FmFullConstants.kt b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullConstants.kt
index 6b92328..f5a49ce 100644
--- a/src/main/kotlin/space/autistic/radio/fmsim/FmFullConstants.kt
+++ b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullConstants.kt
@@ -1,4 +1,4 @@
-package space.autistic.radio.fmsim
+package space.autistic.radio.client.fmsim
 
 import kotlin.math.PI
 import kotlin.math.cos
diff --git a/src/main/kotlin/space/autistic/radio/fmsim/FmFullDemodulator.kt b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullDemodulator.kt
index de44e69..7cf15af 100644
--- a/src/main/kotlin/space/autistic/radio/fmsim/FmFullDemodulator.kt
+++ b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullDemodulator.kt
@@ -1,11 +1,11 @@
-package space.autistic.radio.fmsim
+package space.autistic.radio.client.fmsim
 
 import org.joml.Vector2f
 import org.jtransforms.fft.FloatFFT_1D
-import space.autistic.radio.complex.I
-import space.autistic.radio.complex.cmul
-import space.autistic.radio.complex.conjugate
-import space.autistic.radio.dsp.Biquad1stOrder
+import space.autistic.radio.client.complex.I
+import space.autistic.radio.client.complex.cmul
+import space.autistic.radio.client.complex.conjugate
+import space.autistic.radio.client.dsp.Biquad1stOrder
 import java.nio.FloatBuffer
 import java.util.function.BiConsumer
 
@@ -145,6 +145,10 @@ class FmFullDemodulator {
         }
     }
 
+    fun flush(stereo: Boolean, consumer: BiConsumer<Boolean, FloatBuffer>) {
+        process(FloatBuffer.allocate(inputBuffer.remaining()), stereo, consumer)
+    }
+
     companion object {
         private val fft300k = FloatFFT_1D(FmFullConstants.FFT_SIZE_48K_300K.toLong())
         private val fft48k = FloatFFT_1D(FmFullConstants.FFT_SIZE_LPF_48K_15K_3K1.toLong())
diff --git a/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullMixer.kt b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullMixer.kt
new file mode 100644
index 0000000..567d93f
--- /dev/null
+++ b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullMixer.kt
@@ -0,0 +1,4 @@
+package space.autistic.radio.client.fmsim
+
+class FmFullMixer {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/space/autistic/radio/fmsim/FmFullModulator.kt b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullModulator.kt
index 1f3849e..65e208a 100644
--- a/src/main/kotlin/space/autistic/radio/fmsim/FmFullModulator.kt
+++ b/src/client/kotlin/space/autistic/radio/client/fmsim/FmFullModulator.kt
@@ -1,16 +1,15 @@
-package space.autistic.radio.fmsim
+package space.autistic.radio.client.fmsim
 
 import org.joml.Vector2f
-import space.autistic.radio.complex.cmul
-import space.autistic.radio.complex.conjugate
-import space.autistic.radio.dsp.Biquad1stOrder
+import space.autistic.radio.client.complex.cmul
+import space.autistic.radio.client.complex.conjugate
+import space.autistic.radio.client.dsp.Biquad1stOrder
 import java.nio.FloatBuffer
 import java.util.function.Consumer
 import org.jtransforms.fft.FloatFFT_1D
-import space.autistic.radio.complex.I
+import space.autistic.radio.client.complex.I
 import kotlin.math.max
 import kotlin.math.min
-import kotlin.math.sqrt
 
 class FmFullModulator {
     private val leftPlusRight = FloatBuffer.allocate(FmFullConstants.FFT_SIZE_LPF_48K_15K_3K1)
diff --git a/src/client/kotlin/space/autistic/radio/client/irc/IRC.kt b/src/client/kotlin/space/autistic/radio/client/irc/IRC.kt
new file mode 100644
index 0000000..ee9a99c
--- /dev/null
+++ b/src/client/kotlin/space/autistic/radio/client/irc/IRC.kt
@@ -0,0 +1,7 @@
+package space.autistic.radio.client.irc
+
+/**
+ * Internet Radio Client.
+ */
+class IRC {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/space/autistic/radio/opus/OpusDecoder.kt b/src/client/kotlin/space/autistic/radio/client/opus/OpusDecoder.kt
index 56fce2b..fe78393 100644
--- a/src/main/kotlin/space/autistic/radio/opus/OpusDecoder.kt
+++ b/src/client/kotlin/space/autistic/radio/client/opus/OpusDecoder.kt
@@ -1,7 +1,7 @@
-package space.autistic.radio.opus
+package space.autistic.radio.client.opus
 
 import com.dylibso.chicory.runtime.ByteBufferMemory
-import space.autistic.radio.reflection.getBuffer
+import space.autistic.radio.client.reflection.getBuffer
 import java.nio.ByteOrder
 
 class OpusDecoder(sampleRate: Int, private val channels: Int) {
diff --git a/src/main/kotlin/space/autistic/radio/opus/OpusFactory.kt b/src/client/kotlin/space/autistic/radio/client/opus/OpusFactory.kt
index 70e0c3c..1562a57 100644
--- a/src/main/kotlin/space/autistic/radio/opus/OpusFactory.kt
+++ b/src/client/kotlin/space/autistic/radio/client/opus/OpusFactory.kt
@@ -1,4 +1,4 @@
-package space.autistic.radio.opus
+package space.autistic.radio.client.opus
 
 import com.dylibso.chicory.experimental.aot.AotMachineFactory
 import com.dylibso.chicory.runtime.ImportValues
diff --git a/src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt b/src/client/kotlin/space/autistic/radio/client/reflection/MemoryReflection.kt
index 78961da..b1da224 100644
--- a/src/main/kotlin/space/autistic/radio/reflection/MemoryReflection.kt
+++ b/src/client/kotlin/space/autistic/radio/client/reflection/MemoryReflection.kt
@@ -1,4 +1,4 @@
-package space.autistic.radio.reflection
+package space.autistic.radio.client.reflection
 
 import com.dylibso.chicory.runtime.ByteBufferMemory
 import java.lang.invoke.MethodHandles
diff --git a/src/main/kotlin/space/autistic/radio/fmsim/FmFullMixer.kt b/src/main/kotlin/space/autistic/radio/fmsim/FmFullMixer.kt
deleted file mode 100644
index 654d50f..0000000
--- a/src/main/kotlin/space/autistic/radio/fmsim/FmFullMixer.kt
+++ /dev/null
@@ -1,4 +0,0 @@
-package space.autistic.radio.fmsim
-
-class FmFullMixer {
-}
\ No newline at end of file