UNPKG

reaper-osc

Version:
77 lines (76 loc) 2.73 kB
/** * Contains classes for Reaper markers * @module */ import { INotifyPropertyChanged } from './Notify'; import { ReaperOscEvent } from './Client/Events'; import { ReaperOscCommand } from './Client/Commands'; declare type SendCommand = (command: ReaperOscCommand) => void; /** A marker in the current device marker bank */ export declare class Marker implements INotifyPropertyChanged { readonly slotIndex: number; private readonly _send; private _name; /** The user-assigned marker number (as shown in Reaper's UI), or empty string if not yet populated */ private _number; private _time; /** * @param slotIndex The 1-based slot index within the current device marker bank * @param send A callback used to send typed commands to Reaper */ constructor(slotIndex: number, _send: SendCommand); /** The marker's name */ get name(): string; /** * The user-assigned marker 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 marker's time position in seconds */ get time(): number; /** * Handle a typed incoming event * @param event The event to handle */ handleEvent(event: ReaperOscEvent): void; onPropertyChanged(property: string, callback: () => void): () => void; /** * Rename this marker. Uses write-by-ID: the user-assigned marker number from {@link number}. * @param name The new name for the marker */ rename(name: string): void; /** * Move this marker to a new time position. Uses write-by-ID. * Note: moving a marker may change its bank slot index on the next sync. * @param time The new time position in seconds */ setTime(time: number): void; /** * Change the user-assigned number of this marker. Uses write-by-ID. * @param number The new user-assigned marker number */ setNumber(number: number): void; } /** The most recently passed marker during playback */ export declare class LastMarker implements INotifyPropertyChanged { private _name; private _number; private _time; /** The marker's name */ get name(): string; /** * The user-assigned marker number (as shown in Reaper's UI). * Empty string if no marker has been passed yet. */ get number(): string; /** The marker's time position in seconds */ get time(): number; /** * Handle a typed incoming event * @param event The event to handle */ handleEvent(event: ReaperOscEvent): void; onPropertyChanged(property: string, callback: () => void): () => void; } export {};