UNPKG

media-stream-library

Version:

Media stream library for Node & the Web.

56 lines (55 loc) 1.85 kB
import { Component, Sink, Source, Tube } from '../components/component'; /** * Pipeline * * A pipeline is a linked list of components with some convenience methods to * handle inserting or removing components from the linked list. * * A internal set keeps track of which components the pipeline contains, while * any order is completely determined by the component's connectedness. */ export declare class Pipeline { firstComponent: Component; lastComponent: Component; private _set; /** * @param components - The components of the pipeline in order. */ constructor(...components: Component[]); /** * @param components - The components of the pipeline in order. */ init(...components: Component[]): void; /** * Inserts a component into the pipeline. * * @param component - Tube or Source behind which to insert a new component. * @param component - Tube or Sink to insert. */ insertAfter(component: Source | Tube, newComponent: Tube | Sink): this; /** * Inserts a component into the pipeline. * * @param component - Tube or Sink in front of which to insert a new component. * @param component - Tube or Source to insert. */ insertBefore(component: Tube | Sink, newComponent: Source | Tube): this; /** * Removes a component from the pipeline. * * @param component - Component to remove. */ remove(component: Component): this; /** * Inserts a component at the end of the pipeline. * * @param component - Tube or Sink to insert. */ append(...components: Array<Tube | Sink>): this; /** * Inserts a component at the beginning of the pipeline. * * @param component - Tube or Source to insert. */ prepend(...components: Array<Source | Tube>): this; }