reaper-osc
Version:
Controls Cockos Reaper using OSC
93 lines • 3.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FloatMessage = exports.IntegerMessage = exports.ToggleMessage = exports.ActionMessage = exports.BooleanMessage = exports.StringMessage = exports.OscMessage = exports.BoolArgument = exports.FloatArgument = exports.IntArgument = exports.StringArgument = exports.OscArgumentType = void 0;
var OscArgumentType;
(function (OscArgumentType) {
/** 32-bit Integer */
OscArgumentType["INT"] = "i";
/** 64-bit Integer */
OscArgumentType["LONG"] = "h";
/** 32-bit Floating Point */
OscArgumentType["FLOAT"] = "f";
/** 64-bit Floating Point */
OscArgumentType["DOUBLE"] = "d";
/** String */
OscArgumentType["STRING"] = "s";
/** Single Character */
OscArgumentType["CHAR"] = "c";
/** Binary blob */
OscArgumentType["BLOB"] = "b";
/** True. No bytes are allocated in the argument data */
OscArgumentType["TRUE"] = "T";
/** False. No bytes are allocated in the argument data */
OscArgumentType["FALSE"] = "F";
/** Null. No bytes are allocated in the argument data */
OscArgumentType["NULL"] = "N";
/** Impulse aka bang. Used for event triggers. No bytes are allocated in the argument data */
OscArgumentType["IMPULSE"] = "I";
OscArgumentType["COLOR"] = "r";
OscArgumentType["MIDI"] = "m";
})(OscArgumentType = exports.OscArgumentType || (exports.OscArgumentType = {}));
const StringArgument = (value) => ({ type: OscArgumentType.STRING, value: value });
exports.StringArgument = StringArgument;
const IntArgument = (value) => ({ type: OscArgumentType.INT, value: value });
exports.IntArgument = IntArgument;
const FloatArgument = (value) => ({ type: OscArgumentType.FLOAT, value: value });
exports.FloatArgument = FloatArgument;
const BoolArgument = (value) => ({ type: OscArgumentType.INT, value: value ? 1 : 0 });
exports.BoolArgument = BoolArgument;
class OscMessage {
constructor(address, args) {
this.address = address;
this.args = args !== null && args !== void 0 ? args : [];
this.addressParts = address.split('/').slice(1);
}
}
exports.OscMessage = OscMessage;
class StringMessage extends OscMessage {
constructor(address, value) {
super(address, [exports.StringArgument(value)]);
}
}
exports.StringMessage = StringMessage;
class BooleanMessage extends OscMessage {
constructor(address, value) {
const args = [exports.BoolArgument(value)];
super(address, args);
}
}
exports.BooleanMessage = BooleanMessage;
class ActionMessage extends OscMessage {
constructor(commandId, value = null) {
if (typeof commandId === 'number') {
commandId = commandId.toString();
}
const args = [exports.StringArgument(commandId)];
if (value !== null) {
args.push(exports.FloatArgument(value));
}
super('/action/str', args);
}
}
exports.ActionMessage = ActionMessage;
class ToggleMessage extends OscMessage {
constructor(address) {
super(address + '/toggle');
}
}
exports.ToggleMessage = ToggleMessage;
class IntegerMessage extends OscMessage {
constructor(address, value) {
const args = [exports.IntArgument(value)];
super(address, args);
}
}
exports.IntegerMessage = IntegerMessage;
class FloatMessage extends OscMessage {
constructor(address, value) {
const args = [exports.FloatArgument(value)];
super(address, args);
}
}
exports.FloatMessage = FloatMessage;
//# sourceMappingURL=Messages.js.map