ds-device.h
Go to the documentation of this file.
00001 // License: Apache 2.0. See LICENSE file in root directory.
00002 // Copyright(c) 2016 Intel Corporation. All Rights Reserved.
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         ds_device class is interface that provides partial implementation for ds cameras line functionalities and properties
00029         */
00030         class ds_device : public rs_device_base
00031         {
00032         protected:
00033             // This single function interface enforces implementation by subclasses
00034             //virtual std::shared_ptr<rs_device> make_device(std::shared_ptr<uvc::device> device, static_device_info& info, ds::ds_calibration& c) abstract;
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; // R200 line-up needs minimum 500ms delay between consecutive start-stop commands
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


librealsense
Author(s): Sergey Dorodnicov , Mark Horn , Reagan Lopez
autogenerated on Tue Jun 25 2019 19:54:38