homebridge
Version:
HomeKit support for the impatient
61 lines • 2.8 kB
TypeScript
/**
* MediaPlayback Cluster Behavior
*
* Handles transport commands - play, pause, stop and track navigation - for
* media players and speakers.
*/
import { MediaPlaybackServer } from '@matter/main/behaviors/media-playback';
import { MediaPlayback } from '@matter/main/clusters/media-playback';
/**
* Default MediaPlayback Server.
*
* matter.js's base MediaPlaybackServer implements none of the commands -
* invoking one throws NotImplementedError - so a player without plugin
* handlers would advertise the transport controls and fail every one. This
* default reflects the command in `currentState` and answers Success, which is
* enough for the endpoint to behave sanely on its own.
*/
export declare class DefaultMediaPlaybackServer extends MediaPlaybackServer {
/**
* Record a new playback state, when the command implies one.
*/
protected reflect(state?: MediaPlayback.PlaybackState): MediaPlayback.PlaybackResponse;
play(): Promise<MediaPlayback.PlaybackResponse>;
pause(): Promise<MediaPlayback.PlaybackResponse>;
stop(): Promise<MediaPlayback.PlaybackResponse>;
startOver(): Promise<MediaPlayback.PlaybackResponse>;
previous(): Promise<MediaPlayback.PlaybackResponse>;
next(): Promise<MediaPlayback.PlaybackResponse>;
skipForward(_request: MediaPlayback.SkipForwardRequest): Promise<MediaPlayback.PlaybackResponse>;
skipBackward(_request: MediaPlayback.SkipBackwardRequest): Promise<MediaPlayback.PlaybackResponse>;
}
/**
* Custom MediaPlayback Server that calls plugin handlers.
*
* Extends the default server for its `reflect()` state handling (the matter.js
* base implements nothing at all).
*/
export declare class HomebridgeMediaPlaybackServer extends DefaultMediaPlaybackServer {
/**
* Get the registry for this behavior's endpoint
*/
private getRegistry;
/**
* Run a plugin handler and reflect the resulting playback state.
*
* A handler that throws a Matter protocol error is propagated as-is so the
* controller gets the real status; anything else is answered with a
* cluster-level status rather than an exception, which keeps the endpoint
* online.
*/
private invoke;
play(): Promise<MediaPlayback.PlaybackResponse>;
pause(): Promise<MediaPlayback.PlaybackResponse>;
stop(): Promise<MediaPlayback.PlaybackResponse>;
startOver(): Promise<MediaPlayback.PlaybackResponse>;
previous(): Promise<MediaPlayback.PlaybackResponse>;
next(): Promise<MediaPlayback.PlaybackResponse>;
skipForward(request: MediaPlayback.SkipForwardRequest): Promise<MediaPlayback.PlaybackResponse>;
skipBackward(request: MediaPlayback.SkipBackwardRequest): Promise<MediaPlayback.PlaybackResponse>;
}
//# sourceMappingURL=MediaPlaybackBehavior.d.ts.map