#ifndef UTIL_H
#define UTIL_H

#include <vector>
#include <iostream>

enum class Layout { 
    horizontal,
    vertical
};

enum class CameraMode {
    single,
    dual
};

struct ROI {
    int x, y, width, height;
};

struct CameraLayout {
    std::vector<std::string> devices;
    std::vector<ROI> rois;
    Layout layout;
    CameraMode mode;
};

enum class VideoFormat {
    raw,
    mp4
};

struct ImageSettings {
  int64_t width = 0;
  int64_t height = 0;
  Pylon::EPixelType pixelType;
  Pylon::EImageOrientation orientation;
};


struct VideoSpecs {
  std::string filename;
  uint32_t width, height, quality = 10;
  int fps;
  double exposureTime;
  double detectorGain;
  Pylon::EPixelType pixelType;
  Pylon::EImageOrientation orientation;
  VideoFormat format = VideoFormat::raw;
};

#endif /*UTIL_H*/