using Hawkeye.VisionBuilder.UI.Sources.Emulation; using Ninject; using Ninject.Extensions.ChildKernel; using VisionBuilder.UI.Common; using VisionBuilder.UI.Common.RecipeProcessing; namespace Lindt.Colorballs.Duo.Utils; public static class ModuleExtensions { public static IChildKernel RegisterCamera(this IChildKernel self, string cameraName) { self.Bind().ToConstant(new CameraSettings(cameraName)); self.Bind().ToConstant(new EmulationSettings(cameraName)); return self; } private static void BindCameras(CameraSettings cameraSettings, IChildKernel kernel) { switch (cameraSettings.CameraSource) { case CameraSettings.EImageSource.Emulation: kernel.Bind().To().InSingletonScope(); break; case CameraSettings.EImageSource.Hawkeye: break; case CameraSettings.EImageSource.IDS: break; case CameraSettings.EImageSource.Basler: break; default: throw new ArgumentOutOfRangeException(); } } public static IChildKernel UseCamera(this IChildKernel self) { var cameraSettings = self.Get(); BindCameras(cameraSettings, self); return self; } }