openmixer — generated API reference
    Preparing search index...

    Function planGhostReplacement

    • Move every channel patched to a departed box onto a present one, port for port.

      THE MAPPING IS BY ORDINAL, never by name. Two boxes of the same width name their ports identically only by luck — a segment suffix alone changes them — so matching on the string would move nothing while appearing to work. Position within the box is the fact both sides share, and it is what the operator means by "the same input".

      A NARROWER replacement produces SURPLUS, not a wrap. Wrapping would put two channels on one input silently, which is the class of defect that costs a show; the surplus is returned so the caller can say which channels it could not place and leave them unpatched.

      Pure: it decides, it does not write. The caller makes the ordinary per-channel patch writes.

      Parameters

      • opts: {
            ghostPorts: readonly string[];
            patched: readonly { channel: ChannelId; port: string }[];
            targetPorts: readonly string[];
        }

      Returns GhostReplacementPlan