Program Listing for File rs_options.hpp
↰ Return to documentation for file (/tmp/ws/src/librealsense2/include/librealsense2/hpp/rs_options.hpp
)
// License: Apache 2.0. See LICENSE file in root directory.
// Copyright(c) 2019 Intel Corporation. All Rights Reserved.
#ifndef LIBREALSENSE_RS2_OPTIONS_HPP
#define LIBREALSENSE_RS2_OPTIONS_HPP
#include "rs_types.hpp"
namespace rs2
{
class options
{
public:
bool supports(rs2_option option) const
{
rs2_error* e = nullptr;
auto res = rs2_supports_option(_options, option, &e);
error::handle(e);
return res > 0;
}
const char* get_option_description(rs2_option option) const
{
rs2_error* e = nullptr;
auto res = rs2_get_option_description(_options, option, &e);
error::handle(e);
return res;
}
const char* get_option_name(rs2_option option) const
{
rs2_error* e = nullptr;
auto res = rs2_get_option_name(_options, option, &e);
error::handle(e);
return res;
}
const char* get_option_value_description(rs2_option option, float val) const
{
rs2_error* e = nullptr;
auto res = rs2_get_option_value_description(_options, option, val, &e);
error::handle(e);
return res;
}
float get_option(rs2_option option) const
{
rs2_error* e = nullptr;
auto res = rs2_get_option(_options, option, &e);
error::handle(e);
return res;
}
option_range get_option_range(rs2_option option) const
{
option_range result;
rs2_error* e = nullptr;
rs2_get_option_range(_options, option,
&result.min, &result.max, &result.step, &result.def, &e);
error::handle(e);
return result;
}
void set_option(rs2_option option, float value) const
{
rs2_error* e = nullptr;
rs2_set_option(_options, option, value, &e);
error::handle(e);
}
bool is_option_read_only(rs2_option option) const
{
rs2_error* e = nullptr;
auto res = rs2_is_option_read_only(_options, option, &e);
error::handle(e);
return res > 0;
}
std::vector<rs2_option> get_supported_options()
{
std::vector<rs2_option> res;
rs2_error* e = nullptr;
std::shared_ptr<rs2_options_list> options_list(
rs2_get_options_list(_options, &e),
rs2_delete_options_list);
for (auto opt = 0; opt < rs2_get_options_list_size(options_list.get(), &e);opt++)
{
res.push_back(rs2_get_option_from_list(options_list.get(), opt, &e));
}
return res;
};
options& operator=(const options& other)
{
_options = other._options;
return *this;
}
// if operator= is ok, this should be ok too
options(const options& other) : _options(other._options) {}
virtual ~options() = default;
protected:
explicit options(rs2_options* o = nullptr) : _options(o)
{
}
template<class T>
options& operator=(const T& dev)
{
_options = (rs2_options*)(dev.get());
return *this;
}
private:
rs2_options* _options;
};
}
#endif // LIBREALSENSE_RS2_OIPTIONS_HPP