diff options
author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2011-08-09 10:16:26 +0200 |
---|---|---|
committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2011-08-09 10:16:26 +0200 |
commit | 5f1a2731f3d6ad16214bd83095f8e1511cf1d76b (patch) | |
tree | 58d70e98b2440065e633382b7e82b1e7a71b2d67 /test | |
parent | eebd1ff77960a85a172878a286f8f3b0fad694d1 (diff) | |
download | libuca-5f1a2731f3d6ad16214bd83095f8e1511cf1d76b.tar.gz libuca-5f1a2731f3d6ad16214bd83095f8e1511cf1d76b.tar.bz2 libuca-5f1a2731f3d6ad16214bd83095f8e1511cf1d76b.tar.xz libuca-5f1a2731f3d6ad16214bd83095f8e1511cf1d76b.zip |
Use GtkBuilder.connect_signals and optimize data conversion
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 3 | ||||
-rw-r--r-- | test/control.c | 76 | ||||
-rw-r--r-- | test/control.glade | 91 |
3 files changed, 44 insertions, 126 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 89351d9..728da6a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -10,8 +10,7 @@ pkg_check_modules(GTHREAD2 gthread-2.0) include_directories(${CMAKE_SOURCE_DIR}/src) -file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/control.glade - DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/control.glade ${CMAKE_CURRENT_BINARY_DIR}) # --- Build targets ----------------------------------------------------------- add_executable(enum enum.c) diff --git a/test/control.c b/test/control.c index 00bda8c..5ff54c6 100644 --- a/test/control.c +++ b/test/control.c @@ -36,27 +36,21 @@ enum { void convert_8bit_to_rgb(guchar *output, guchar *input, int width, int height) { - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - const int off = y*width + x; - output[off*3] = input[off]; - output[off*3+1] = input[off]; - output[off*3+2] = input[off]; - } + for (int i = 0, j = 0; i < width*height; i++) { + output[j++] = input[i]; + output[j++] = input[i]; + output[j++] = input[i]; } } void convert_16bit_to_rgb(guchar *output, guchar *input, int width, int height) { uint16_t *in = (uint16_t *) input; - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - const int off = y*width + x; - guchar val = (uint8_t) ((in[off]/65536.0f)*256.0f); - output[off*3] = val; - output[off*3+1] = val; - output[off*3+2] = val; - } + for (int i = 0, j = 0; i < width*height; i++) { + guchar val = (uint8_t) ((in[i]/65536.0f)*256.0f); + output[j++] = val; + output[j++] = val; + output[j++] = val; } } @@ -79,19 +73,6 @@ void reallocate_buffers(ThreadData *td, int width, int height) g_print("Couldn't allocate buffer for 20 frames\n"); } -static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) -{ - return FALSE; -} - -static void destroy(GtkWidget *widget, gpointer data) -{ - ThreadData *td = (ThreadData *) data; - td->running = FALSE; - uca_destroy(td->u); - gtk_main_quit(); -} - void *grab_thread(void *args) { ThreadData *data = (ThreadData *) args; @@ -114,7 +95,20 @@ void *grab_thread(void *args) return NULL; } -static void on_toolbutton_run_clicked(GtkWidget *widget, gpointer args) +gboolean on_delete_event(GtkWidget *widget, GdkEvent *event, gpointer data) +{ + return FALSE; +} + +void on_destroy(GtkWidget *widget, gpointer data) +{ + ThreadData *td = (ThreadData *) data; + td->running = FALSE; + uca_destroy(td->u); + gtk_main_quit(); +} + +void on_toolbutton_run_clicked(GtkWidget *widget, gpointer args) { ThreadData *data = (ThreadData *) args; GError *error = NULL; @@ -126,14 +120,14 @@ static void on_toolbutton_run_clicked(GtkWidget *widget, gpointer args) } } -static void on_toolbutton_stop_clicked(GtkWidget *widget, gpointer args) +void on_toolbutton_stop_clicked(GtkWidget *widget, gpointer args) { ThreadData *data = (ThreadData *) args; data->running = FALSE; uca_cam_stop_recording(data->cam); } -static void on_valuecell_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer data) +void on_valuecell_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer data) { ValueCellData *value_data = (ValueCellData *) data; @@ -163,7 +157,7 @@ static void on_valuecell_edited(GtkCellRendererText *renderer, gchar *path, gcha } } -void get_first_level_root(GtkTreeStore *store, GtkTreeIter *iter, gchar *group) +static void get_first_level_root(GtkTreeStore *store, GtkTreeIter *iter, gchar *group) { GtkTreeIter root; if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store), &root)) { @@ -193,7 +187,7 @@ void get_first_level_root(GtkTreeStore *store, GtkTreeIter *iter, gchar *group) gtk_tree_store_set(store, iter, 0, group, -1); } -void find_recursively(GtkTreeStore *store, GtkTreeIter *root, GtkTreeIter *result, gchar **tokens, int depth) +static void find_recursively(GtkTreeStore *store, GtkTreeIter *root, GtkTreeIter *result, gchar **tokens, int depth) { GtkTreeIter iter; gchar *str; @@ -232,7 +226,7 @@ void find_recursively(GtkTreeStore *store, GtkTreeIter *root, GtkTreeIter *resul find_recursively(store, &iter, result, tokens, depth+1); } -void fill_tree_store(GtkTreeStore *tree_store, struct uca_camera *cam) +static void fill_tree_store(GtkTreeStore *tree_store, struct uca_camera *cam) { GtkTreeIter iter, child; struct uca_property *property; @@ -284,7 +278,7 @@ void fill_tree_store(GtkTreeStore *tree_store, struct uca_camera *cam) g_free(value_string); } -void value_cell_data_func(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer data) +static void value_cell_data_func(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer data) { uint32_t prop_id; @@ -357,17 +351,7 @@ int main(int argc, char *argv[]) td.running = FALSE; td.pixel_size = pixel_size; - g_signal_connect(window, "delete-event", - G_CALLBACK (delete_event), NULL); - - g_signal_connect(window, "destroy", - G_CALLBACK (destroy), &td); - - g_signal_connect(GTK_WIDGET(gtk_builder_get_object(builder, "toolbutton_run")), "clicked", - G_CALLBACK(on_toolbutton_run_clicked), &td); - - g_signal_connect(GTK_WIDGET(gtk_builder_get_object(builder, "toolbutton_stop")), "clicked", - G_CALLBACK(on_toolbutton_stop_clicked), &td); + gtk_builder_connect_signals(builder, &td); ValueCellData value_cell_data; value_cell_data.thread_data = &td; diff --git a/test/control.glade b/test/control.glade index 4847767..e20f9ff 100644 --- a/test/control.glade +++ b/test/control.glade @@ -1,4 +1,4 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> <interface> <requires lib="gtk+" version="2.20"/> <!-- interface-naming-policy project-wide --> @@ -18,27 +18,26 @@ <property name="title" translatable="yes">Camera Control</property> <property name="default_width">800</property> <property name="default_height">600</property> + <signal name="destroy" handler="on_destroy"/> + <signal name="delete_event" handler="on_delete_event"/> <child> <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> - <property name="orientation">vertical</property> <child> <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <child> <object class="GtkMenuItem" id="menuitem1"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> <child type="submenu"> - <object class="GtkMenu" id="menu1"> + <object class="GtkMenu" id="menu_file"> <property name="visible">True</property> <child> <object class="GtkImageMenuItem" id="imagemenuitem1"> <property name="label">gtk-new</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </object> @@ -47,7 +46,6 @@ <object class="GtkImageMenuItem" id="imagemenuitem2"> <property name="label">gtk-open</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </object> @@ -56,7 +54,6 @@ <object class="GtkImageMenuItem" id="imagemenuitem3"> <property name="label">gtk-save</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </object> @@ -65,7 +62,6 @@ <object class="GtkImageMenuItem" id="imagemenuitem4"> <property name="label">gtk-save-as</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </object> @@ -73,16 +69,15 @@ <child> <object class="GtkSeparatorMenuItem" id="separatormenuitem1"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> </object> </child> <child> - <object class="GtkImageMenuItem" id="imagemenuitem5"> + <object class="GtkImageMenuItem" id="imagemenuitem_quit"> <property name="label">gtk-quit</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> + <signal name="activate" handler="gtk_main_quit"/> </object> </child> </object> @@ -90,76 +85,17 @@ </object> </child> <child> - <object class="GtkMenuItem" id="menuitem2"> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="label" translatable="yes">_Edit</property> - <property name="use_underline">True</property> - <child type="submenu"> - <object class="GtkMenu" id="menu2"> - <property name="visible">True</property> - <child> - <object class="GtkImageMenuItem" id="imagemenuitem6"> - <property name="label">gtk-cut</property> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </object> - </child> - <child> - <object class="GtkImageMenuItem" id="imagemenuitem7"> - <property name="label">gtk-copy</property> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </object> - </child> - <child> - <object class="GtkImageMenuItem" id="imagemenuitem8"> - <property name="label">gtk-paste</property> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </object> - </child> - <child> - <object class="GtkImageMenuItem" id="imagemenuitem9"> - <property name="label">gtk-delete</property> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="use_underline">True</property> - <property name="use_stock">True</property> - </object> - </child> - </object> - </child> - </object> - </child> - <child> - <object class="GtkMenuItem" id="menuitem3"> - <property name="visible">True</property> - <property name="use_action_appearance">False</property> - <property name="label" translatable="yes">_View</property> - <property name="use_underline">True</property> - </object> - </child> - <child> <object class="GtkMenuItem" id="menuitem4"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="label" translatable="yes">_Help</property> <property name="use_underline">True</property> <child type="submenu"> - <object class="GtkMenu" id="menu3"> + <object class="GtkMenu" id="menu_help"> <property name="visible">True</property> <child> - <object class="GtkImageMenuItem" id="imagemenuitem10"> + <object class="GtkImageMenuItem" id="imagemenuitem_about"> <property name="label">gtk-about</property> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="use_underline">True</property> <property name="use_stock">True</property> </object> @@ -180,10 +116,10 @@ <child> <object class="GtkToolButton" id="toolbutton_run"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="label" translatable="yes">Run</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-play</property> + <signal name="clicked" handler="on_toolbutton_run_clicked"/> </object> <packing> <property name="expand">False</property> @@ -193,7 +129,6 @@ <child> <object class="GtkToolButton" id="toolbutton_record"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="label" translatable="yes">Record</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-record</property> @@ -206,10 +141,10 @@ <child> <object class="GtkToolButton" id="toolbutton_stop"> <property name="visible">True</property> - <property name="use_action_appearance">False</property> <property name="label" translatable="yes">Stop</property> <property name="use_underline">True</property> <property name="stock_id">gtk-media-stop</property> + <signal name="clicked" handler="on_toolbutton_stop_clicked"/> </object> <packing> <property name="expand">False</property> @@ -257,7 +192,7 @@ <property name="model">cameraproperties</property> <child> <object class="GtkTreeViewColumn" id="namecolumn"> - <property name="title" translatable="yes">Name</property> + <property name="title">Name</property> <child> <object class="GtkCellRendererText" id="namecell"/> <attributes> @@ -268,7 +203,7 @@ </child> <child> <object class="GtkTreeViewColumn" id="valuecolumn"> - <property name="title" translatable="yes">Value</property> + <property name="title">Value</property> <child> <object class="GtkCellRendererText" id="valuecell"/> <attributes> @@ -279,7 +214,7 @@ </child> <child> <object class="GtkTreeViewColumn" id="unitcolumn"> - <property name="title" translatable="yes">Unit</property> + <property name="title">Unit</property> <child> <object class="GtkCellRendererText" id="unitcell"/> <attributes> |