fwt_software/include/fgc/VimbaCameraSource.h

35 lines
934 B
C++

#pragma once
#include "fgc/ICameraSource.h"
#include <memory>
#include <string>
#include <vector>
namespace fgc {
// Real camera source backed by the Allied Vision Vimba X SDK (VmbCPP). Opens
// cameras by ID, runs continuous acquisition with a settle-then-keep frame
// observer, and delivers completed frames to the callback. The encode/save
// step lives in ImagePipeline, so this class only produces Frames.
class VimbaCameraSource : public ICameraSource {
public:
explicit VimbaCameraSource(std::vector<std::string> camera_ids);
~VimbaCameraSource() override;
void open() override;
void close() override;
void start() override;
void stop() override;
bool trigger() override;
bool setFrameRate(double fps) override;
void setFrameCallback(FrameCallback cb) override;
int cameraCount() const override;
private:
struct Impl;
std::unique_ptr<Impl> impl_;
};
} // namespace fgc