UNPKG

streamdeck-typescript

Version:

This library will help you build elgato stream deck plugins in typescript

66 lines (59 loc) 1.72 kB
import { SDOnPiEvent } from '../decorators/on-pi-event.decorator'; import { DidReceiveSettingsEvent, InitPi } from '../interfaces/interfaces'; import { StreamDeckHandlerBase } from './stream-deck-handler-base'; /** * This will help you create the logic for the property inspector. * @author XeroxDev <help@xeroxdev.de> * @copyright 2021 */ export abstract class StreamDeckPropertyInspectorHandler< Settings = any, GlobalSettings = any > extends StreamDeckHandlerBase<GlobalSettings> { private _actionInfo: InitPi['actionInfo']; /** * Gets the action information * @returns {InitPi["actionInfo"]} * @protected */ protected get actionInfo(): InitPi['actionInfo'] { return this._actionInfo; } /** * Send data to the action * @param {any} payload Data to send * @param {string} action [Optional] Action context. (Default: current context) */ public sendToPlugin(payload: any, action?: string) { this.send('sendToPlugin', { context: this.uuid, action: action ? action : this._actionInfo?.action, payload, }); } /** * @inheritDoc */ requestSettings() { super.requestSettings(this.uuid); } /** * @inheritDoc * @param {Settings} settings */ setSettings<Settings = any>(settings: Settings) { super.setSettings(settings, this.uuid); } /** * * @param {string} actionInfo * @protected * @internal * @private */ @SDOnPiEvent('registerPi') protected onRegisterPi(actionInfo: string) { this._actionInfo = JSON.parse(actionInfo); this.requestSettings(); } }