node-osc
Version:
pyOSC inspired library for sending and receiving OSC messages
66 lines • 2.25 kB
text/typescript
/**
* Encode an OSC message or bundle to a Buffer.
*
* This low-level function converts OSC messages and bundles into binary format
* for transmission or storage. Useful for sending OSC over custom transports
* (WebSocket, TCP, HTTP), storing to files, or implementing custom OSC routers.
*
* @param {Object} message - OSC message or bundle object with oscType property
* @returns {Buffer} The encoded OSC data ready for transmission
*
* @example
* // Encode a message
* import { Message, encode } from 'node-osc';
*
* const message = new Message('/oscillator/frequency', 440);
* const buffer = encode(message);
* console.log('Encoded bytes:', buffer.length);
*
* @example
* // Encode a bundle
* import { Bundle, encode } from 'node-osc';
*
* const bundle = new Bundle(['/one', 1], ['/two', 2]);
* const buffer = encode(bundle);
*
* @example
* // Send over WebSocket
* const buffer = encode(message);
* websocket.send(buffer);
*/
export function encode(message: any): Buffer;
/**
* Decode a Buffer containing OSC data into a message or bundle object.
*
* This low-level function parses binary OSC data back into JavaScript objects.
* Useful for receiving OSC over custom transports, reading from files,
* or implementing custom OSC routers.
*
* @param {Buffer} buffer - The Buffer containing OSC data
* @returns {Object} The decoded OSC message or bundle. Messages have
* {oscType: 'message', address: string, args: Array}, bundles have
* {oscType: 'bundle', timetag: number, elements: Array}
* @throws {Error} If the buffer contains malformed OSC data
*
* @example
* // Decode received data
* import { decode } from 'node-osc';
*
* const decoded = decode(buffer);
* if (decoded.oscType === 'message') {
* console.log('Address:', decoded.address);
* console.log('Arguments:', decoded.args);
* }
*
* @example
* // Round-trip encode/decode
* import { Message, encode, decode } from 'node-osc';
*
* const original = new Message('/test', 42, 'hello');
* const buffer = encode(original);
* const decoded = decode(buffer);
* console.log(decoded.address); // '/test'
*/
export function decode(buffer: Buffer): any;
import { Buffer } from 'node:buffer';
//# sourceMappingURL=osc.d.mts.map