Skip to content

InscoperAPI/API/Base/Device/Camera.h

Namespaces

Name
Inscoper
Inscoper namespace.

Classes

Name
class Inscoper::Camera
Camera class defines the interface for camera devices.

Source code

#ifndef CAMERA_H
#define CAMERA_H

#include <Base/Device/AbstractSystem.h>
#include <Base/Image/Image.h>
#include <Base/Roi/RoiCrop.h>
#include <Base/Status/Status.h>
#include <Global.h>

#include <string>
#include <vector>

namespace Inscoper {
class INSCOPER_EXPORT Camera : virtual public AbstractSystem {
public:
  virtual ~Camera() = default;


  virtual unsigned int getImageHeight() INSCOPER_EXCEPTION = 0;

  virtual unsigned int getImageWidth() INSCOPER_EXCEPTION = 0;

  virtual unsigned int getImageBitDepth() INSCOPER_EXCEPTION = 0;

  virtual unsigned int getBytesPerPixel() INSCOPER_EXCEPTION = 0;

  virtual long getImageBufferSize() INSCOPER_EXCEPTION = 0;

  virtual unsigned int getImageNumberPerTrigg() INSCOPER_EXCEPTION = 0;

  virtual unsigned int getMaxNumberOfChannel() INSCOPER_EXCEPTION = 0;


  // Convenient method to set/get the exposure and binning
  virtual double getExposure() INSCOPER_EXCEPTION = 0;

  virtual void setExposure(double d) INSCOPER_EXCEPTION = 0;

  virtual std::string getBinning() INSCOPER_EXCEPTION = 0;

  virtual void setBinning(const std::string &binning) INSCOPER_EXCEPTION = 0;


  virtual bool isHardwareCropAvailable() INSCOPER_EXCEPTION = 0;

  virtual void setHardwareCrop(const std::vector<Inscoper::RoiCrop> &crops) INSCOPER_EXCEPTION = 0;

  virtual std::vector<Inscoper::RoiCrop> getHardwareCrop() INSCOPER_EXCEPTION = 0;


  virtual bool isSequenceRunning() INSCOPER_EXCEPTION = 0;

  virtual void prepareSequenceAcquisition() INSCOPER_EXCEPTION = 0;

  virtual void startSequenceAcquisition(unsigned int nbImage) INSCOPER_EXCEPTION = 0;

  virtual void startContinuousSequenceAcquisition() INSCOPER_EXCEPTION = 0;

  virtual void checkSequenceStarted() INSCOPER_EXCEPTION = 0;

  virtual void softwareTriggerImage() INSCOPER_EXCEPTION = 0;

  virtual bool isSoftwareTriggerAvailable() INSCOPER_EXCEPTION = 0;

  virtual bool isLevelTriggerAvailable() INSCOPER_EXCEPTION = 0;

  virtual bool isEdgeTriggerAvailable() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::Status getEdgeTriggerStatus() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::Status getLevelTriggerStatus() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::Status getInternalTriggerStatus() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::Status getSoftwareTriggerStatus() INSCOPER_EXCEPTION = 0;

  virtual double getPhysicalPixelSize() INSCOPER_EXCEPTION = 0;

  virtual Inscoper::ImagePtr snapImage(unsigned int chanIdx) INSCOPER_EXCEPTION = 0;

  virtual Inscoper::ImagePtr popNextImage(unsigned int chanIdx) INSCOPER_EXCEPTION = 0;

  virtual Inscoper::ImagePtr popNextImageBlocking(unsigned int chanIdx) INSCOPER_EXCEPTION = 0;

  virtual Inscoper::ImagePtr getLastImage(unsigned int chanIdx,
                                          unsigned int indexBeforeLastImg = 0) INSCOPER_EXCEPTION = 0;

  virtual long getRemainingImageCount(unsigned int chanIdx) INSCOPER_EXCEPTION = 0;

  virtual void stopSequenceAcquisition() INSCOPER_EXCEPTION = 0;

  virtual void clearBuffers() INSCOPER_EXCEPTION = 0;
};

typedef std::shared_ptr<Camera> CameraPtr;

} // namespace Inscoper

#endif // CAMERA_H

Updated on 2026-09-03 at 12:14:17 +0200