using Ninject; using VisionBuilder.UI.Common; using VisionBuilder.UI.Common.Plugins; using VisionBuilder.UI.Common.Processing; using VisionBuilder.UI.Common.ViewModel.Interfaces.UI; namespace LindtLeerformPlugin; public class Plugin : IPlugin { public void RegisterGlobalModules(IKernel kernel) { kernel.Rebind().To().InSingletonScope(); } public void RegisterCameraModules(IKernel kernel, string cameraName) { kernel.Bind().ToConstant(new LeerformSettings(cameraName)); // Remove existing recognition settings ISettings binding before rebinding var existingRecognitionControlSettings = kernel.GetBindings(typeof(BaseRecognitionControlSettings)).First(); var toRemove = kernel.GetBindings(typeof(ISettings)) .First(x => x.ProviderCallback.Target == existingRecognitionControlSettings.ProviderCallback.Target); kernel.RemoveBinding(toRemove); kernel.Bind() .ToConstant(new LeerformRecognitionControlSettings(cameraName)); kernel.Rebind() .To() .InSingletonScope(); kernel.RegisterModule(); } }