Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Interface InitPipelinePorts

    Pipeline only builds the subsystem graph. Post-construction work (dataset routing, beforeunload/focus listeners, debug interface) runs in the orchestrator after it copies the result onto its own fields, because those steps call back into orchestrator methods that read this.inputHandler / this.sceneManager etc.

    getPanelVisibilityStates / restorePanelVisibilityStates are the only callbacks the pipeline captures during construction — they wire into RecordingPanel.setPanelStateCallbacks at the moment of recording-panel build, and the orchestrator's closures over this resolve correctly by the time the recording panel actually calls them.

    interface InitPipelinePorts {
        options: LuxarAppOptions;
        events: EventGroup;
        getPanelVisibilityStates: () => Map<string, boolean>;
        restorePanelVisibilityStates: (states: Map<string, boolean>) => void;
        emitEmbedderEvent: (
            event: "sound-ended" | "sound-started",
            payload: { name: string },
        ) => void;
    }
    Index
    events: EventGroup
    getPanelVisibilityStates: () => Map<string, boolean>
    restorePanelVisibilityStates: (states: Map<string, boolean>) => void
    emitEmbedderEvent: (
        event: "sound-ended" | "sound-started",
        payload: { name: string },
    ) => void

    Emit a public embedder event (the audio engine's sound-started / sound-ended).