reaper-osc
Version:
Controls Cockos Reaper using OSC
88 lines (87 loc) • 3.05 kB
TypeScript
/**
* Contains classes for Reaper regions
* @module
*/
import { INotifyPropertyChanged } from './Notify';
import { ReaperOscEvent } from './Client/Events';
import { ReaperOscCommand } from './Client/Commands';
declare type SendCommand = (command: ReaperOscCommand) => void;
/** A region in the current device region bank */
export declare class Region implements INotifyPropertyChanged {
readonly slotIndex: number;
private readonly _send;
private _name;
/** The user-assigned region number (as shown in Reaper's UI), or empty string if not yet populated */
private _number;
private _time;
private _length;
/**
* @param slotIndex The 1-based slot index within the current device region bank
* @param send A callback used to send typed commands to Reaper
*/
constructor(slotIndex: number, _send: SendCommand);
/** The region's name */
get name(): string;
/**
* The user-assigned region number (as shown in Reaper's UI).
* This is a string because Reaper sends it as a string (e.g. "1", "2").
* Empty string if not yet populated.
*/
get number(): string;
/** The region's start time in seconds */
get time(): number;
/** The region's length in seconds */
get length(): number;
/**
* Handle a typed incoming event
* @param event The event to handle
*/
handleEvent(event: ReaperOscEvent): void;
onPropertyChanged(property: string, callback: () => void): () => void;
/**
* Rename this region. Uses write-by-ID: the user-assigned region number from {@link number}.
* @param name The new name for the region
*/
rename(name: string): void;
/**
* Move this region to a new start time. Uses write-by-ID.
* Note: moving a region may change its bank slot index on the next sync.
* @param time The new start time in seconds
*/
setTime(time: number): void;
/**
* Set the length of this region. Uses write-by-ID.
* @param length The new length in seconds
*/
setLength(length: number): void;
/**
* Change the user-assigned number of this region. Uses write-by-ID.
* @param number The new user-assigned region number
*/
setNumber(number: number): void;
}
/** The most recently entered region during playback */
export declare class LastRegion implements INotifyPropertyChanged {
private _name;
private _number;
private _time;
private _length;
/** The region's name */
get name(): string;
/**
* The user-assigned region number (as shown in Reaper's UI).
* Empty string if no region has been entered yet.
*/
get number(): string;
/** The region's start time in seconds */
get time(): number;
/** The region's length in seconds */
get length(): number;
/**
* Handle a typed incoming event
* @param event The event to handle
*/
handleEvent(event: ReaperOscEvent): void;
onPropertyChanged(property: string, callback: () => void): () => void;
}
export {};