Example #1
0
        /// <summary>Create a new device and add it to the context</summary>
        /// <param name="file">The file from which the device should be created</param>
        /// <returns>a device that plays data from the file</returns>
        public PlaybackDevice AddDevice(string file)
        {
            object error;
            var    ptr = NativeMethods.rs2_context_add_device(Handle, file, out error);

            return(Device.Create <PlaybackDevice>(ptr));
        }
        /// <summary>
        /// Create an <see cref="AdvancedDevice"/> from existing <see cref="Device"/>
        /// </summary>
        /// <param name="dev">a device that supports <see cref="Extension.AdvancedMode"/></param>
        /// <returns>a new <see cref="AdvancedDevice"/></returns>
        /// <exception cref="ArgumentException">Thrown when <paramref name="dev"/> does not support <see cref="Extension.AdvancedMode"/></exception>
        public static AdvancedDevice FromDevice(Device dev)
        {
            object error;

            if (NativeMethods.rs2_is_device_extendable_to(dev.Handle, Extension.AdvancedMode, out error) == 0)
            {
                throw new ArgumentException($"Device does not support {nameof(Extension.AdvancedMode)}");
            }

            return(Device.Create <AdvancedDevice>(dev.Handle));
        }
Example #3
0
        /// <summary>
        /// Create a <see cref="PlaybackDevice"/> from existing <see cref="Device"/>
        /// </summary>
        /// <param name="dev">a device that supports <see cref="Extension.Playback"/></param>
        /// <returns>a new <see cref="PlaybackDevice"/></returns>
        /// <exception cref="ArgumentException">Thrown when <paramref name="dev"/> does not support <see cref="Extension.Playback"/></exception>
        public static PlaybackDevice FromDevice(Device dev)
        {
            object error;

            if (NativeMethods.rs2_is_device_extendable_to(dev.Handle, Extension.Playback, out error) == 0)
            {
                throw new ArgumentException($"Device does not support {nameof(Extension.Playback)}");
            }

            var playback = Device.Create <PlaybackDevice>(dev.Handle);

            playback.FileName = Marshal.PtrToStringAnsi(NativeMethods.rs2_playback_device_get_file_path(dev.Handle, out error));
            return(playback);
        }
Example #4
0
 public T As <T>()
     where T : Device
 {
     return(Device.Create <T>(Handle));
 }
Example #5
0
 public static CalibratedDevice FromDevice(Device dev)
 {
     return(Device.Create <CalibratedDevice>(dev.Handle));;
 }
 public static SerializableDevice FromDevice(Device dev)
 {
     return(Device.Create <SerializableDevice>(dev.Handle));
 }