Refactor/unify modules files structure

This commit is contained in:
2020-03-20 20:29:25 +01:00
parent 730d3803f0
commit 7bccb28080
50 changed files with 138 additions and 96 deletions

View File

@@ -1,4 +1,4 @@
package io.smnp.ext package io.smnp.ext.provider
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.method.Method import io.smnp.callable.method.Method

View File

@@ -1,4 +1,4 @@
package io.smnp.ext package io.smnp.ext.provider
import io.smnp.interpreter.LanguageModuleInterpreter import io.smnp.interpreter.LanguageModuleInterpreter
import io.smnp.type.module.Module import io.smnp.type.module.Module

View File

@@ -1,4 +1,4 @@
package io.smnp.ext package io.smnp.ext.provider
import io.smnp.environment.Environment import io.smnp.environment.Environment
import io.smnp.interpreter.LanguageModuleInterpreter import io.smnp.interpreter.LanguageModuleInterpreter

View File

@@ -1,7 +1,8 @@
package io.smnp.ext package io.smnp.ext.provider
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.method.Method import io.smnp.callable.method.Method
import io.smnp.ext.provider.ModuleProvider
import io.smnp.interpreter.LanguageModuleInterpreter import io.smnp.interpreter.LanguageModuleInterpreter
import io.smnp.type.module.Module import io.smnp.type.module.Module

View File

