Initial Commit
This commit is contained in:
commit
4c5d981e7f
9 changed files with 382 additions and 0 deletions
59
src/types/osc-min.d.ts
vendored
Normal file
59
src/types/osc-min.d.ts
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
declare module "osc-min" {
|
||||
export const enum OSCType {
|
||||
String = "string",
|
||||
Float = "float",
|
||||
Integer = "integer",
|
||||
Blob = "blob",
|
||||
True = "true",
|
||||
False = "false",
|
||||
Null = "null",
|
||||
Bang = "bang",
|
||||
Timetag = "timetag",
|
||||
Array = "array"
|
||||
}
|
||||
|
||||
export type OSCTimeTag = [number, number];
|
||||
|
||||
export interface OSCMessage {
|
||||
oscType?: "message",
|
||||
address: string,
|
||||
args: Array<OSCArgument<OSCType>>
|
||||
}
|
||||
|
||||
export interface OutgoingOSCMessage extends OSCMessage{
|
||||
args: OutgoingOSCArgsTypes;
|
||||
}
|
||||
|
||||
export type OutgoingOSCArgsTypes = Array<OSCArgument<OSCType> | Buffer | boolean | string | number>
|
||||
|
||||
export interface OSCBundle {
|
||||
oscType: "bundle",
|
||||
timetag: null | number | Date | OSCTimeTag,
|
||||
elements: Array<OSCMessage | OSCBundle>
|
||||
}
|
||||
|
||||
export type OSCArgumentType<T extends OSCType> = T extends OSCType.String ? string
|
||||
: T extends OSCType.Float | OSCType.Integer | OSCType.Timetag ? number
|
||||
: T extends OSCType.True ? true
|
||||
: T extends OSCType.False ? false
|
||||
: T extends OSCType.Blob ? Buffer
|
||||
: T extends OSCType.array ? Array<OSCArgument<OSCType>>
|
||||
: null;
|
||||
|
||||
export interface OSCArgument<T extends OSCType>{
|
||||
type: T;
|
||||
value: OSCArgumentType<T>;
|
||||
}
|
||||
|
||||
type OSCPacket = OSCMessage | OSCBundle;
|
||||
|
||||
export function fromBuffer(buffer: Buffer, strict?: boolean): OSCPacket;
|
||||
export function toBuffer(object: OutgoingOSCMessage, strict?: boolean): Buffer;
|
||||
export function toBuffer(address: string, args: Array<OSCArgument<OSCType>>, strict?: boolean): Buffer;
|
||||
export function applyMessageTransform(msg: Buffer, transform: (message: OSCMessage) => OSCMessage);
|
||||
export function applyAddressTransform(msg: Buffer, transform: (address: string) => string);
|
||||
export function timetagToDate(ntpTimeTag: OSCTimeTag): Date;
|
||||
export function dateToTimetag(date: Date): OSCTimeTag;
|
||||
export function timetagToTimestamp(timeTag: OSCTimeTag): number;
|
||||
export function timestampToTimetag(timestamp: number); OSCTimeTag;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue