openmixer — generated API reference
    Preparing search index...

    Class DiscoveryController

    Bridges a DiscoveryProvider to the AdapterManager + the server.

    Index
    • Map the discovered device id to an AdapterConfig and add it via the manager (which persists it). Returns the new adapter id. Throws if the device is unknown — the same end state as hand-editing config/adapters.yaml.

      Parameters

      • id: string

      Returns Promise<{ id: string }>

    • Run one scan pass (for discovery.scan), resolving only once the pass is COMPLETE.

      DiscoveryProvider.start() is fire-and-forget by contract, so awaiting it proved nothing: the caller replied to discovery.scan from the pre-scan device set, which on the first click is empty — the whole scan (800ms passive + up to 5s active per NIC on the real REAC provider) was still running. The click looked like a no-op, and the second click returned what the first had since found.

      Providers that can run one deterministic pass expose an awaitable AwaitableScanProvider.scan beyond the base contract (import('./reac-discovery.js').ReacDiscoveryProvider does); we await it when present and fall back to start() otherwise, so a provider without one still works — it just cannot promise a complete set on return.

      Parameters

      Returns Promise<void>

    • Begin scanning (idempotent). Listeners are already bound at construction.

      Parameters

      Returns void

    • Stop scanning and detach listeners (idempotent).

      Returns void

    • Where discovery could not look, and why — shipped alongside list in every discovery.list reply.

      Without this the controller narrowed the provider's knowledge down to a device array on its way to the wire, so "the REAC probe has no CAP_NET_RAW" and "the network is empty" left here as the same message.

      Returns readonly ProbeUnavailable[]