public RootSystem.Collections.Generic.IList <Windows.Kinect.AudioBeamFrame> AcquireBeamFrames()
        {
            if (_pNative == RootSystem.IntPtr.Zero)
            {
                throw new RootSystem.ObjectDisposedException("AudioBeamFrameReference");
            }

            int outCollectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames_Length(_pNative);
            var outCollection     = new RootSystem.IntPtr[outCollectionSize];
            var managedCollection = new Windows.Kinect.AudioBeamFrame[outCollectionSize];

            outCollectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames(_pNative, outCollection, outCollectionSize);
            Helper.ExceptionHelper.CheckLastError();
            for (int i = 0; i < outCollectionSize; i++)
            {
                if (outCollection[i] == RootSystem.IntPtr.Zero)
                {
                    continue;
                }

                var obj = Helper.NativeObjectCache.CreateOrGetObject <Windows.Kinect.AudioBeamFrame>(outCollection[i], n => new Windows.Kinect.AudioBeamFrame(n));

                managedCollection[i] = obj;
            }
            return(managedCollection);
        }
Exemplo n.º 2
0
        public RootSystem.Collections.Generic.IList<Windows.Kinect.AudioBeamFrame> AcquireBeamFrames()
        {
            if (_pNative == RootSystem.IntPtr.Zero)
            {
                throw new RootSystem.ObjectDisposedException("AudioBeamFrameReference");
            }

            int outCollectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames_Length(_pNative);
            var outCollection = new RootSystem.IntPtr[outCollectionSize];
            var managedCollection = new Windows.Kinect.AudioBeamFrame[outCollectionSize];

            outCollectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames(_pNative, outCollection, outCollectionSize);
            Helper.ExceptionHelper.CheckLastError();
            for(int i=0;i<outCollectionSize;i++)
            {
                if(outCollection[i] == RootSystem.IntPtr.Zero)
                {
                    continue;
                }

                var obj = Helper.NativeObjectCache.CreateOrGetObject<Windows.Kinect.AudioBeamFrame>(outCollection[i], n => new Windows.Kinect.AudioBeamFrame(n));

                managedCollection[i] = obj;
            }
            return managedCollection;
        }
Exemplo n.º 3
0
        public Windows.Kinect.AudioBeamFrame[] AcquireBeamFrames()
        {
            if (_pNative == RootSystem.IntPtr.Zero)
            {
                throw new RootSystem.ObjectDisposedException("AudioBeamFrameReference");
            }

            int collectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames_Length(_pNative);
            var outCollection = new RootSystem.IntPtr[collectionSize];
            var managedCollection = new Windows.Kinect.AudioBeamFrame[collectionSize];

            collectionSize = Windows_Kinect_AudioBeamFrameReference_AcquireBeamFrames(_pNative, outCollection, collectionSize);
            for(int i=0;i<collectionSize;i++)
            {
                if(outCollection[i] == RootSystem.IntPtr.Zero)
                {
                    continue;
                }

                outCollection[i] = Helper.NativeObjectCache.MapToIUnknown(outCollection[i]);
                var obj = Helper.NativeObjectCache.GetObject<Windows.Kinect.AudioBeamFrame>(outCollection[i]);
                if (obj == null)
                {
                    obj = new Windows.Kinect.AudioBeamFrame(outCollection[i]);
                    Helper.NativeObjectCache.AddObject<Windows.Kinect.AudioBeamFrame>(outCollection[i], obj);
                }

                managedCollection[i] = obj;
            }
            return managedCollection;
        }