Bugfixes, send directly

main
Jurij Podgoršek 2024-10-21 19:53:47 +02:00
parent 3e91e9deb7
commit 79e00022ce
1 changed files with 29 additions and 12 deletions

View File

@ -78,6 +78,11 @@ SLIPDecoder {
// Function for decoding the properly-SLIP-decoded message.
decode { |data|
^NetAddr.localAddr.sendRaw(data);
}
// Skip this, it reads floating points wrong!
decodeD { |data|
var header = data.at((0..7));
// Is it a bundle? (read header from first 8 bytes)
@ -109,35 +114,47 @@ SLIPDecoder {
});
}, {
// OSC message
var nextString, index, address, type, args = [];
var nextString, address, type, args = [];
// Message Address
nextString = this.readNextString(data);
address = nextString[0];
//address.postln;
data = data[(nextString[1]..(data.size - 1))];
nextString = this.readNextString(data);
//nextString.postln;
type = nextString[0];
type = type.at((1..(type.size - 1)));
data = data[(nextString[1]..(data.size - 1))];
//data.postln;
type.do({ |t|
t.switch (
// Skip , at the start of the type string
args = type.collect({ |t, i|
var start, end;
start = (i * 4);
end = start + 3;
//data[(start..end)].postln;
t.switch(
$i, {
args = args.add(this.readInt32(data));
data = data[(4..(data.size - 1))];
//"got int".postln;
this.readInt32(data[(start..end)]);
},
$f, {
args = args.add(this.readFloat32(data));
data = data[(4..(data.size - 1))];
},
//"got float".postln;
this.readFloat32(data[(start..end)]);
}/*,
$s, {
nextString = this.readNextString(data);
args = args.add(nextString[0]);
data = data[(nextString[1]..(data.size - 1))];
nextString = ^this.readNextString(data);
}
/* @TODO implement strings, bytearrays */
*/
/* @TODO implement strings, bytearrays, other SC OSC types */
);
});
args.postln;
(prepend ++ address).postln;
this.traceMsg("OSC", prepend ++ address, args);
// Send OSC message to the engine
@ -213,7 +230,7 @@ SLIPDecoder {
stop {
this.traceMsg("Stopping...");
running = false;
port.close;
if (port != nil, { port.close; });
port.free;
this.reader.free;
}