orbbec-sdk-sys 0.1.2+2.5.5

Low-level Rust bindings for https://github.com/orbbec/OrbbecSDK_v2
Documentation
// Copyright (c) Orbbec Inc. All Rights Reserved.
// Licensed under the MIT License.

#pragma once
#include "IProperty.hpp"
#include "IDevice.hpp"

namespace libobsensor {
class G330Disp2DepthPropertyAccessor : public IBasicPropertyAccessor {
public:
    explicit G330Disp2DepthPropertyAccessor(IDevice *owner);
    virtual ~G330Disp2DepthPropertyAccessor() noexcept override = default;

    virtual void setPropertyValue(uint32_t propertyId, const OBPropertyValue &value) override;
    virtual void getPropertyValue(uint32_t propertyId, OBPropertyValue *value) override;
    virtual void getPropertyRange(uint32_t propertyId, OBPropertyRange *range) override;

private:
    void markOutputDisparityFrame(bool enable);

private:
    IDevice *owner_;

    bool hwDisparityToDepthEnabled_;
    bool swDisparityToDepthEnabled_;
};

class G330NetPerformanceModePropertyAccessor : public IBasicPropertyAccessor {
public:
    explicit G330NetPerformanceModePropertyAccessor(IDevice *owner);
    virtual ~G330NetPerformanceModePropertyAccessor() noexcept override = default;

    virtual void setPropertyValue(uint32_t propertyId, const OBPropertyValue &value) override;
    virtual void getPropertyValue(uint32_t propertyId, OBPropertyValue *value) override;
    virtual void getPropertyRange(uint32_t propertyId, OBPropertyRange *range) override;

private:
    void updatePerformanceMode(uint32_t mode);

private:
    IDevice *owner_;

    uint32_t performanceMode_;
};


class G330HWNoiseRemovePropertyAccessor : public IBasicPropertyAccessor {
public:
    explicit G330HWNoiseRemovePropertyAccessor(IDevice *owner);
    virtual ~G330HWNoiseRemovePropertyAccessor() noexcept override = default;

    virtual void setPropertyValue(uint32_t propertyId, const OBPropertyValue &value) override;
    virtual void getPropertyValue(uint32_t propertyId, OBPropertyValue *value) override;
    virtual void getPropertyRange(uint32_t propertyId, OBPropertyRange *range) override;

private:
    IDevice *owner_;
};

class G330NetPTPClockSyncPropertyAccessor : public IBasicPropertyAccessor {
public:
    explicit G330NetPTPClockSyncPropertyAccessor(IDevice *owner);
    virtual ~G330NetPTPClockSyncPropertyAccessor() noexcept override = default;

    virtual void setPropertyValue(uint32_t propertyId, const OBPropertyValue &value) override;
    virtual void getPropertyValue(uint32_t propertyId, OBPropertyValue *value) override;
    virtual void getPropertyRange(uint32_t propertyId, OBPropertyRange *range) override;

private:
    IDevice *owner_;
};
}  // namespace libobsensor