mirror of
https://github.com/stagehacks/Cue-View.git
synced 2026-08-21 05:08:59 +00:00
Initial prettify
This commit is contained in:
+118
-115
@@ -1,129 +1,132 @@
|
||||
exports.defaultName = "X32 Mixer";
|
||||
exports.connectionType = "UDPsocket";
|
||||
exports.defaultName = 'X32 Mixer';
|
||||
exports.connectionType = 'UDPsocket';
|
||||
exports.heartbeatInterval = 10000;
|
||||
exports.searchOptions = {
|
||||
type: "UDPsocket",
|
||||
searchBuffer: Buffer.from([0x2f, 0x78, 0x69, 0x6e, 0x66, 0x6f]),
|
||||
devicePort: 10023,
|
||||
listenPort: 0,
|
||||
validateResponse: function(msg, info){
|
||||
return (msg.toString().indexOf("/xinfo")==0);
|
||||
}
|
||||
}
|
||||
type: 'UDPsocket',
|
||||
searchBuffer: Buffer.from([0x2f, 0x78, 0x69, 0x6e, 0x66, 0x6f]),
|
||||
devicePort: 10023,
|
||||
listenPort: 0,
|
||||
validateResponse: function (msg, info) {
|
||||
return msg.toString().indexOf('/xinfo') == 0;
|
||||
},
|
||||
};
|
||||
exports.defaultPort = 10023;
|
||||
|
||||
exports.ready = function(device){
|
||||
exports.ready = function (device) {
|
||||
device.data.channelFaders = new Array(32).fill(0);
|
||||
device.data.channelFadersDB = new Array(32).fill(0);
|
||||
device.data.channelMutes = new Array(32).fill(0);
|
||||
device.data.channelNames = new Array(32).fill('end');
|
||||
device.data.channelColors = new Array(32);
|
||||
|
||||
device.data.channelFaders = new Array(32).fill(0);
|
||||
device.data.channelFadersDB = new Array(32).fill(0);
|
||||
device.data.channelMutes = new Array(32).fill(0);
|
||||
device.data.channelNames = new Array(32).fill("end");
|
||||
device.data.channelColors = new Array(32);
|
||||
device.data.stereoFader = 0;
|
||||
device.data.stereoFaderDB = 0;
|
||||
device.data.stereoMute = 0;
|
||||
|
||||
device.data.stereoFader = 0;
|
||||
device.data.stereoFaderDB = 0;
|
||||
device.data.stereoMute = 0;
|
||||
device.send(Buffer.from('/xinfo'));
|
||||
|
||||
device.send(Buffer.from("/xinfo"));
|
||||
//device.send(Buffer.from("\x2f\x62\x61\x74\x63\x68\x73\x75\x62\x73\x63\x72\x69\x62\x65\x00\x2c\x73\x73\x69\x69\x69\x00\x00\x6d\x65\x74\x65\x72\x73\x2f\x30\x00\x00\x00\x00\x2f\x6d\x65\x74\x65\x72\x73\x2f\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"));
|
||||
//device.send(Buffer.from("/batchsubscribe\x00,ssiii\x00\x00meters/0\x00\x00\x00\x00/meters/0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"));
|
||||
|
||||
//device.send(Buffer.from("/subscribe\x00,si\x00/-stat/solosw/01\x001"));
|
||||
};
|
||||
|
||||
//device.send(Buffer.from("\x2f\x62\x61\x74\x63\x68\x73\x75\x62\x73\x63\x72\x69\x62\x65\x00\x2c\x73\x73\x69\x69\x69\x00\x00\x6d\x65\x74\x65\x72\x73\x2f\x30\x00\x00\x00\x00\x2f\x6d\x65\x74\x65\x72\x73\x2f\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"));
|
||||
//device.send(Buffer.from("/batchsubscribe\x00,ssiii\x00\x00meters/0\x00\x00\x00\x00/meters/0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01"));
|
||||
exports.data = function (device, buf) {
|
||||
this.deviceInfoUpdate(device, 'status', 'ok');
|
||||
var msg = buf.toString().split('\u0000\u0000');
|
||||
|
||||
//device.send(Buffer.from("/subscribe\x00,si\x00/-stat/solosw/01\x001"));
|
||||
if (msg[0] == '/xinfo') {
|
||||
this.deviceInfoUpdate(device, 'defaultName', msg[4]);
|
||||
device.data.name = msg[4];
|
||||
device.data.ip = msg[2];
|
||||
device.data.firmware = msg[7];
|
||||
device.data.model = msg[5];
|
||||
|
||||
device.send(Buffer.from('/lr/mix/fader\u0000\u0000\u0000\u0000'));
|
||||
device.send(Buffer.from('/lr/mix/on\u0000\u0000\u0000\u0000'));
|
||||
|
||||
for (var i = 0; i <= 32; i++) {
|
||||
device.send(
|
||||
Buffer.from(
|
||||
'/ch/' +
|
||||
i.toString().padStart(2, '0') +
|
||||
'/config/name\u0000\u0000\u0000\u0000'
|
||||
)
|
||||
);
|
||||
}
|
||||
device.draw();
|
||||
} else if (msg[0] == '/meters/0') {
|
||||
//console.log(msg)
|
||||
} else if (msg[0].indexOf('/mix/fader') >= 0) {
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
|
||||
if (addr[0] == 'ch') {
|
||||
device.data.channelFaders[channel - 1] = buf.readFloatBE(24);
|
||||
device.data.channelFadersDB[channel - 1] = convertToDBTheBehringerWay(
|
||||
buf.readFloatBE(24)
|
||||
);
|
||||
} else if (addr[0] == 'lr') {
|
||||
device.data.stereoFader = buf.readFloatBE(20);
|
||||
device.data.stereoFaderDB = convertToDBTheBehringerWay(
|
||||
buf.readFloatBE(20)
|
||||
);
|
||||
}
|
||||
|
||||
device.draw();
|
||||
} else if (msg[0].indexOf('/mix/on') >= 0) {
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
|
||||
if (addr[0] == 'ch') {
|
||||
device.data.channelMutes[channel - 1] = buf[23];
|
||||
} else if (addr[0] == 'lr') {
|
||||
device.data.stereoMute = buf[19];
|
||||
}
|
||||
device.draw();
|
||||
device.send(
|
||||
Buffer.from('/ch/' + addr[1] + '/mix/fader\u0000\u0000\u0000\u0000')
|
||||
);
|
||||
} else if (msg[0].indexOf('/config/name') > 0) {
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
device.data.channelNames[channel - 1] = msg[2];
|
||||
device.draw();
|
||||
device.send(
|
||||
Buffer.from('/ch/' + addr[1] + '/config/color\u0000\u0000\u0000\u0000')
|
||||
);
|
||||
} else if (msg[0].indexOf('/config/color') > 0) {
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
device.data.channelColors[channel - 1] = buf.readInt8(27);
|
||||
device.draw();
|
||||
device.send(
|
||||
Buffer.from('/ch/' + addr[1] + '/mix/on\u0000\u0000\u0000\u0000')
|
||||
);
|
||||
} else {
|
||||
//console.log(msg)
|
||||
}
|
||||
//console.log(msg)
|
||||
};
|
||||
|
||||
exports.heartbeat = function (device) {
|
||||
device.send(Buffer.from('/xremote'));
|
||||
};
|
||||
|
||||
function parseAddress(msg) {
|
||||
var addr = msg.split('/');
|
||||
addr.shift();
|
||||
return addr;
|
||||
}
|
||||
|
||||
exports.data = function(device, buf){
|
||||
this.deviceInfoUpdate(device, "status", "ok");
|
||||
var msg = buf.toString().split('\u0000\u0000')
|
||||
|
||||
if(msg[0]=="/xinfo"){
|
||||
this.deviceInfoUpdate(device, "defaultName", msg[4]);
|
||||
device.data.name = msg[4];
|
||||
device.data.ip = msg[2];
|
||||
device.data.firmware = msg[7];
|
||||
device.data.model = msg[5];
|
||||
|
||||
|
||||
device.send(Buffer.from("/lr/mix/fader\u0000\u0000\u0000\u0000"));
|
||||
device.send(Buffer.from("/lr/mix/on\u0000\u0000\u0000\u0000"));
|
||||
|
||||
for(var i=0; i<=32; i++){
|
||||
device.send(Buffer.from("/ch/"+i.toString().padStart(2, "0")+"/config/name\u0000\u0000\u0000\u0000"));
|
||||
}
|
||||
device.draw();
|
||||
|
||||
|
||||
}else if(msg[0]=="/meters/0"){
|
||||
//console.log(msg)
|
||||
}else if(msg[0].indexOf("/mix/fader")>=0){
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
|
||||
if(addr[0]=="ch"){
|
||||
device.data.channelFaders[channel-1] = buf.readFloatBE(24);
|
||||
device.data.channelFadersDB[channel-1] = convertToDBTheBehringerWay(buf.readFloatBE(24));
|
||||
}else if(addr[0]=="lr"){
|
||||
device.data.stereoFader = buf.readFloatBE(20);
|
||||
device.data.stereoFaderDB = convertToDBTheBehringerWay(buf.readFloatBE(20));
|
||||
}
|
||||
|
||||
device.draw();
|
||||
|
||||
}else if(msg[0].indexOf("/mix/on")>=0){
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
|
||||
if(addr[0]=="ch"){
|
||||
device.data.channelMutes[channel-1] = buf[23];
|
||||
}else if(addr[0]=="lr"){
|
||||
device.data.stereoMute = buf[19];
|
||||
}
|
||||
device.draw();
|
||||
device.send(Buffer.from("/ch/"+addr[1]+"/mix/fader\u0000\u0000\u0000\u0000"));
|
||||
|
||||
}else if(msg[0].indexOf("/config/name")>0){
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
device.data.channelNames[channel-1] = msg[2];
|
||||
device.draw();
|
||||
device.send(Buffer.from("/ch/"+addr[1]+"/config/color\u0000\u0000\u0000\u0000"));
|
||||
|
||||
}else if(msg[0].indexOf("/config/color")>0){
|
||||
var addr = parseAddress(msg[0]);
|
||||
var channel = Number(addr[1]);
|
||||
device.data.channelColors[channel-1] = buf.readInt8(27);
|
||||
device.draw();
|
||||
device.send(Buffer.from("/ch/"+addr[1]+"/mix/on\u0000\u0000\u0000\u0000"));
|
||||
|
||||
}else{
|
||||
//console.log(msg)
|
||||
}
|
||||
//console.log(msg)
|
||||
|
||||
function convertToDBTheBehringerWay(f) {
|
||||
if (f >= 0.5) {
|
||||
return f * 40 - 30;
|
||||
} else if (f >= 0.25) {
|
||||
return f * 80 - 50;
|
||||
} else if (f >= 0.0625) {
|
||||
return f * 160 - 70;
|
||||
} else {
|
||||
return f * 480 - 90;
|
||||
}
|
||||
}
|
||||
|
||||
exports.heartbeat = function(device){
|
||||
device.send(Buffer.from("/xremote"));
|
||||
}
|
||||
|
||||
|
||||
function parseAddress(msg){
|
||||
var addr = msg.split("/");
|
||||
addr.shift();
|
||||
return addr;
|
||||
}
|
||||
|
||||
function convertToDBTheBehringerWay(f){
|
||||
if(f>=0.5){
|
||||
return f*40-30;
|
||||
}else if(f>=0.25){
|
||||
return f*80-50;
|
||||
}else if(f>=0.0625){
|
||||
return f*160-70;
|
||||
}else{
|
||||
return f*480-90;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user