@2bit/osc
Version:
osc client/server written by typescript
85 lines • 5.77 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Osc = __importStar(require("./module/types"));
const osc_min_1 = __importDefault(require("osc-min"));
const dgram_1 = __importDefault(require("dgram"));
class Client {
constructor(host, port, options = {}) {
var _a, _b;
this.host = host;
this.port = port;
this.options = {
maxMspCompatible: (_a = options.maxMspCompatible) !== null && _a !== void 0 ? _a : false,
recognitionInt: (_b = options.recognitionInt) !== null && _b !== void 0 ? _b : true
};
this.socket = dgram_1.default.createSocket({
type: 'udp4',
reuseAddr: true
});
}
async send(message_or_address, arg, ...args) {
if (typeof message_or_address == 'string') {
const address = message_or_address;
const osc_args = arg
? Array.isArray(arg)
? arg
: [arg, ...args]
: [];
return this.sendMessage({
address,
args: osc_args.map(arg => Osc.Convert.toArgument(arg, this.options)),
oscType: 'message'
});
}
else {
if (message_or_address.oscType == 'message') {
return this.sendMessage(message_or_address);
}
else {
return this.sendBundle(message_or_address);
}
}
}
async sendMessage(message) {
return this.sendBuffer(osc_min_1.default.toBuffer(message, true));
}
async sendBundle(bundle) {
return this.sendBuffer(osc_min_1.default.toBuffer(bundle, true));
}
async sendBuffer(buffer) {
return new Promise((resolve, reject) => {
this.socket.send(buffer, this.port, this.host, (err, bytes) => {
if (err)
return reject(err);
resolve(bytes);
});
});
}
async close() {
return new Promise(resolve => this.socket.close(resolve));
}
}
exports.default = Client;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBc0M7QUFDdEMsc0RBQTZCO0FBRTdCLGtEQUEwQjtBQU0xQixNQUFxQixNQUFNO0lBR3ZCLFlBQTRCLElBQVksRUFDWixJQUFZLEVBQzVCLFVBQW1DLEVBQUU7O1FBRnJCLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBR3BDLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxnQkFBZ0IsRUFBRSxNQUFBLE9BQU8sQ0FBQyxnQkFBZ0IsbUNBQUksS0FBSztZQUNuRCxjQUFjLEVBQUUsTUFBQSxPQUFPLENBQUMsY0FBYyxtQ0FBSSxJQUFJO1NBQ2pELENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQUssQ0FBQyxZQUFZLENBQUM7WUFDN0IsSUFBSSxFQUFFLE1BQU07WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBUUQsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBdUUsRUFDMUUsR0FBMkMsRUFDM0MsR0FBSSxJQUF3QjtRQUVoQyxJQUFHLE9BQU8sa0JBQWtCLElBQUksUUFBUSxFQUFFO1lBQ3RDLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO1lBQ25DLE1BQU0sUUFBUSxHQUF1QixHQUFHO2dCQUNwQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxHQUF5QjtvQkFDM0IsQ0FBQyxDQUFDLENBQUMsR0FBdUIsRUFBRSxHQUFJLElBQUksQ0FBQztnQkFDekMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDcEIsT0FBTztnQkFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BFLE9BQU8sRUFBRSxTQUFTO2FBQ3JCLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFHLGtCQUFrQixDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUU7Z0JBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQy9DO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2FBQzlDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUE2QjtRQUMzQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBMkI7UUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWM7UUFDckMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMxRCxJQUFHLEdBQUc7b0JBQUUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1AsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBcEVELHlCQW9FQyJ9
;