Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
ds5-options.h
Go to the documentation of this file.
1 // License: Apache 2.0. See LICENSE file in root directory.
2 // Copyright(c) 2015 Intel Corporation. All Rights Reserved.
3 
4 #pragma once
5 
6 #include "ds5-private.h"
7 
8 #include "algo.h"
9 #include "error-handling.h"
10 
11 namespace librealsense
12 {
13  class emitter_option : public uvc_xu_option<uint8_t>
14  {
15  public:
16  const char* get_value_description(float val) const override;
17  explicit emitter_option(uvc_sensor& ep);
18  };
19 
21  {
22  public:
23  float query() const override;
24 
25  option_range get_range() const override;
26 
27  bool is_enabled() const override;
28 
29  const char* get_description() const override;
30 
32 
33  private:
34  uvc_sensor& _ep;
35  rs2_option _option;
36  };
37 
39  {
40  public:
41  float query() const override;
42 
43  option_range get_range() const override;
44 
45  bool is_enabled() const override;
46 
47  const char* get_description() const override;
48 
50 
51  private:
52  const std::string custom_sensor_name = "custom";
53  const std::string report_name = "data-field-custom-value_2";
54  hid_sensor& _ep;
55  };
56 
58  {
59  public:
60  void set(float value) override;
61 
62  float query() const override;
63 
64  bool is_enabled() const override { return true; }
65 
66  const char* get_description() const override
67  {
68  return "Enable/Disable Automatic Motion Data Correction";
69  }
70 
72  const ds::imu_intrinsics& accel,
73  const ds::imu_intrinsics& gyro,
74  const option_range& opt_range);
75 
76  private:
77  std::atomic<bool> _is_enabled;
78  ds::imu_intrinsics _accel;
79  ds::imu_intrinsics _gyro;
80  };
81 
83  {
84  public:
85  void set(float value) override;
86 
87  float query() const override;
88 
89  bool is_enabled() const override { return true; }
90 
91  const char* get_description() const override
92  {
93  return "Enable/disable auto-exposure";
94  }
95 
97  std::shared_ptr<auto_exposure_mechanism> auto_exposure,
98  std::shared_ptr<auto_exposure_state> auto_exposure_state,
99  const option_range& opt_range);
100 
101  private:
102  std::shared_ptr<auto_exposure_state> _auto_exposure_state;
103  std::atomic<bool> _to_add_frames;
104  std::shared_ptr<auto_exposure_mechanism> _auto_exposure;
105  };
106 
108  {
109  public:
110  auto_exposure_mode_option(std::shared_ptr<auto_exposure_mechanism> auto_exposure,
111  std::shared_ptr<auto_exposure_state> auto_exposure_state,
112  const option_range& opt_range,
113  const std::map<float, std::string>& description_per_value);
114 
115  void set(float value) override;
116 
117  float query() const override;
118 
119  bool is_enabled() const override { return true; }
120 
121  const char* get_description() const override
122  {
123  return "Auto-Exposure Mode";
124  }
125 
126  const char* get_value_description(float val) const override;
127 
128  private:
129  const std::map<float, std::string> _description_per_value;
130  std::shared_ptr<auto_exposure_state> _auto_exposure_state;
131  std::shared_ptr<auto_exposure_mechanism> _auto_exposure;
132  };
133 
135  {
136  public:
137  auto_exposure_antiflicker_rate_option(std::shared_ptr<auto_exposure_mechanism> auto_exposure,
138  std::shared_ptr<auto_exposure_state> auto_exposure_state,
139  const option_range& opt_range,
140  const std::map<float, std::string>& description_per_value);
141 
142  void set(float value) override;
143 
144  float query() const override;
145 
146  bool is_enabled() const override { return true; }
147 
148  const char* get_description() const override
149  {
150  return "Auto-Exposure anti-flicker";
151  }
152 
153  const char* get_value_description(float val) const override;
154 
155  private:
156  const std::map<float, std::string> _description_per_value;
157  std::shared_ptr<auto_exposure_state> _auto_exposure_state;
158  std::shared_ptr<auto_exposure_mechanism> _auto_exposure;
159  };
160 
161  class depth_scale_option : public option
162  {
163  public:
165  virtual ~depth_scale_option() = default;
166  virtual void set(float value) override;
167  virtual float query() const override;
168  virtual option_range get_range() const override;
169  virtual bool is_enabled() const override { return true; }
170 
171  const char* get_description() const override
172  {
173  return "Number of meters represented by a single depth unit";
174  }
175  void enable_recording(std::function<void(const option &)> record_action)
176  {
177  _record_action = record_action;
178  }
179  private:
180  ds::depth_table_control get_depth_table(ds::advanced_query_mode mode) const;
181  std::function<void(const option &)> _record_action = [](const option&) {};
182  lazy<option_range> _range;
183  hw_monitor& _hwm;
184  };
185 }
auto_exposure_antiflicker_rate_option(std::shared_ptr< auto_exposure_mechanism > auto_exposure, std::shared_ptr< auto_exposure_state > auto_exposure_state, const option_range &opt_range, const std::map< float, std::string > &description_per_value)
Definition: backend.h:351
Definition: hw-monitor.h:98
rs2_option
Defines general configuration controls. These can generally be mapped to camera UVC controls...
Definition: rs_option.h:22
Definition: options.h:20
Definition: types.h:268
const char * get_value_description(float val) const override
Definition: option.h:19
advanced_query_mode
Definition: ds5-private.h:107
virtual ~depth_scale_option()=default
const char * get_description() const override
Definition: ds5-options.h:121
bool is_enabled() const override
Definition: ds5-options.h:64
enable_motion_correction(sensor_base *mm_ep, const ds::imu_intrinsics &accel, const ds::imu_intrinsics &gyro, const option_range &opt_range)
virtual option_range get_range() const override
auto_exposure_mode_option(std::shared_ptr< auto_exposure_mechanism > auto_exposure, std::shared_ptr< auto_exposure_state > auto_exposure_state, const option_range &opt_range, const std::map< float, std::string > &description_per_value)
const char * get_description() const override
Definition: ds5-options.h:66
const char * get_description() const override
Definition: ds5-options.h:171
Definition: ds5-options.h:161
const char * get_description() const override
bool is_enabled() const override
Definition: ds5-options.h:89
asic_and_projector_temperature_options(uvc_sensor &ep, rs2_option opt)
Definition: algo.h:16
Definition: ds5-private.h:201
void enable_recording(std::function< void(const option &)> record_action)
Definition: ds5-options.h:175
virtual float query() const override
Definition: option.h:64
virtual bool is_enabled() const override
Definition: ds5-options.h:169
const char * get_description() const override
Definition: ds5-options.h:91
Definition: ds5-options.h:57
const char * get_description() const override
Definition: ds5-options.h:148
Definition: options.h:12
const char * get_value_description(float val) const override
enable_auto_exposure_option(uvc_sensor *fisheye_ep, std::shared_ptr< auto_exposure_mechanism > auto_exposure, std::shared_ptr< auto_exposure_state > auto_exposure_state, const option_range &opt_range)
depth_scale_option(hw_monitor &hwm)
Definition: option.h:206
emitter_option(uvc_sensor &ep)
bool is_enabled() const override
Definition: ds5-options.h:119
bool is_enabled() const override
Definition: ds5-options.h:146
Definition: sensor.h:121
Definition: ds5-options.h:13
Definition: sensor.h:31
option_range get_range() const override
Definition: ds5-options.h:82
constexpr uint32_t auto_exposure
Definition: ros_file_format.h:623
Definition: sensor.h:173
const char * get_value_description(float val) const override
Definition: ds5-private.h:284
Definition: ds5-options.h:107