OrbbecSDK2 2.0.2
OrbbecSDK2: New generation Software-Development-Kit for Orbbec 3D-Sensor devices
载入中...
搜索中...
未找到
OB2Playback.hpp
浏览该文件的文档.
1#pragma once
2
3#include "OB2Types.hpp"
4#include <string>
5
6extern "C" {
7#include "h/ob2playback.h"
8}
9
10#include "hpp/OB2Camera.hpp"
11#include "hpp/OB2IMU.hpp"
12
13namespace ob2 {
14
26class playback {
27public:
48 playback(const std::string file_path) {
49 ob2_status_t status;
50 m_playback_handle = ob2_playback_create(file_path.c_str(), &status);
52 }
53
75 pb.m_playback_handle = nullptr;
76 }
77
89 virtual ~playback() noexcept {
90 ob2_status_t status;
91 if(m_playback_handle != nullptr) {
93 }
94 }
95
117 ob2_status_t status;
118 auto device_info = ob2_playback_get_device_info(m_playback_handle, &status);
120 return device_info;
121 }
122
144 ob2_status_t status;
145 auto calibration = ob2_playback_get_cameras_calibration(m_playback_handle, &status);
147 return calibration;
148 }
149
175 ob2_status_t status;
181 }
182
194 virtual void stop() {
195 ob2_status_t status;
198 }
199
200protected:
201 static void capture_callback(ob2_capture_t capture_handle, void *user_data) {
202 auto pb = (playback *)user_data;
203 if(pb->m_capture_cb != nullptr) {
204 pb->m_capture_cb(std::make_shared<capture>(std::move(capture_handle)));
205 }
206 }
207
208 static void imu_sample_callback(ob2_imu_sample_t imu_sample_handle, void *user_data) {
209 auto pb = (playback *)user_data;
210 if(pb->m_imu_sample_cb != nullptr) {
211 pb->m_imu_sample_cb(std::make_shared<imu_sample>(std::move(imu_sample_handle)));
212 }
213 }
214
215 static void playback_state_callback(ob2_playback_state_t state, void *user_data) {
216 auto pb = (playback *)user_data;
217 if(pb->m_playback_state_cb != nullptr) {
218 pb->m_playback_state_cb(state);
219 }
220 }
221
222protected:
226
228};
229} // namespace ob2
#define CHECK_OB2_STATUS_ERROR_THROW(status)
用于将 C API 中的 ob2_status_t 转换成异常抛出
Definition: OB2Types.hpp:22
#define VALIDATE_NOT_NULL(ARG)
用户参数非空校验
Definition: OB2Types.hpp:45
回放器,用于录制器生成的录制文件的播放.
Definition: OB2Playback.hpp:26
ob2_playback_t m_playback_handle
playback_state_cb m_playback_state_cb
static void capture_callback(ob2_capture_t capture_handle, void *user_data)
playback(const std::string file_path)
回放器构造函数
Definition: OB2Playback.hpp:48
capture_cb m_capture_cb
virtual ~playback() noexcept
回放器析构函数
Definition: OB2Playback.hpp:89
static void imu_sample_callback(ob2_imu_sample_t imu_sample_handle, void *user_data)
imu_sample_cb m_imu_sample_cb
virtual void stop()
停止回放
virtual ob2_device_info_t get_device_info()
获取已录制的设备信息
static void playback_state_callback(ob2_playback_state_t state, void *user_data)
virtual ob2_cameras_calibration_t get_cameras_calibration()
获取相机标定参数
virtual void start(capture_cb capture_cb, imu_sample_cb imu_sample_cb, playback_state_cb playback_state_cb)
开启回放
playback(playback &&pb)
通过其他回放器对象构造(移动构造,主要用于派生类的实现)
Definition: OB2Playback.hpp:73
std::function< void(std::shared_ptr< imu_sample >)> imu_sample_cb
IMU 采样回调
Definition: OB2IMU.hpp:448
std::function< void(std::shared_ptr< capture >)> capture_cb
capture 回调函数
Definition: OB2Camera.hpp:1289
std::function< void(ob2_playback_state_t state)> playback_state_cb
回放器回放状态回调
Definition: OB2Types.hpp:87
void ob2_playback_stop(ob2_playback_t playback_handle, ob2_status_t *status)
停止回放
void ob2_playback_close(ob2_playback_t playback_handle, ob2_status_t *status)
关闭回放器
void ob2_playback_start(ob2_playback_t playback_handle, ob2_capture_cb_t capture_callback, ob2_imu_sample_cb_t imu_sample_callback, ob2_playback_state_cb_t state_callback, void *user_data, ob2_status_t *status)
开启回放
ob2_device_info_t ob2_playback_get_device_info(ob2_playback_t playback_handle, ob2_status_t *status)
获取已录制的设备信息
ob2_cameras_calibration_t ob2_playback_get_cameras_calibration(ob2_playback_t playback_handle, ob2_status_t *status)
获取相机标定参数
ob2_playback_t ob2_playback_create(const char *file_path, ob2_status_t *status)
创建回放器
struct OB2ImuSampleImpl * ob2_imu_sample_t
IMU 采样数据句柄定义
Definition: ob2types.h:91
struct OB2PlaybackImpl * ob2_playback_t
回放器句柄定义
Definition: ob2types.h:139
ob2_playback_state_t
回放状态
Definition: ob2types.h:1438
struct OB2CaptureImpl * ob2_capture_t
capture 句柄定义
Definition: ob2types.h:55
设备详细信息,需要先打开设备后获取
Definition: ob2types.h:436
用户函数调用返回的状态结构体
Definition: ob2types.h:312