Go to the documentation of this file.00001
00002
00003
00004 #pragma once
00005 #ifndef LIBREALSENSE_ds_device_H
00006 #define LIBREALSENSE_ds_device_H
00007
00008 #include "device.h"
00009 #include "ds-private.h"
00010
00011 #define R200_PRODUCT_ID 0x0a80
00012 #define LR200_PRODUCT_ID 0x0abf
00013 #define ZR300_PRODUCT_ID 0x0acb
00014 #define FISHEYE_PRODUCT_ID 0x0ad0
00015
00016 namespace rsimpl
00017 {
00018 namespace ds
00019 {
00020 enum subdevices
00021 {
00022 SUB_DEVICE_INFRARED = 0,
00023 SUB_DEVICE_DEPTH = 1,
00024 SUB_DEVICE_COLOR = 2,
00025 SUB_DEVICE_FISHEYE = 3,
00026 };
00027
00028
00029
00030 class ds_device : public rs_device_base
00031 {
00032 protected:
00033
00034
00035 bool is_disparity_mode_enabled() const;
00036 void on_update_depth_units(uint32_t units);
00037 void on_update_disparity_multiplier(double multiplier);
00038 uint32_t get_lr_framerate() const;
00039 std::vector<supported_option> get_ae_range_vec();
00040 time_pad start_stop_pad;
00041
00042 public:
00043 ds_device(std::shared_ptr<uvc::device> device, const static_device_info & info, calibration_validator validator);
00044 ~ds_device();
00045
00046 bool supports_option(rs_option option) const override;
00047 void get_option_range(rs_option option, double & min, double & max, double & step, double & def) override;
00048 void set_options(const rs_option options[], size_t count, const double values[]) override;
00049 void get_options(const rs_option options[], size_t count, double values[]) override;
00050
00051 void on_before_start(const std::vector<subdevice_mode_selection> & selected_modes) override;
00052 rs_stream select_key_stream(const std::vector<rsimpl::subdevice_mode_selection> & selected_modes) override;
00053 std::shared_ptr<frame_timestamp_reader> create_frame_timestamp_reader(int subdevice) const;
00054 std::vector<std::shared_ptr<frame_timestamp_reader>> create_frame_timestamp_readers() const override;
00055
00056 static void set_common_ds_config(std::shared_ptr<uvc::device> device, static_device_info& info, const ds::ds_info& cam_info);
00057
00058 virtual void stop(rs_source source) override;
00059 virtual void start(rs_source source) override;
00060
00061 virtual void start_fw_logger(char fw_log_op_code, int grab_rate_in_ms, std::timed_mutex& mutex) override;
00062 virtual void stop_fw_logger() override;
00063 };
00064 }
00065 }
00066
00067 #endif // ds_device_H