#ifndef UI_HPP #define UI_HPP #include #include #include "audio.hpp" #include using namespace std; class GTKUI { public: GTKUI(int argc, char* argv[]); static void draw(cairo_t* cr, GtkWidget* drawing_area, gpointer user_data); static void draw_cb(GtkDrawingArea* drawing_area, cairo_t* cr, int width, int height, gpointer user_data); static void select_device(GtkWidget* widget, gpointer user_data); static void refresh(GtkWidget* widget, gpointer user_data); static void close_window(GtkWidget* widget, gpointer user_data); static gboolean drawCallback(GtkWidget* widget, GdkFrameClock* frame_clock, gpointer user_data); static void activate(GtkApplication* app, gpointer user_data); private: GtkApplication* app; GtkWidget* window; GtkWidget* grid; GtkWidget* refresh_button; GtkWidget* quit_button; vector buttons; GtkWidget* drawing_area; int status; AudioData* audiodata; }; #endif