Table of Contents

Class NDISourcesChangedEventArgs

Namespace
VisioForge.Core.Types.X.Sources
Assembly
VisioForge.Core.dll

Carries an updated NDI source snapshot plus the per-item diff for the DeviceEnumerator.NDISourcesChanged event.

public sealed class NDISourcesChangedEventArgs : EventArgs

Inheritance

Inherited Members

Remarks

Threading: the event fires from the background watcher thread that drives NDIlib_find_wait_for_sources. Subscribers that touch UI must marshal to their UI thread (e.g. RunOnUiThread, Dispatcher.Invoke, BeginInvokeOnMainThread) — the SDK does not do that for them.

Identity: "added" / "removed" / "current" are computed by NDI source name (the canonical NDI identifier — two senders with the same Name on the network is the user-visible misconfiguration the NDI spec forbids). A sender that comes back online after a brief disconnect surfaces as a VisioForge.Core.Types.X.Sources.NDISourcesChangedEventArgs.Removed entry followed by an VisioForge.Core.Types.X.Sources.NDISourcesChangedEventArgs.Added entry on the next event, not as a continuous presence — there's no way for libndi (and therefore for us) to correlate that it's the same physical sender.

Constructors

NDISourcesChangedEventArgs(NDISourceInfo[], NDISourceInfo[], NDISourceInfo[])

Initializes a new instance of VisioForge.Core.Types.X.Sources.NDISourcesChangedEventArgs.

public NDISourcesChangedEventArgs(NDISourceInfo[] current, NDISourceInfo[] added, NDISourceInfo[] removed)

Parameters

current NDISourceInfo[]

Full current source list at the moment of the notification.

added NDISourceInfo[]

Sources that appeared since the previous notification.

removed NDISourceInfo[]

Sources that disappeared since the previous notification.

Properties

Added

Sources that appeared since the previous notification (or since the watcher started, on the first event). Never null.

public NDISourceInfo[] Added { get; }

Property Value

NDISourceInfo[]

Current

The full current NDI source list as of this notification — equivalent to what a NDISourcesAsync() call would return at this instant. Never null; empty array if all sources went offline.

public NDISourceInfo[] Current { get; }

Property Value

NDISourceInfo[]

Removed

Sources that disappeared since the previous notification. Never null. Emitted when libndi drops a sender from its internal table after ~5–10 seconds without an mDNS heartbeat.

public NDISourceInfo[] Removed { get; }

Property Value

NDISourceInfo[]