Esempio n. 1
0
        private void AddWebcameras()
        {
            try
            {
                List <string> monikers = new List <string>();
                var           loaclWebCamsCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
                foreach (Accord.Video.DirectShow.FilterInfo localcamera in loaclWebCamsCollection)
                {
                    monikers.Add(localcamera.MonikerString);
                    bool added = false;
                    foreach (ICameraDevice device in ConnectedDevices)
                    {
                        WebCameraDevice webCamera = device as WebCameraDevice;
                        if (webCamera != null)
                        {
                            if (webCamera.PortName == localcamera.MonikerString)
                            {
                                added = true;
                            }
                        }
                    }

                    if (added)
                    {
                        continue;
                    }

                    WebCameraDevice camera = new WebCameraDevice();
                    camera.Init(localcamera.MonikerString);
                    camera.DeviceName   = localcamera.Name;
                    camera.SerialNumber = localcamera.MonikerString;

                    ConnectedDevices.Add(camera);

                    SelectedCameraDevice = camera;

                    camera.PhotoCaptured      += cameraDevice_PhotoCaptured;
                    camera.CameraDisconnected += cameraDevice_CameraDisconnected;

                    CameraConnected?.Invoke(camera);
                }
                //List<WebCameraDevice> devicesToDisconnect = ConnectedDevices.OfType<WebCameraDevice>()
                //    .Where(webCamera => !monikers.Contains(webCamera.PortName))
                //    .ToList();
                //foreach (var webCamera in devicesToDisconnect)
                //{
                //    cameraDevice_CameraDisconnected(webCamera, new DisconnectCameraEventArgs() { });
                //}
            }
            catch (Exception ex)
            {
                Log.Error("Unable to connect to a webcamera", ex);
            }
        }
Esempio n. 2
0
 private void OnCameraConnected()
 {
     CameraConnected?.Invoke(this, EventArgs.Empty);
 }
Esempio n. 3
0
 public static extern IntPtr CreateCamera(string name, RegionOfInterest roi,
                                          FrameArrived frameArrived, CameraConnected connected, CameraDisconnected disconnected);
Esempio n. 4
0
 void RaiseCameraConnectedEvent(bool connected)
 {
     CameraConnected?.Invoke(connected);
 }