freenect_get_tilt_state() private method

private freenect_get_tilt_state ( IntPtr device ) : IntPtr
device System.IntPtr
return System.IntPtr
Example #1
0
        // Kinect's status thread to process freenect's events
        private static void KinectStatusThread( )
        {
            while (!stopEvent.WaitOne(100, false))
            {
                lock ( openDevices )
                {
                    if (openDevices.Count != 0)
                    {
                        // update the status for each open device
                        foreach (DeviceContext deviceContext in openDevices.Values)
                        {
                            if (deviceContext.DeviceFailed)
                            {
                                continue;
                            }

                            if (KinectNative.freenect_update_tilt_state(deviceContext.Device) < 0)
                            {
                                deviceContext.DeviceFailed = true;
                                deviceContext.FireFailureHandlers( );
                            }
                            else
                            {
                                // get updated device status
                                IntPtr ptr = KinectNative.freenect_get_tilt_state(deviceContext.Device);
                                deviceContext.TiltState = (KinectNative.TiltState)
                                                          System.Runtime.InteropServices.Marshal.PtrToStructure(ptr, typeof(KinectNative.TiltState));
                            }
                        }
                    }
                }

                // let the kinect library handle any pending stuff on the usb stream
                KinectNative.freenect_process_events_timeout0(KinectNative.Context);
            }
        }