Beispiel #1
0
        void DataReceived(object sender, BaseCamera.DataReceivedEventArgs e)
        {
            if (!BufferUsageDisabled)
            {
                VideoBufferInUse = true;
                switch (Mode)
                {
                case Modes.IR1024:
                case Modes.IR480:
                    VideoTextureBuffer.SetData(e.Data.Data);
                    break;

                case Modes.RGB1024:
                case Modes.RGB480:
                case Modes.Depth480:
                    ConvertColorData(e.Data.Data, Prebuffer);
                    VideoTextureBuffer.SetData(Prebuffer);
                    break;
                }
                if (Mode != Modes.Depth480)
                {
                    FrameCounter++;
                }
                VideoBufferInUse = false;
            }
            else
            {
                BufferReleaseARE.Set();
            }
            FrameID++;



            OnRawFrameIn(e.Data.Data, FrameTypes.Color);
            if (RawSaveDataNext)
            {
                string path = RawSavePath + ".rwc";
                try
                {
                    File.WriteAllBytes(path, e.Data.Data);
                    SendIOEvent(new IOEventArgs(path, true, null));
                }
                catch (Exception t)
                {
                    SendIOEvent(new IOEventArgs(path, false, t.Message));
                }
                RawSaveDataNext = false;
            }
        }
Beispiel #2
0
        void ProcessingWorker()
        {
            XKinect.LED.Color = LEDColor.Red;
            ThreadsOn         = true;
            while (ThreadsOn)
            {
                Kinect.ProcessEvents();
                XKinect.UpdateStatus();
                Thread.Sleep(1);
            }

            switch (Mode)
            {
            case Modes.RGB1024:
            case Modes.RGB480:
                XKinect.VideoCamera.Stop();
                VideoTextureBuffer.Dispose();
                break;

            case Modes.IR1024:
            case Modes.IR480:
                XKinect.VideoCamera.Stop();
                VideoTextureBuffer.Dispose();
                break;

            case Modes.Depth480:
                XKinect.DepthCamera.Stop();
                DepthTextureBuffer.Dispose();
                XKinect.VideoCamera.Stop();
                VideoTextureBuffer.Dispose();
                break;
            }
            Prebuffer         = null;
            XKinect.LED.Color = LEDColor.Yellow;
            StopARE.Set();
        }