Go to the documentation of this file.00001
00002
00003
00004 #pragma once
00005 #ifndef LIBREALSENSE_IV_CAMERA_H
00006 #define LIBREALSENSE_IV_CAMERA_H
00007
00008 #include "ivcam-private.h"
00009 #include "device.h"
00010
00011 namespace rsimpl
00012 {
00013 struct cam_mode { int2 dims; std::vector<int> fps; };
00014
00015 rs_intrinsics MakeDepthIntrinsics(const ivcam::camera_calib_params & c, const int2 & dims);
00016 rs_intrinsics MakeColorIntrinsics(const ivcam::camera_calib_params & c, const int2 & dims);
00017 void update_supported_options(uvc::device& dev,
00018 const uvc::extension_unit depth_xu,
00019 const std::vector <std::pair<rs_option, char>> options,
00020 std::vector<supported_option>& supported_options);
00021
00022 class iv_camera : public rs_device_base
00023 {
00024 protected:
00025 std::timed_mutex usbMutex;
00026
00027 ivcam::camera_calib_params base_calibration;
00028 ivcam::cam_auto_range_request arr;
00029
00030 public:
00031 iv_camera(std::shared_ptr<uvc::device> device, const static_device_info & info, const ivcam::camera_calib_params & calib);
00032 ~iv_camera() {};
00033
00034 void on_before_start(const std::vector<subdevice_mode_selection> & selected_modes) override;
00035 rs_stream select_key_stream(const std::vector<rsimpl::subdevice_mode_selection> & selected_modes) override;
00036
00037 void set_options(const rs_option options[], size_t count, const double values[]) override;
00038 void get_options(const rs_option options[], size_t count, double values[]) override;
00039
00040 std::vector<std::shared_ptr<frame_timestamp_reader>> create_frame_timestamp_readers() const override;
00041
00042 void start_fw_logger(char fw_log_op_code, int grab_rate_in_ms, std::timed_mutex& mutex) override;
00043 void stop_fw_logger() override;
00044 };
00045 }
00046
00047 #endif // IV_CAMERA_H