2020-03-26 14:21:34 +08:00
|
|
|
|
|
|
|
#ifndef ZN_LIBVNC_CAMERA_H
|
|
|
|
#define ZN_LIBVNC_CAMERA_H
|
|
|
|
|
|
|
|
#include "zm_buffer.h"
|
|
|
|
#include "zm_camera.h"
|
|
|
|
#include "zm_thread.h"
|
2020-03-29 06:17:19 +08:00
|
|
|
#include "zm_swscale.h"
|
2020-03-26 14:21:34 +08:00
|
|
|
|
2020-03-26 15:08:00 +08:00
|
|
|
#if HAVE_LIBVNC
|
2020-03-26 14:21:34 +08:00
|
|
|
#include <rfb/rfbclient.h>
|
|
|
|
// Used by vnc callbacks
|
|
|
|
struct VncPrivateData
|
|
|
|
{
|
|
|
|
uint8_t *buffer;
|
2020-03-28 02:15:15 +08:00
|
|
|
uint8_t width;
|
|
|
|
uint8_t height;
|
2020-03-26 14:21:34 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
class VncCamera : public Camera {
|
|
|
|
protected:
|
|
|
|
rfbClient *mRfb;
|
|
|
|
VncPrivateData mVncData;
|
|
|
|
int mBpp;
|
2020-03-29 06:17:19 +08:00
|
|
|
SWScale scale;
|
|
|
|
AVPixelFormat mImgPixFmt;
|
2020-03-26 14:21:34 +08:00
|
|
|
std::string mHost;
|
|
|
|
std::string mPort;
|
|
|
|
std::string mUser;
|
|
|
|
std::string mPass;
|
|
|
|
public:
|
|
|
|
VncCamera(
|
|
|
|
unsigned int p_monitor_id,
|
|
|
|
const std::string &host,
|
|
|
|
const std::string &port,
|
|
|
|
const std::string &user,
|
|
|
|
const std::string &pass,
|
|
|
|
int p_width,
|
|
|
|
int p_height,
|
|
|
|
int p_colours,
|
|
|
|
int p_brightness,
|
|
|
|
int p_contrast,
|
|
|
|
int p_hue,
|
|
|
|
int p_colour,
|
|
|
|
bool p_capture,
|
|
|
|
bool p_record_audio );
|
|
|
|
|
|
|
|
~VncCamera();
|
|
|
|
|
|
|
|
void Initialise();
|
|
|
|
void Terminate();
|
|
|
|
|
|
|
|
int PreCapture();
|
|
|
|
int PrimeCapture();
|
|
|
|
int Capture( Image &image );
|
|
|
|
int PostCapture();
|
|
|
|
int CaptureAndRecord( Image &image, timeval recording, char* event_directory );
|
|
|
|
int Close();
|
|
|
|
};
|
|
|
|
|
2020-03-26 15:08:00 +08:00
|
|
|
#endif // HAVE_LIBVNC
|
2020-03-26 15:52:34 +08:00
|
|
|
#endif // ZN_LIBVNC_CAMERA_H
|