/*************************************************************************************** * * gui.h is part of SimpleSkyCam. * *****************************************************************************************/ #ifndef _GUI_H_ #define _GUI_H_ #include #include #include #include #include #include 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); G_MODULE_EXPORT void cb_histogramda_motion (GtkWidget *widget, GdkEvent *event, gpointer data); G_MODULE_EXPORT void cb_histogramda_btnpress (GtkWidget *widget, gpointer data); G_MODULE_EXPORT void cb_histogramda_btnrelease (GtkWidget *widget, gpointer data); #ifdef __cplusplus } #endif extern float get_cycletime(struct timeval *t); #endif // _GUI_H_