#pragma once
#include "DeviceBase.hpp"
#include "IDeviceManager.hpp"
#include "frameprocessor/FrameProcessor.hpp"
#include "property/PropertyServer.hpp"
#include "property/CommonPropertyAccessors.hpp"
#include "IFrameTimestamp.hpp"
#include <map>
#include <memory>
namespace libobsensor {
class OpenNIDeviceBase : public DeviceBase {
public:
OpenNIDeviceBase(const std::shared_ptr<const IDeviceEnumInfo> &info);
virtual ~OpenNIDeviceBase() noexcept override;
std::vector<std::shared_ptr<IFilter>> createRecommendedPostProcessingFilters(OBSensorType type) override;
OpenNIFrameProcessParam getFrameProcessParam();
protected:
virtual void init() override;
virtual void initSensorList();
virtual void initProperties();
virtual void initSensorStreamProfile(std::shared_ptr<ISensor> sensor);
protected:
const uint64_t deviceTimeFreq_ = 1000; const uint64_t frameTimeFreq_ = 1000000; std::function<std::shared_ptr<IFrameTimestampCalculator>()> videoFrameTimestampCalculatorCreator_;
std::shared_ptr<LazySuperPropertyAccessor> vendorPropertyAccessor_;
};
}