2025-03-28 23:29:14 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "types.hpp"
|
2025-03-31 01:02:05 +02:00
|
|
|
#include <functional>
|
2025-03-28 23:29:14 +01:00
|
|
|
|
|
|
|
|
class video_source
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
video_source() {};
|
|
|
|
|
virtual ~video_source() {};
|
2025-03-31 01:02:05 +02:00
|
|
|
virtual void set_video_path(const std::string& video_path) = 0;
|
|
|
|
|
virtual void set_active(bool active) = 0;
|
|
|
|
|
virtual bool get_active() const = 0;
|
|
|
|
|
virtual bool has_new() const = 0;
|
|
|
|
|
virtual void get_image(std::vector<u8>& data, int& w, int& h, int& ch, int& bpp) = 0;
|
|
|
|
|
|
|
|
|
|
void set_update_callback(std::function<void()> callback)
|
2025-03-28 23:29:14 +01:00
|
|
|
{
|
2025-03-31 01:02:05 +02:00
|
|
|
m_update_callback = callback;
|
2025-03-28 23:29:14 +01:00
|
|
|
}
|
2025-03-31 01:02:05 +02:00
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
void notify_update()
|
|
|
|
|
{
|
|
|
|
|
if (m_update_callback)
|
|
|
|
|
{
|
|
|
|
|
m_update_callback();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
std::function<void()> m_update_callback;
|
2025-03-28 23:29:14 +01:00
|
|
|
};
|