Files
maszyna/widgets/cameraview_vsdev.h
2019-09-20 20:16:55 +02:00

42 lines
651 B
C++

#include "stdafx.h"
#include "uilayer.h"
#include "translation.h"
#include "extras/VS_Dev.h"
namespace ui
{
class cameraview_panel : public ui_panel
{
public:
enum state_e {
IDLE,
PREVIEW,
RECORDING
};
private:
std::atomic_bool exit_thread = true;
std::thread workthread;
uint8_t* image_ptr = nullptr;
int image_w, image_h;
std::mutex mutex;
std::condition_variable cv;
std::optional<opengl_texture> texture;
std::unique_ptr<VSDev> device;
void workthread_func();
public:
cameraview_panel();
~cameraview_panel();
void render() override;
void render_contents() override;
bool set_state(state_e e);
};
} // namespace ui