From ed7ca5c41e345f28a10e70624e0e0ca709f3fb51 Mon Sep 17 00:00:00 2001 From: Maksym Veremeyenko Date: Sat, 18 Jun 2011 14:21:56 +0300 Subject: [PATCH] buttons click processing added --- src/omnplay.cpp | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/omnplay.h | 1 + src/ui.c | 2 ++ 3 files changed, 49 insertions(+), 0 deletions(-) diff --git a/src/omnplay.cpp b/src/omnplay.cpp index 5b3a77f..b670129 100644 --- a/src/omnplay.cpp +++ b/src/omnplay.cpp @@ -197,6 +197,43 @@ static void* omnplay_thread_proc(void* data) return NULL; }; +static gboolean omnplay_button_click(omnplay_instance_t* app, control_buttons_t button) +{ + switch(button) + { + case BUTTON_PLAYLIST_ITEM_ADD: + case BUTTON_PLAYLIST_ITEM_DEL: + case BUTTON_PLAYLIST_ITEM_EDIT: + case BUTTON_PLAYLIST_LOAD: + case BUTTON_PLAYLIST_SAVE: + case BUTTON_PLAYLIST_BLOCK_SINGLE: + case BUTTON_PLAYLIST_BLOCK_LOOP: + case BUTTON_PLAYLIST_ITEM_UP: + case BUTTON_PLAYLIST_ITEM_DOWN: + case BUTTON_PLAYER_CUE: + case BUTTON_PLAYER_PLAY: + case BUTTON_PLAYER_PAUSE: + case BUTTON_PLAYER_STOP: + case BUTTON_LIBRARY_ADD: + case BUTTON_LIBRARY_REFRESH: + break; + }; + + return TRUE; +}; + +static gboolean on_button_click(GtkWidget *button, gpointer user_data) +{ + int i; + omnplay_instance_t* app = (omnplay_instance_t*)user_data; + + for(i = 1; i < BUTTON_LAST; i++) + if(app->buttons[i] == button) + return omnplay_button_click(app, (control_buttons_t)i); + + return FALSE; +}; + void omnplay_init(omnplay_instance_t* app) { int i; @@ -213,6 +250,15 @@ void omnplay_init(omnplay_instance_t* app) pthread_create(&app->players.item[i].thread, NULL, omnplay_thread_proc, &app->players.item[i]); }; + + /* create lock */ + pthread_mutex_init(&app->playlist.lock, NULL); + + /* attach buttons click */ + for(i = 1; i < BUTTON_LAST; i++) + gtk_signal_connect(GTK_OBJECT(app->buttons[i]), "clicked", + GTK_SIGNAL_FUNC( on_button_click), app ); + }; void omnplay_release(omnplay_instance_t* app) diff --git a/src/omnplay.h b/src/omnplay.h index e2b0ea2..9efdf5b 100644 --- a/src/omnplay.h +++ b/src/omnplay.h @@ -132,6 +132,7 @@ typedef struct omnplay_instance int count; int ver_curr; int ver_prev; + pthread_mutex_t lock; } playlist; } omnplay_instance_t; diff --git a/src/ui.c b/src/ui.c index ee736a3..cafefb5 100644 --- a/src/ui.c +++ b/src/ui.c @@ -83,6 +83,8 @@ static GtkWidget* create_treeview(GtkWidget* top, char* name, const char* column gtk_tree_view_append_column(GTK_TREE_VIEW( treeview ), column); }; + g_object_unref(list_store); + GLADE_HOOKUP_OBJECT (top, treeview, name); return treeview; -- 1.7.4.4