//---------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------
    //---------------------------------------------------------------------------------------------------



    //---------------------------------------------------------------------------------------------------
    //----------------------------------- Array Camera operations ---------------------------------------
    //---------------------------------------------------------------------------------------------------
    // Disable all cameras in an array
    public static void DisableAll(Camera[] cameras)
    {
        foreach (Camera camera in cameras)                                                                                      // For each camera
        {
            CameraAdapter.Disable(camera);                                                                                      // Disable it
        }
    }
    // Find next enabled camera
    public static int FindNext(Camera[] cameras)
    {
        int l = cameras.Length;
        int i = CameraAdapter.FindEnabled(cameras);

        if (i == l - 1)
        {
            return(0);
        }
        else if (i == -1)
        {
            return(0);
        }
        else
        {
            return(i + 1);
        }
    }
 /// <summary>
 /// Initiates a new instance of CtrlCamSettings
 /// </summary>
 /// <param name="camera">Camera to initialize values from</param>
 public CtrlCamSettings(CameraAdapter camera)
     : this()
 {
     this.camera = camera;
     UpdateControls();
 }
		private void SetupAdapters()
		{
			cameraAdapter = new VeriLookWebCamAdapter();
			// cameraAdapter.CameraCollectionChanged += new VeriLookWebCamAdapterEventHandler(adapter_CameraCollectionChanged);
			cameraAdapter.ImageCaptured += new ImageCapturedEventHandler(adapter_ImageCaptured);
			cameraAdapter.SelectedCameraChanged += new CameraAdapterEventHandler(adapter_SelectedCameraChanged);
			cameraAdapter.Started += new CameraAdapterEventHandler(adapter_Started);
			cameraAdapter.Stopped += new CameraAdapterEventHandler(adapter_Stopped);

			pipeAdapter = new VideoPipeAdapter("kinectRGB");
		}
		private void adapter_Stopped(CameraAdapter sender)
		{
			//throw new NotImplementedException();
		}
		private void adapter_SelectedCameraChanged(CameraAdapter sender)
		{
			UpdateControlCameras();
		}
		private void adapter_ImageCaptured(CameraAdapter sender, Bitmap capturedImage)
		{
			// Request update video display
			vcImage = capturedImage;
			UpdateVideoControls();
		}
 // Use this for initialization
 void Start()
 {
     CameraAdapter.EnableOne(cameras, 0);
 }
 public void ChangeCamera()
 {
     CameraAdapter.EnableNext(cameras);
 }
    // Switch to next camera in cycle manner
    public static void EnableNext(Camera[] cameras)
    {
        int nextShown = CameraAdapter.FindNext(cameras);                                                        // Find which camera to enable next

        CameraAdapter.EnableOne(cameras, nextShown);                                                            // Enable next camera
    }
 // Make only one camera in an array enabled (at specific index)
 public static void EnableOne(Camera[] cameras, int i)
 {
     CameraAdapter.DisableAll(cameras);                                                                                      // Disable all cameras
     CameraAdapter.Enable(cameras[i]);                                                                                       // Enable selected camera
 }