UNPKG

reaper-osc

Version:
88 lines (87 loc) 3.05 kB
/** * 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 {};