X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finstance.c;h=1ae08c316afc23fb26202cecb757edf12da1bf69;hb=8f058cdb606938af320e3ca33a7c10a14741a0d6;hp=757d8a6e3465ff7efc8e8719336728f5d9a64215;hpb=f7a7ec28803cfb5c28186f846cd4fbab872e66bc;p=melted_gui diff --git a/src/instance.c b/src/instance.c index 757d8a6..1ae08c3 100644 --- a/src/instance.c +++ b/src/instance.c @@ -37,6 +37,75 @@ #include "opts.h" #include "timecode.h" #include "player.h" +#include "library.h" + +gboolean instance_button_click(instance_t* app, control_buttons_t button) +{ +#if 0 + switch(button) + { + case BUTTON_PLAYLIST_ITEM_ADD: + omnplay_playlist_item_add(app, 0); + break; + case BUTTON_PLAYLIST_ITEM_DEL: + omnplay_playlist_item_del(app); + break; + case BUTTON_PLAYLIST_ITEM_EDIT: + omnplay_playlist_item_edit(app); + break; + case BUTTON_PLAYLIST_LOAD: + omnplay_playlist_load(app); + break; + case BUTTON_PLAYLIST_SAVE: + omnplay_playlist_save(app); + break; + case BUTTON_PLAYLIST_BLOCK_SINGLE: + case BUTTON_PLAYLIST_BLOCK_LOOP: + omnplay_playlist_block(app, button); + break; + case BUTTON_PLAYLIST_ITEM_UP: + omnplay_playlist_item_swap(app, -1); + break; + case BUTTON_PLAYLIST_ITEM_DOWN: + omnplay_playlist_item_swap(app, +1); + break; + case BUTTON_PLAYER_CUE: + case BUTTON_PLAYER_PLAY: + case BUTTON_PLAYER_PAUSE: + case BUTTON_PLAYER_STOP: + omnplay_ctl(app, button); + break; + case BUTTON_LIBRARY_ADD: + omnplay_library_add(app, 0); + break; + case BUTTON_LIBRARY_REFRESH: + omnplay_library_refresh(app); + break; + case BUTTON_LIBRARY_FIND: + omnplay_library_search(app, 0); + break; + case BUTTON_LIBRARY_FIND_NEXT: + omnplay_library_search(app, 1); + break; + case BUTTON_PLAYLIST_RELINK: + omnplay_playlist_relink(app); + break; + }; +#endif + return TRUE; +}; + +static gboolean on_button_click(GtkWidget *button, gpointer user_data) +{ + int i; + instance_t* app = (instance_t*)user_data; + + for(i = 1; i < BUTTON_LAST; i++) + if(app->buttons[i] == button) + return instance_button_click(app, (control_buttons_t)i); + + return FALSE; +}; static gboolean on_main_window_delete_event( GtkWidget *widget, GdkEvent *event, gpointer user_data ) { @@ -120,16 +189,13 @@ void instance_init(instance_t* app) for(i = 0; i < app->players.count; i++) player_run(app, i); -#if 0 - /* 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 ); /* load library */ - omnplay_library_load(app); -#endif + library_init(app); #if 0 /* setup drag n drop source/target */ @@ -160,6 +226,8 @@ void instance_release(instance_t* app) app->f_exit = 1; + library_release(app); + /* stop unit monitoring threads */ for(i = 0; i < app->players.count; i++) player_stop(app, i);