/// <summary>
        /// take a single depth grey color image shot
        /// </summary>
        /// <returns></returns>
        public WriteableBitmap DepthSnapshot()
        {
            for (; ;)
            {
                if (senseManager.AcquireFrame(true).IsError())
                {
                    throw new Exception("Failed to acquire frame");
                    break;
                }
                else
                {
                    // capture
                    PXCMCapture.Sample sample = senseManager.QuerySample();
                    PXCMImage          MyImg  = sample.depth;

                    //test
                    PXCMImage.ImageData MyImgData;

                    MyImg.AcquireAccess(PXCMImage.Access.ACCESS_READ, PXCMImage.PixelFormat.PIXEL_FORMAT_DEPTH, out MyImgData);
                    WriteableBitmap WBmp = MyImgData.ToWritableBitmap(0, MyImg.info.width, MyImg.info.height, 96, 96);

                    // release
                    senseManager.ReleaseFrame();
                    return(WBmp);
                    //break;
                }
            }

            ////should be used if we want to shut down the cam .
            //senseManager.Dispose();

            return(null);
        }
        /// <summary>
        /// take a single color photo
        /// </summary>
        /// <returns>returns a bitmap</returns>
        public Bitmap ColorSnapshot()
        {
            Bitmap bmp = new Bitmap(10, 10);

            for (; ;)
            {
                if (senseManager.AcquireFrame(true).IsError())
                {
                    throw new Exception("Failed to acquire frame");
                    break;
                }
                else
                {
                    // capture
                    PXCMCapture.Sample sample = senseManager.QuerySample();
                    PXCMImage          MyImg  = sample.color;

                    //test
                    PXCMImage.ImageData MyImgData;

                    MyImg.AcquireAccess(PXCMImage.Access.ACCESS_READ, out MyImgData);
                    bmp = MyImgData.ToBitmap(0, MyImg.info.width, MyImg.info.height);



                    // release
                    senseManager.ReleaseFrame();
                    break;
                }
            }

            ////should be used if we want to shut down the cam .
            //senseManager.Dispose();

            return(bmp);
        }