diff options
author | SoniEx2 <endermoneymod@gmail.com> | 2025-03-08 11:32:33 -0300 |
---|---|---|
committer | SoniEx2 <endermoneymod@gmail.com> | 2025-03-08 11:32:33 -0300 |
commit | fee7157d84c3ce887a540be82dc7a7d2e0c8e368 (patch) | |
tree | c3e119fd761bdcfe6c500bda755ed571a5dd6c4c | |
parent | c97871470f0f3f224a95177ec84b3156b66f3ac4 (diff) |
Move things around default
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 |