diff --git a/src/TeamsISO.Engine/Interop/NdiRuntimeProbe.cs b/src/TeamsISO.Engine/Interop/NdiRuntimeProbe.cs index 48e17cf..ed2278a 100644 --- a/src/TeamsISO.Engine/Interop/NdiRuntimeProbe.cs +++ b/src/TeamsISO.Engine/Interop/NdiRuntimeProbe.cs @@ -11,25 +11,26 @@ public abstract record NdiRuntimeProbeResult /// /// Compares the installed NDI runtime version (read via ) -/// against the version expected by the bundled SDK headers. Surfaces mismatches so the engine -/// can raise EngineAlert.NdiRuntimeMismatch. +/// against an expected prefix supplied at construction. Prefix matching is used because the NDI +/// runtime reports a longer string (e.g. "NDI SDK for Windows v6.0.1.0") and we typically only +/// care that the major SDK family is correct ("NDI SDK for Windows v6"). /// public sealed class NdiRuntimeProbe { private readonly INdiInterop _interop; - private readonly string _expectedVersion; + private readonly string _expectedPrefix; public NdiRuntimeProbe(INdiInterop interop, string expectedVersion) { _interop = interop; - _expectedVersion = expectedVersion; + _expectedPrefix = expectedVersion; } public NdiRuntimeProbeResult Probe() { var detected = _interop.GetRuntimeVersion(); - return string.Equals(detected, _expectedVersion, StringComparison.Ordinal) + return detected.StartsWith(_expectedPrefix, StringComparison.Ordinal) ? new NdiRuntimeProbeResult.Match(detected) - : new NdiRuntimeProbeResult.Mismatch(detected, _expectedVersion); + : new NdiRuntimeProbeResult.Mismatch(detected, _expectedPrefix); } }