Пример #1
0
        /// <summary>
        /// Sets up a callback that is invoked whenever a new RealSense device is connected
        /// or an existing device is disconnected.
        /// </summary>
        /// <param name="callback">The function to be called whenever a device is connected or disconnected.</param>
        public void SetDevicesChangedCallback(DevicesChangedCallback callback)
        {
            if (callback == null)
            {
                throw new ArgumentNullException(nameof(callback));
            }

            devicesChangedCallback = (removedListPtr, addedListPtr, user) =>
            {
                var removedList = new DeviceListHandle(removedListPtr);
                var addedList   = new DeviceListHandle(addedListPtr);
                using (var removed = new DeviceCollection(removedList))
                    using (var added = new DeviceCollection(addedList))
                    {
                        callback(removed, added);
                    }
            };
            NativeMethods.rs2_set_devices_changed_callback(handle, devicesChangedCallback, IntPtr.Zero, out IntPtr error);
            NativeHelper.ThrowExceptionForRsError(error);
        }
Пример #2
0
 internal static extern void rs2_set_devices_changed_callback(ContextHandle context, DevicesChangedCallback callback, IntPtr user, out RsError error);