예제 #1
0
        // Token: 0x06002957 RID: 10583 RVA: 0x000D3978 File Offset: 0x000D1D78
        public void CopyFrameDataToArray(ushort[] frameData)
        {
            if (this._pNative == IntPtr.Zero)
            {
                throw new ObjectDisposedException("InfraredFrame");
            }
            SmartGCHandle smartGCHandle = new SmartGCHandle(GCHandle.Alloc(frameData, GCHandleType.Pinned));
            IntPtr        frameData2    = smartGCHandle.AddrOfPinnedObject();

            InfraredFrame.Windows_Kinect_InfraredFrame_CopyFrameDataToArray(this._pNative, frameData2, frameData.Length);
            ExceptionHelper.CheckLastError();
        }
예제 #2
0
 // Token: 0x0600294F RID: 10575 RVA: 0x000D3800 File Offset: 0x000D1C00
 private void Dispose(bool disposing)
 {
     if (this._pNative == IntPtr.Zero)
     {
         return;
     }
     this.__EventCleanup();
     NativeObjectCache.RemoveObject <InfraredFrame>(this._pNative);
     if (disposing)
     {
         InfraredFrame.Windows_Kinect_InfraredFrame_Dispose(this._pNative);
     }
     InfraredFrame.Windows_Kinect_InfraredFrame_ReleaseObject(ref this._pNative);
     this._pNative = IntPtr.Zero;
 }
예제 #3
0
        // Token: 0x0600294A RID: 10570 RVA: 0x000D3754 File Offset: 0x000D1B54
        public KinectBuffer LockImageBuffer()
        {
            if (this._pNative == IntPtr.Zero)
            {
                throw new ObjectDisposedException("InfraredFrame");
            }
            IntPtr intPtr = InfraredFrame.Windows_Kinect_InfraredFrame_LockImageBuffer(this._pNative);

            ExceptionHelper.CheckLastError();
            if (intPtr == IntPtr.Zero)
            {
                return(null);
            }
            return(NativeObjectCache.CreateOrGetObject <KinectBuffer>(intPtr, (IntPtr n) => new KinectBuffer(n)));
        }
    public bool GetMultiSourceFrame(KinectInterop.SensorData sensorData)
    {
        if(multiSourceFrameReader != null)
        {
            multiSourceFrame = multiSourceFrameReader.AcquireLatestFrame();

            if(multiSourceFrame != null)
            {
                // try to get all frames at once
                msBodyFrame = (sensorFlags & KinectInterop.FrameSource.TypeBody) != 0 ? multiSourceFrame.BodyFrameReference.AcquireFrame() : null;
                msBodyIndexFrame = (sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0 ? multiSourceFrame.BodyIndexFrameReference.AcquireFrame() : null;
                msColorFrame = (sensorFlags & KinectInterop.FrameSource.TypeColor) != 0 ? multiSourceFrame.ColorFrameReference.AcquireFrame() : null;
                msDepthFrame = (sensorFlags & KinectInterop.FrameSource.TypeDepth) != 0 ? multiSourceFrame.DepthFrameReference.AcquireFrame() : null;
                msInfraredFrame = (sensorFlags & KinectInterop.FrameSource.TypeInfrared) != 0 ? multiSourceFrame.InfraredFrameReference.AcquireFrame() : null;

                bool bAllSet =
                    ((sensorFlags & KinectInterop.FrameSource.TypeBody) == 0 || msBodyFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) == 0 || msBodyIndexFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeColor) == 0 || msColorFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeDepth) == 0 || msDepthFrame != null) &&
                    ((sensorFlags & KinectInterop.FrameSource.TypeInfrared) == 0 || msInfraredFrame != null);

                if(!bAllSet)
                {
                    // release all frames
                    if(msBodyFrame != null)
                    {
                        msBodyFrame.Dispose();
                        msBodyFrame = null;
                    }

                    if(msBodyIndexFrame != null)
                    {
                        msBodyIndexFrame.Dispose();
                        msBodyIndexFrame = null;
                    }

                    if(msColorFrame != null)
                    {
                        msColorFrame.Dispose();
                        msColorFrame = null;
                    }

                    if(msDepthFrame != null)
                    {
                        msDepthFrame.Dispose();
                        msDepthFrame = null;
                    }

                    if(msInfraredFrame != null)
                    {
                        msInfraredFrame.Dispose();
                        msInfraredFrame = null;
                    }
                }
        //				else
        //				{
        //					bool bNeedBody = (sensorFlags & KinectInterop.FrameSource.TypeBody) != 0;
        //					bool bNeedBodyIndex = (sensorFlags & KinectInterop.FrameSource.TypeBodyIndex) != 0;
        //					bool bNeedColor = (sensorFlags & KinectInterop.FrameSource.TypeColor) != 0;
        //					bool bNeedDepth = (sensorFlags & KinectInterop.FrameSource.TypeDepth) != 0;
        //					bool bNeedInfrared = (sensorFlags & KinectInterop.FrameSource.TypeInfrared) != 0;
        //
        //					bAllSet = true;
        //				}
            }

            return (multiSourceFrame != null);
        }

        return false;
    }
    public void FreeMultiSourceFrame(KinectInterop.SensorData sensorData)
    {
        // release all frames
        if(msBodyFrame != null)
        {
            msBodyFrame.Dispose();
            msBodyFrame = null;
        }

        if(msBodyIndexFrame != null)
        {
            msBodyIndexFrame.Dispose();
            msBodyIndexFrame = null;
        }

        if(msColorFrame != null)
        {
            msColorFrame.Dispose();
            msColorFrame = null;
        }

        if(msDepthFrame != null)
        {
            msDepthFrame.Dispose();
            msDepthFrame = null;
        }

        if(msInfraredFrame != null)
        {
            msInfraredFrame.Dispose();
            msInfraredFrame = null;
        }

        if(multiSourceFrame != null)
        {
            multiSourceFrame = null;
        }
    }
예제 #6
0
 // Token: 0x06002946 RID: 10566 RVA: 0x000D3704 File Offset: 0x000D1B04
 internal InfraredFrame(IntPtr pNative)
 {
     this._pNative = pNative;
     InfraredFrame.Windows_Kinect_InfraredFrame_AddRefObject(ref this._pNative);
 }