reaper-osc
Version:
Controls Cockos Reaper using OSC
79 lines (78 loc) • 2.57 kB
TypeScript
export interface ISendOscMessage {
(message: OscMessage): void;
}
export declare enum OscArgumentType {
/** 32-bit Integer */
INT = "i",
/** 64-bit Integer */
LONG = "h",
/** 32-bit Floating Point */
FLOAT = "f",
/** 64-bit Floating Point */
DOUBLE = "d",
/** String */
STRING = "s",
/** Single Character */
CHAR = "c",
/** Binary blob */
BLOB = "b",
/** True. No bytes are allocated in the argument data */
TRUE = "T",
/** False. No bytes are allocated in the argument data */
FALSE = "F",
/** Null. No bytes are allocated in the argument data */
NULL = "N",
/** Impulse aka bang. Used for event triggers. No bytes are allocated in the argument data */
IMPULSE = "I",
COLOR = "r",
MIDI = "m"
}
export interface OscArgument<T> {
readonly type: OscArgumentType;
value: T;
}
export declare type SomeOscArgument = StringArgument | IntArgument | FloatArgument;
export interface StringArgument extends OscArgument<string> {
type: OscArgumentType.STRING;
readonly value: string;
}
export interface IntArgument extends OscArgument<number> {
type: OscArgumentType.INT;
readonly value: number;
}
export interface FloatArgument extends OscArgument<number> {
type: OscArgumentType.FLOAT;
readonly value: number;
}
export declare const StringArgument: (value: string) => StringArgument;
export declare const IntArgument: (value: number) => IntArgument;
export declare const FloatArgument: (value: number) => FloatArgument;
export declare const BoolArgument: (value: boolean) => IntArgument;
export declare type RawOscMessage = {
readonly address: string;
readonly args?: SomeOscArgument[];
};
export declare class OscMessage {
readonly address: string;
readonly addressParts: string[];
readonly args: SomeOscArgument[];
constructor(address: string, args?: SomeOscArgument[]);
}
export declare class StringMessage extends OscMessage {
constructor(address: string, value: string);
}
export declare class BooleanMessage extends OscMessage {
constructor(address: string, value: boolean);
}
export declare class ActionMessage extends OscMessage {
constructor(commandId: string | number, value?: number | null);
}
export declare class ToggleMessage extends OscMessage {
constructor(address: string);
}
export declare class IntegerMessage extends OscMessage {
constructor(address: string, value: number);
}
export declare class FloatMessage extends OscMessage {
constructor(address: string, value: number);
}