prepare for library rebuild
[melted_gui] / src / instance.c
index 757d8a6..1ae08c3 100644 (file)
 #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);