#pragma once #ifdef emit #define emit_backup emit #undef emit #endif #ifdef slots #define slots_backup slots #undef slots #endif #include #ifdef emit_backup #define emit emit_backup #endif #ifdef slots_backup #define slots slots_backup #endif // cpp #include // orpheus #include "image.h" class ICamera { public: virtual ~ICamera() = default; public: [[nodiscard]] virtual bool set_autoExposure(const bool enable) = 0; /*! * \brief get_autoExposure - check if auto exposure is enabled * \return non-empty value on success, empty value on failure */ [[nodiscard]] virtual std::optional get_autoExposure() = 0; [[nodiscard]] virtual bool set_exposureTime(const std::chrono::microseconds us) = 0; [[nodiscard]] virtual std::optional get_exposureTime() = 0; [[nodiscard]] virtual bool set_autoGain(const bool enable) = 0; [[nodiscard]] virtual std::optional get_autoGain() = 0; [[nodiscard]] virtual bool set_gain(const float value) = 0; [[nodiscard]] virtual std::optional get_gain() = 0; [[nodiscard]] virtual bool getImage(Image *image) = 0; [[nodiscard]] virtual std::shared_ptr getImage() = 0; public: [[nodiscard]] virtual bool startStream() = 0; };