avoid leaking any arv.h dependancies
This commit is contained in:
11
uvoscam.cpp
11
uvoscam.cpp
@ -27,6 +27,8 @@
|
|||||||
|
|
||||||
#include"log.h"
|
#include"log.h"
|
||||||
|
|
||||||
|
#include <arv.h>
|
||||||
|
|
||||||
using namespace cam;
|
using namespace cam;
|
||||||
|
|
||||||
cv::Mat Camera::debayer(ArvBuffer *buffer)
|
cv::Mat Camera::debayer(ArvBuffer *buffer)
|
||||||
@ -126,7 +128,12 @@ void Camera::decoderThreadFunc()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Camera::aCallback(void* instance, ArvStreamCallbackType type, ArvBuffer *buffer)
|
static void aFCallback(void* instance, ArvStreamCallbackType type, ArvBuffer *buffer)
|
||||||
|
{
|
||||||
|
Camera::aCallback(instance, static_cast<int>(type), buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Camera::aCallback(void* instance, int type, ArvBuffer *buffer)
|
||||||
{
|
{
|
||||||
Camera* instance_ = reinterpret_cast<Camera*>(instance);
|
Camera* instance_ = reinterpret_cast<Camera*>(instance);
|
||||||
if(type == ARV_STREAM_CALLBACK_TYPE_BUFFER_DONE)
|
if(type == ARV_STREAM_CALLBACK_TYPE_BUFFER_DONE)
|
||||||
@ -250,7 +257,7 @@ bool Camera::setupCamera()
|
|||||||
|
|
||||||
Log(Log::DEBUG)<<"Using "<<arv_camera_get_pixel_format_as_string(aCamera_, nullptr)<<" as pixel format";
|
Log(Log::DEBUG)<<"Using "<<arv_camera_get_pixel_format_as_string(aCamera_, nullptr)<<" as pixel format";
|
||||||
|
|
||||||
aStream_ = arv_camera_create_stream(aCamera_, aCallback, this, nullptr);
|
aStream_ = arv_camera_create_stream(aCamera_, aFCallback, this, nullptr);
|
||||||
if(!ARV_IS_STREAM(aStream_))
|
if(!ARV_IS_STREAM(aStream_))
|
||||||
{
|
{
|
||||||
Log(Log::ERROR)<<"Can not create stream";
|
Log(Log::ERROR)<<"Can not create stream";
|
||||||
|
10
uvoscam.h
10
uvoscam.h
@ -25,7 +25,10 @@
|
|||||||
#include <thread>
|
#include <thread>
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <opencv2/core/mat.hpp>
|
#include <opencv2/core/mat.hpp>
|
||||||
#include <arv.h>
|
|
||||||
|
typedef struct _ArvStream ArvStream;
|
||||||
|
typedef struct _ArvBuffer ArvBuffer;
|
||||||
|
typedef struct _ArvCamera ArvCamera;
|
||||||
|
|
||||||
namespace cam
|
namespace cam
|
||||||
{
|
{
|
||||||
@ -64,7 +67,6 @@ public:
|
|||||||
private:
|
private:
|
||||||
ArvStream* aStream_ = nullptr;
|
ArvStream* aStream_ = nullptr;
|
||||||
ArvCamera* aCamera_ = nullptr;
|
ArvCamera* aCamera_ = nullptr;
|
||||||
ArvInterface interface;
|
|
||||||
|
|
||||||
unsigned int width_;
|
unsigned int width_;
|
||||||
unsigned int height_;
|
unsigned int height_;
|
||||||
@ -86,8 +88,6 @@ private:
|
|||||||
|
|
||||||
AquisitionMode aqmode = MODE_FREE;
|
AquisitionMode aqmode = MODE_FREE;
|
||||||
|
|
||||||
static void aCallback(void* instance, ArvStreamCallbackType type, ArvBuffer *buffer);
|
|
||||||
|
|
||||||
void decoderThreadFunc();
|
void decoderThreadFunc();
|
||||||
|
|
||||||
std::function<void(cv::Mat)> callback_;
|
std::function<void(cv::Mat)> callback_;
|
||||||
@ -124,6 +124,8 @@ public:
|
|||||||
Camera::BayerMode getBayerMode();
|
Camera::BayerMode getBayerMode();
|
||||||
void setTriggerMode(Camera::TriggerMode mode);
|
void setTriggerMode(Camera::TriggerMode mode);
|
||||||
void trigger();
|
void trigger();
|
||||||
|
|
||||||
|
static void aCallback(void* instance, int type, ArvBuffer *buffer);
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user