@@ -1,6 +1,7 @@
package io.smnp.ext package io.smnp.ext.registry
import io.smnp.environment.Environment import io.smnp.environment.Environment
import io.smnp.ext.provider.ModuleProvider
interface ModuleRegistry { interface ModuleRegistry {
fun requestModuleProviderForPath(path: String): ModuleProvider? fun requestModuleProviderForPath(path: String): ModuleProvider?

View File

@@ -8,7 +8,7 @@ import io.smnp.environment.DefaultEnvironment
import io.smnp.error.EnvironmentException import io.smnp.error.EnvironmentException
import io.smnp.error.PositionException import io.smnp.error.PositionException
import io.smnp.error.SmnpException import io.smnp.error.SmnpException
import io.smnp.ext.DefaultModuleRegistry import io.smnp.ext.registry.DefaultModuleRegistry
import io.smnp.interpreter.DefaultInterpreter import io.smnp.interpreter.DefaultInterpreter
import io.smnp.preset.PresetProvider.providePresetCode import io.smnp.preset.PresetProvider.providePresetCode
import io.smnp.type.model.Value import io.smnp.type.model.Value

View File

@@ -5,9 +5,9 @@ import io.smnp.callable.method.Method
import io.smnp.callable.signature.ActualSignatureFormatter.format import io.smnp.callable.signature.ActualSignatureFormatter.format
import io.smnp.error.FunctionInvocationException import io.smnp.error.FunctionInvocationException
import io.smnp.error.MethodInvocationException import io.smnp.error.MethodInvocationException
import io.smnp.ext.DefaultModuleRegistry import io.smnp.ext.registry.DefaultModuleRegistry
import io.smnp.ext.DefaultModuleRegistry.requestModuleProviderForPath import io.smnp.ext.registry.DefaultModuleRegistry.requestModuleProviderForPath
import io.smnp.ext.ModuleProvider import io.smnp.ext.provider.ModuleProvider
import io.smnp.interpreter.DefaultLanguageModuleInterpreter import io.smnp.interpreter.DefaultLanguageModuleInterpreter
import io.smnp.runtime.model.CallStack import io.smnp.runtime.model.CallStack
import io.smnp.type.model.Value import io.smnp.type.model.Value

View File

@@ -1,7 +1,8 @@
package io.smnp.ext package io.smnp.ext.registry
import io.smnp.environment.Environment import io.smnp.environment.Environment
import io.smnp.error.ModuleException import io.smnp.error.ModuleException
import io.smnp.ext.provider.ModuleProvider
import org.pf4j.DefaultPluginManager import org.pf4j.DefaultPluginManager
import java.nio.file.Paths import java.nio.file.Paths

View File

@@ -1,5 +1,6 @@
package io.smnp.ext package io.smnp.ext.collection
import io.smnp.ext.provider.LanguageModuleProvider
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,6 +1,7 @@
package io.smnp.ext package io.smnp.ext.debug
import io.smnp.ext.function.StackTraceFuction import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.debug.function.StackTraceFuction
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.debug.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,6 +1,6 @@
package io.smnp.ext.io package io.smnp.ext.io
import io.smnp.ext.NativeModuleProvider import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.io.function.PrintlnFunction import io.smnp.ext.io.function.PrintlnFunction
import io.smnp.ext.io.function.ReadFunction import io.smnp.ext.io.function.ReadFunction
import org.pf4j.Extension import org.pf4j.Extension

View File

@@ -1,6 +1,6 @@
package io.smnp.ext.lang package io.smnp.ext.lang
import io.smnp.ext.NativeModuleProvider import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.lang.constructor.IntConstructor import io.smnp.ext.lang.constructor.IntConstructor
import io.smnp.ext.lang.constructor.NoteConstructor import io.smnp.ext.lang.constructor.NoteConstructor
import io.smnp.ext.lang.function.TypeOfFunction import io.smnp.ext.lang.function.TypeOfFunction

View File

@@ -1,12 +0,0 @@
package io.smnp.ext
import io.smnp.ext.function.ModuloFunction
import io.smnp.ext.function.RandomFunction
import io.smnp.ext.function.RangeFunction
import org.pf4j.Extension
@Extension
class MathModule : HybridModuleProvider("smnp.math") {
override fun functions() = listOf(ModuloFunction(), RangeFunction(), RandomFunction())
override fun dependencies() = listOf("smnp.lang", "smnp.collection")
}

View File

@@ -0,0 +1,16 @@
package io.smnp.ext.math
import io.smnp.ext.provider.HybridModuleProvider
import io.smnp.ext.math.function.ModuloFunction
import io.smnp.ext.math.function.RandomFunction
import io.smnp.ext.math.function.RangeFunction
import org.pf4j.Extension
@Extension
class MathModule : HybridModuleProvider("smnp.math") {
override fun functions() = listOf(
ModuloFunction(), RangeFunction(),
RandomFunction()
)
override fun dependencies() = listOf("smnp.lang", "smnp.collection")
}

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.math.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.math.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.math.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,7 +1,8 @@
package io.smnp.ext package io.smnp.ext.mic
import io.smnp.ext.function.MicLevelFunction import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.function.WaitFunction import io.smnp.ext.mic.function.MicLevelFunction
import io.smnp.ext.mic.function.WaitFunction
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,9 +1,9 @@
package io.smnp.ext.function package io.smnp.ext.mic.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature.Companion.simple import io.smnp.callable.signature.Signature.Companion.simple
import io.smnp.ext.mic.TestMicrophoneLevelLoop import io.smnp.ext.mic.lib.loop.TestMicrophoneLevelLoop
import io.smnp.type.model.Value import io.smnp.type.model.Value
class MicLevelFunction : Function("micLevel") { class MicLevelFunction : Function("micLevel") {

View File

@@ -1,9 +1,9 @@
package io.smnp.ext.function package io.smnp.ext.mic.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature.Companion.simple import io.smnp.callable.signature.Signature.Companion.simple
import io.smnp.ext.mic.SoundListenerLoop import io.smnp.ext.mic.lib.loop.SoundListenerLoop
import io.smnp.type.enumeration.DataType.INT import io.smnp.type.enumeration.DataType.INT
import io.smnp.type.matcher.Matcher.Companion.ofType import io.smnp.type.matcher.Matcher.Companion.ofType
import io.smnp.type.model.Value import io.smnp.type.model.Value
@@ -11,7 +11,10 @@ import io.smnp.type.model.Value
class WaitFunction : Function("wait") { class WaitFunction : Function("wait") {
override fun define(new: FunctionDefinitionTool) { override fun define(new: FunctionDefinitionTool) {
new function simple(ofType(INT), ofType(INT)) body { _, (inThreshold, outThreshold) -> new function simple(ofType(INT), ofType(INT)) body { _, (inThreshold, outThreshold) ->
val loop = SoundListenerLoop(inThreshold.value as Int, outThreshold.value as Int) val loop = SoundListenerLoop(
inThreshold.value as Int,
outThreshold.value as Int
)
loop.run() loop.run()
Value.void() Value.void()
} }

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.mic package io.smnp.ext.mic.lib.loop
import io.smnp.error.CustomException import io.smnp.error.CustomException
import javax.sound.sampled.AudioFormat import javax.sound.sampled.AudioFormat

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.mic package io.smnp.ext.mic.lib.loop
class SoundListenerLoop(private val inThreshold: Int, private val outThreshold: Int) : MicrophoneLevelLoop() { class SoundListenerLoop(private val inThreshold: Int, private val outThreshold: Int) : MicrophoneLevelLoop() {
private var noiseReached = false private var noiseReached = false

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.mic package io.smnp.ext.mic.lib.loop
import kotlin.math.min import kotlin.math.min

View File

@@ -1,9 +1,10 @@
package io.smnp.ext package io.smnp.ext.midi
import io.smnp.environment.Environment import io.smnp.environment.Environment
import io.smnp.ext.function.MidiFunction import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.function.MidiHelpFunction import io.smnp.ext.midi.function.MidiFunction
import io.smnp.ext.midi.Midi import io.smnp.ext.midi.function.MidiHelpFunction
import io.smnp.ext.midi.lib.midi.Midi
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,11 +1,11 @@
package io.smnp.ext.function package io.smnp.ext.midi.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature.Companion.simple import io.smnp.callable.signature.Signature.Companion.simple
import io.smnp.callable.signature.Signature.Companion.vararg import io.smnp.callable.signature.Signature.Companion.vararg
import io.smnp.error.CustomException import io.smnp.error.CustomException
import io.smnp.ext.midi.Midi import io.smnp.ext.midi.lib.midi.Midi
import io.smnp.type.enumeration.DataType.* import io.smnp.type.enumeration.DataType.*
import io.smnp.type.matcher.Matcher.Companion.anyType import io.smnp.type.matcher.Matcher.Companion.anyType
import io.smnp.type.matcher.Matcher.Companion.listOf import io.smnp.type.matcher.Matcher.Companion.listOf

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.midi.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
@@ -6,7 +6,7 @@ import io.smnp.callable.signature.Signature.Companion.simple
import io.smnp.data.entity.Note import io.smnp.data.entity.Note
import io.smnp.data.enumeration.Pitch import io.smnp.data.enumeration.Pitch
import io.smnp.error.CustomException import io.smnp.error.CustomException
import io.smnp.ext.midi.Midi import io.smnp.ext.midi.lib.midi.Midi
import io.smnp.math.Fraction import io.smnp.math.Fraction
import io.smnp.type.enumeration.DataType.* import io.smnp.type.enumeration.DataType.*
import io.smnp.type.matcher.Matcher.Companion.ofType import io.smnp.type.matcher.Matcher.Companion.ofType

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.midi package io.smnp.ext.midi.lib.compiler
import io.smnp.data.entity.Note import io.smnp.data.entity.Note
import javax.sound.midi.Track import javax.sound.midi.Track

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.midi package io.smnp.ext.midi.lib.compiler
import io.smnp.data.entity.Note import io.smnp.data.entity.Note
import javax.sound.midi.Track import javax.sound.midi.Track

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.midi package io.smnp.ext.midi.lib.compiler
import io.smnp.data.entity.Note import io.smnp.data.entity.Note
import io.smnp.error.EvaluationException import io.smnp.error.EvaluationException
@@ -91,7 +91,10 @@ abstract class SequenceCompiler {
} }
private fun allNotesOff(channel: Int, tick: Long): MidiEvent { private fun allNotesOff(channel: Int, tick: Long): MidiEvent {
return event(Command.CONTROL_CHANGE, channel, Data1.ALL_NOTES_OFF, Data2.ZERO, tick) return event(
Command.CONTROL_CHANGE, channel,
Data1.ALL_NOTES_OFF,
Data2.ZERO, tick)
} }
private fun event(command: Int, channel: Int, data1: Int, data2: Int, tick: Long): MidiEvent { private fun event(command: Int, channel: Int, data1: Int, data2: Int, tick: Long): MidiEvent {

View File

@@ -1,5 +1,8 @@
package io.smnp.ext.midi package io.smnp.ext.midi.lib.midi
import io.smnp.ext.midi.lib.compiler.DefaultSequenceCompiler
import io.smnp.ext.midi.lib.compiler.PpqSequenceCompiler
import io.smnp.ext.midi.lib.compiler.SequenceCompiler
import io.smnp.util.config.ConfigMap import io.smnp.util.config.ConfigMap
import java.io.File import java.io.File
import javax.sound.midi.MidiSystem import javax.sound.midi.MidiSystem
@@ -29,12 +32,17 @@ object Midi {
} }
fun with(config: ConfigMap): SequenceExecutor { fun with(config: ConfigMap): SequenceExecutor {
return SequenceExecutor(sequencer, config) return SequenceExecutor(
sequencer,
config
)
} }
class SequenceExecutor(private val sequencer: Sequencer, private val config: ConfigMap) { class SequenceExecutor(private val sequencer: Sequencer, private val config: ConfigMap) {
fun play(lines: List<List<Any>>) { fun play(lines: List<List<Any>>) {
val sequence = Sequence(Sequence.PPQ, config.getUnwrappedOrDefault("ppq", DEFAULT_PPQ)) val sequence = Sequence(Sequence.PPQ, config.getUnwrappedOrDefault("ppq",
DEFAULT_PPQ
))
provideCompiler(config).compileLines(lines, sequence) provideCompiler(config).compileLines(lines, sequence)
play(sequence) play(sequence)
writeToFile(sequence) writeToFile(sequence)
@@ -59,7 +67,9 @@ object Midi {
} }
fun play(channels: Map<Int, List<List<Any>>>) { fun play(channels: Map<Int, List<List<Any>>>) {
val sequence = Sequence(Sequence.PPQ, config.getUnwrappedOrDefault("ppq", DEFAULT_PPQ)) val sequence = Sequence(Sequence.PPQ, config.getUnwrappedOrDefault("ppq",
DEFAULT_PPQ
))
provideCompiler(config).compileChannels(channels, sequence) provideCompiler(config).compileChannels(channels, sequence)
play(sequence) play(sequence)
writeToFile(sequence) writeToFile(sequence)

View File

@@ -1,6 +1,6 @@
package io.smnp.ext.musictools package io.smnp.ext.musictools
import io.smnp.ext.LanguageModuleProvider import io.smnp.ext.provider.LanguageModuleProvider
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,5 +1,6 @@
package io.smnp.ext package io.smnp.ext.music
import io.smnp.ext.provider.LanguageModuleProvider
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,9 +1,10 @@
package io.smnp.ext package io.smnp.ext.synth
import io.smnp.environment.Environment import io.smnp.environment.Environment
import io.smnp.ext.function.SynthFunction import io.smnp.ext.provider.HybridModuleProvider
import io.smnp.ext.function.WaveFunction import io.smnp.ext.synth.function.SynthFunction
import io.smnp.ext.synth.Synthesizer import io.smnp.ext.synth.function.WaveFunction
import io.smnp.ext.synth.lib.synthesizer.Synthesizer
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension

View File

@@ -1,12 +1,12 @@
package io.smnp.ext.function package io.smnp.ext.synth.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature import io.smnp.callable.signature.Signature
import io.smnp.callable.signature.Signature.Companion.simple import io.smnp.callable.signature.Signature.Companion.simple
import io.smnp.ext.synth.Synthesizer import io.smnp.ext.synth.lib.synthesizer.Synthesizer
import io.smnp.ext.synth.Wave import io.smnp.ext.synth.lib.wave.Wave
import io.smnp.ext.synth.WaveCompiler import io.smnp.ext.synth.lib.wave.WaveCompiler
import io.smnp.type.enumeration.DataType import io.smnp.type.enumeration.DataType
import io.smnp.type.enumeration.DataType.INT import io.smnp.type.enumeration.DataType.INT
import io.smnp.type.matcher.Matcher import io.smnp.type.matcher.Matcher
@@ -26,14 +26,20 @@ class SynthFunction : Function("synth") {
listOf(DataType.NOTE, INT, DataType.STRING), listOf(DataType.NOTE, INT, DataType.STRING),
Matcher.mapOfMatchers(Matcher.ofType(DataType.STRING), Matcher.anyType()) Matcher.mapOfMatchers(Matcher.ofType(DataType.STRING), Matcher.anyType())
) body { _, (config, vararg) -> ) body { _, (config, vararg) ->
val compiler = WaveCompiler(config, Synthesizer.SAMPLING_RATE) val compiler = WaveCompiler(
config,
Synthesizer.SAMPLING_RATE
)
val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>) val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>)
Synthesizer.synth(wave) Synthesizer.synth(wave)
Value.void() Value.void()
} }
new function Signature.vararg(listOf(DataType.NOTE, INT, DataType.STRING)) body { _, (vararg) -> new function Signature.vararg(listOf(DataType.NOTE, INT, DataType.STRING)) body { _, (vararg) ->
val compiler = WaveCompiler(Value.map(emptyMap()), Synthesizer.SAMPLING_RATE) val compiler = WaveCompiler(
Value.map(emptyMap()),
Synthesizer.SAMPLING_RATE
)
val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>) val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>)
Synthesizer.synth(wave) Synthesizer.synth(wave)
Value.void() Value.void()

View File

@@ -1,10 +1,10 @@
package io.smnp.ext.function package io.smnp.ext.synth.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool
import io.smnp.callable.signature.Signature import io.smnp.callable.signature.Signature
import io.smnp.ext.synth.Synthesizer import io.smnp.ext.synth.lib.synthesizer.Synthesizer
import io.smnp.ext.synth.WaveCompiler import io.smnp.ext.synth.lib.wave.WaveCompiler
import io.smnp.type.enumeration.DataType.* import io.smnp.type.enumeration.DataType.*
import io.smnp.type.matcher.Matcher.Companion.anyType import io.smnp.type.matcher.Matcher.Companion.anyType
import io.smnp.type.matcher.Matcher.Companion.listOf import io.smnp.type.matcher.Matcher.Companion.listOf
@@ -27,7 +27,8 @@ class WaveFunction : Function("wave") {
} }
new function Signature.vararg(listOf(NOTE, INT, STRING)) body { _, (vararg) -> new function Signature.vararg(listOf(NOTE, INT, STRING)) body { _, (vararg) ->
val compiler = WaveCompiler(Value.map(emptyMap()), Synthesizer.SAMPLING_RATE) val compiler =
WaveCompiler(Value.map(emptyMap()), Synthesizer.SAMPLING_RATE)
val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>) val wave = compiler.compileLines(vararg.unwrapCollections() as List<List<Value>>)

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
class AdsrEnvelope(private val p1: Double, private val p2: Double, private val p3: Double, private val s: Double) : Envelope() { class AdsrEnvelope(private val p1: Double, private val p2: Double, private val p3: Double, private val s: Double) : Envelope() {

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
import io.smnp.type.enumeration.DataType.FLOAT import io.smnp.type.enumeration.DataType.FLOAT
import io.smnp.type.matcher.Matcher.Companion.ofType import io.smnp.type.matcher.Matcher.Companion.ofType

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
class ConstantEnvelope : Envelope() { class ConstantEnvelope : Envelope() {
override fun name() = "Constant" override fun name() = "Constant"

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
import io.smnp.type.model.Value import io.smnp.type.model.Value

View File

@@ -1,5 +1,6 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
import io.smnp.ext.synth.lib.wave.Wave
import org.knowm.xchart.QuickChart import org.knowm.xchart.QuickChart
import org.knowm.xchart.SwingWrapper import org.knowm.xchart.SwingWrapper

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.envelope
import io.smnp.error.CustomException import io.smnp.error.CustomException
import io.smnp.type.enumeration.DataType import io.smnp.type.enumeration.DataType

View File

@@ -1,5 +1,6 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.synthesizer
import io.smnp.ext.synth.lib.wave.Wave
import javax.sound.sampled.AudioFormat import javax.sound.sampled.AudioFormat
import javax.sound.sampled.AudioSystem import javax.sound.sampled.AudioSystem
import javax.sound.sampled.SourceDataLine import javax.sound.sampled.SourceDataLine

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.wave
import org.knowm.xchart.QuickChart import org.knowm.xchart.QuickChart
import org.knowm.xchart.SwingWrapper import org.knowm.xchart.SwingWrapper

View File

@@ -1,8 +1,10 @@
package io.smnp.ext.synth package io.smnp.ext.synth.lib.wave
import io.smnp.data.entity.Note import io.smnp.data.entity.Note
import io.smnp.data.enumeration.Pitch import io.smnp.data.enumeration.Pitch
import io.smnp.error.CustomException import io.smnp.error.CustomException
import io.smnp.ext.synth.lib.envelope.Envelope
import io.smnp.ext.synth.lib.envelope.EnvelopeFactory
import io.smnp.math.Fraction import io.smnp.math.Fraction
import io.smnp.type.enumeration.DataType import io.smnp.type.enumeration.DataType
import io.smnp.type.matcher.Matcher import io.smnp.type.matcher.Matcher

View File

@@ -1,10 +0,0 @@
package io.smnp.ext
import io.smnp.ext.function.ExitFunction
import io.smnp.ext.function.SleepFunction
import org.pf4j.Extension
@Extension
class SystemModule : NativeModuleProvider("smnp.system") {
override fun functions() = listOf(ExitFunction(), SleepFunction())
}

View File

@@ -0,0 +1,11 @@
package io.smnp.ext.system
import io.smnp.ext.provider.NativeModuleProvider
import io.smnp.ext.system.function.ExitFunction
import io.smnp.ext.system.function.SleepFunction
import org.pf4j.Extension
@Extension
class SystemModule : NativeModuleProvider("smnp.system") {
override fun functions() = listOf(ExitFunction(), SleepFunction())
}

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.system.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,4 +1,4 @@
package io.smnp.ext.function package io.smnp.ext.system.function
import io.smnp.callable.function.Function import io.smnp.callable.function.Function
import io.smnp.callable.function.FunctionDefinitionTool import io.smnp.callable.function.FunctionDefinitionTool

View File

@@ -1,5 +1,6 @@
package io.smnp.ext package io.smnp.ext.text
import io.smnp.ext.provider.LanguageModuleProvider
import org.pf4j.Extension import org.pf4j.Extension
@Extension @Extension