commit 12/11/2025

This commit is contained in:
2025-11-12 10:15:03 +07:00
parent bf554b4f15
commit 46be98363a
11 changed files with 134 additions and 89 deletions

View File

@@ -901,22 +901,18 @@ class MainExtension01 {
val remark = variables?.get("REMARK").orEmpty()
when(remark){
"GOP" -> {
//TODO Combobox First_Call_Message_Chooser.
val remarkMsg = config.Get(configKeys.REMARK_GOP.key)
ann_id = Regex("\\[(\\d+)]").find(remarkMsg)?.value?.toIntOrNull() ?: 0
}
"GBD" ->{
// TODO Combobox Second_Call_Message_Chooser
val remarkMsg = config.Get(configKeys.REMARK_GBD.key)
ann_id = Regex("\\[(\\d+)]").find(remarkMsg)?.value?.toIntOrNull() ?: 0
}
"GFC" ->{
// TODO Combobox Final_Call_Message_Chooser
val remarkMsg = config.Get(configKeys.REMARK_GFC.key)
ann_id = Regex("\\[(\\d+)]").find(remarkMsg)?.value?.toIntOrNull() ?: 0
}
"FLD" ->{
// TODO Combobox Landed_Message_Chooser
val remarkMsg = config.Get(configKeys.REMARK_FLD.key)
ann_id = Regex("\\[(\\d+)]").find(remarkMsg)?.value?.toIntOrNull() ?: 0
}

View File

@@ -22,6 +22,7 @@ class AudioPlayer (var samplingrate: Int = 44100) {
val bassencmp3: BassEncMP3 = BassEncMP3.Instance
val bassencopus: BassEncOpus = BassEncOpus.Instance
val bassencogg : BassEncOGG = BassEncOGG.Instance
val bassmix : BassMix = BassMix.Instance
var initedDevice = -1
@@ -34,6 +35,7 @@ class AudioPlayer (var samplingrate: Int = 44100) {
Logger.info { "BassEncMP3 version ${Integer.toHexString(bassencmp3.BASS_Encode_MP3_GetVersion())}" }
Logger.info { "BassEncOpus version ${Integer.toHexString(bassencopus.BASS_Encode_OPUS_GetVersion())}" }
Logger.info {" BassEncOGG version ${Integer.toHexString(bassencogg.BASS_Encode_OGG_GetVersion())}"}
Logger.info {" BassMix version ${Integer.toHexString(bassmix.BASS_Mixer_GetVersion())}"}
InitAudio(0) // Audio 0 is No Sound, use for reading and writing wav silently
}

37
src/audio/BassOpus.java Normal file
View File

@@ -0,0 +1,37 @@
package audio;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
@SuppressWarnings("unused")
public interface BassOpus extends Library {
BassOpus Instance = (BassOpus) Native.load("bassopus", BassOpus.class);
// BASS_CHANNELINFO type
int BASS_CTYPE_STREAM_OPUS = 0x11200;
// Additional attributes
int BASS_ATTRIB_OPUS_ORIGFREQ = 0x13000;
int BASS_ATTRIB_OPUS_GAIN = 0x13001;
class BASS_OPUS_HEAD {
public byte version;
public byte channels;
public short preskip;
public int inputrate;
public short gain;
public byte mapping;
public byte streams;
public byte coupled;
public byte[] chanmap;
}
int BASS_STREAMPROC_OPUS_LOSS = 0x40000000;
int BASS_OPUS_StreamCreate(BASS_OPUS_HEAD head, int flags, Bass.STREAMPROC proc, Object user);
int BASS_OPUS_StreamCreate(BASS_OPUS_HEAD head, int flags, int proc, Object user);
int BASS_OPUS_StreamCreateFile(String file, long offset, long length, int flags);
int BASS_OPUS_StreamCreateFile(Pointer file, long offset, long length, int flags);
int BASS_OPUS_StreamCreateURL(String url, int offset, int flags, Bass.DOWNLOADPROC proc, Object user);
int BASS_OPUS_StreamCreateFileUser(int system, int flags, Bass.BASS_FILEPROCS procs, Object user);
int BASS_OPUS_StreamPutData(int handle, Pointer buffer, int length);
}

View File

@@ -247,6 +247,13 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
path("api") {
//TODO https://stackoverflow.com/questions/70002015/streaming-into-audio-element
path("LiveAudio") {
post{
val json : JsonNode = objectmapper.readTree(it.body())
val broadcastzone = json.get("broadcastzone")?.asText("") ?: ""
val command = json.get("command")?.asText("") ?: ""
println("LiveAudio command=$command for zone $broadcastzone from ${it.host()}" )
}
ws("/ws/{uuid}"){ws ->
ws.onConnect {
ctx ->