You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.3 KiB
115 lines
3.3 KiB
/***************************************************************************************
|
|
*
|
|
* gui.h is part of SimpleSkyCam.
|
|
*
|
|
*****************************************************************************************/
|
|
|
|
#ifndef _GUI_H_
|
|
#define _GUI_H_
|
|
|
|
#include <gtk/gtk.h>
|
|
#include <gdk/gdk.h>
|
|
#include <glib.h>
|
|
|
|
#include <string>
|
|
#include <iostream>
|
|
#include <list>
|
|
|
|
enum {
|
|
VID_ENTERDATA_NONE = 0,
|
|
VID_ENTERDATA_POS
|
|
};
|
|
|
|
#define BUILDER_FILE "simpleskycam.ui"
|
|
|
|
struct {
|
|
int x;
|
|
int y;
|
|
} typedef position_2d;
|
|
|
|
|
|
#define DETECT_MOVEMENT_SAMPLES 50
|
|
struct {
|
|
struct {
|
|
struct timeval ts;
|
|
int x;
|
|
int y;
|
|
} samples[DETECT_MOVEMENT_SAMPLES];
|
|
float dx;
|
|
float dy;
|
|
} typedef detect_movement;
|
|
|
|
void displayerror (std::string error);
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
// ***********************************************************************
|
|
//
|
|
// main windows call backs
|
|
//
|
|
G_MODULE_EXPORT void cb_window_show (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT gboolean cb_window_delete_event (GtkWidget *widget,
|
|
GdkEvent *event, gpointer data);
|
|
|
|
|
|
//
|
|
// video and video devices
|
|
G_MODULE_EXPORT void cb_video_cbox_videodev (GtkWidget *widget, gpointer data);
|
|
|
|
G_MODULE_EXPORT void cb_video_btnrefreshlist (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_video_btnrec (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_video_btnstop (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_videoda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data);
|
|
G_MODULE_EXPORT gboolean video_display(gpointer data);
|
|
G_MODULE_EXPORT void cb_videoda_motionevent (GtkWidget *widget, GdkEvent *event, gpointer data);
|
|
G_MODULE_EXPORT void cb_videoda_btnpress (GtkWidget *widget, GdkEvent *event, gpointer data);
|
|
G_MODULE_EXPORT void cb_videoda_btnrelease (GtkWidget *widget, GdkEvent *event, gpointer data);
|
|
G_MODULE_EXPORT void cb_vidctrl_entry_change (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_vidctrl_scale_change (GtkRange *range, gpointer data);
|
|
gboolean videoctrl_update(gpointer data);
|
|
|
|
// preset buttons
|
|
G_MODULE_EXPORT void cb_video_pre_click (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_video_pre_pressed (GtkWidget *widget, gpointer data);
|
|
gboolean video_pre_long(gpointer data);
|
|
|
|
//
|
|
// thread new inframe
|
|
G_MODULE_EXPORT gboolean cb_thread_video (gpointer data);
|
|
|
|
|
|
//
|
|
// filter detect or image data
|
|
G_MODULE_EXPORT void cb_imagetempda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data);
|
|
G_MODULE_EXPORT gboolean cb_thread_filter (gpointer data);
|
|
G_MODULE_EXPORT gboolean cb_thread_detect (gpointer data);
|
|
G_MODULE_EXPORT void cb_image_btnnew (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_image_btnsave (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_detect_bright (GtkRange *range, gpointer data);
|
|
|
|
|
|
//
|
|
// detection elements
|
|
G_MODULE_EXPORT void cb_detect_btnsetpos (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_detect_btnsetsize (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_detect_followtype (GtkWidget *widget, gpointer data);
|
|
G_MODULE_EXPORT void cb_detect_detecttype (GtkWidget *widget, gpointer data);
|
|
|
|
|
|
//
|
|
// histogram elements
|
|
G_MODULE_EXPORT void cb_histogramda_draw(GtkWidget *area, cairo_t *cr, int w, int h, gpointer data);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
extern float get_cycletime(struct timeval *t);
|
|
|
|
#endif // _GUI_H_
|
|
|