X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finstance.c;fp=src%2Finstance.c;h=2bd06b0b9a4b8c898657222223eb970180206b31;hb=cfbef984de0dc53c8b882d7706556656b9934de2;hp=05400b3574e2def9c5ae9a06fc98cf94502bef05;hpb=07c6d84a23c9043e2334987fc8533f68e5e23183;p=melted_gui diff --git a/src/instance.c b/src/instance.c index 05400b3..2bd06b0 100644 --- a/src/instance.c +++ b/src/instance.c @@ -38,6 +38,7 @@ #include "timecode.h" #include "player.h" #include "library.h" +#include "playlist.h" GtkTargetEntry drag_targets[] = { { (char*) "application/playlist_item_t", 0, 0 } }; @@ -154,9 +155,6 @@ void instance_init(instance_t* app) int i; pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); - gtk_signal_connect( GTK_OBJECT( app->window ), "delete-event", GTK_SIGNAL_FUNC(on_main_window_delete_event), app); @@ -182,6 +180,8 @@ void instance_init(instance_t* app) #endif /* create lock */ + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&app->players.lock, &attr); pthread_mutex_init(&app->playlist.lock, &attr); pthread_mutex_init(&app->library.lock, &attr); @@ -196,30 +196,11 @@ void instance_init(instance_t* app) gtk_signal_connect(GTK_OBJECT(app->buttons[i]), "clicked", GTK_SIGNAL_FUNC( on_button_click), app ); - /* load library */ + /* init library */ library_init(app); -#if 0 - /* setup drag n drop source/target */ - static GtkTargetEntry drag_targets[] = { { (char*) "application/playlist_item_t", 0, 0 } }; - - gtk_drag_source_set(app->library_grid, GDK_BUTTON1_MASK, - drag_targets, 1, (GdkDragAction)(GDK_ACTION_COPY)); - - gtk_drag_source_set(app->playlist_grid, GDK_BUTTON1_MASK, - drag_targets, 1, (GdkDragAction)(GDK_ACTION_COPY | GDK_ACTION_MOVE)); - - gtk_drag_dest_set(app->playlist_grid, (GtkDestDefaults)(GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP), - drag_targets, 1, (GdkDragAction)(GDK_ACTION_COPY | GDK_ACTION_MOVE)); - - g_signal_connect (app->library_grid, "drag_data_get", G_CALLBACK(library_grid_drag_data_get_cb), app); - g_signal_connect (app->playlist_grid, "drag_data_get", G_CALLBACK(playlist_grid_drag_data_get_cb), app); - g_signal_connect (app->library_grid, "drag_begin", G_CALLBACK(library_grid_drag_begin_cb), app); - g_signal_connect (app->playlist_grid, "drag_begin", G_CALLBACK(playlist_grid_drag_begin_cb), app); - g_signal_connect (app->playlist_grid, "drag_data_received", G_CALLBACK (playlist_grid_drag_data_received), app); - g_signal_connect (app->playlist_grid, "drag_data_delete", G_CALLBACK (playlist_grid_drag_data_delete), app); - g_signal_connect (app->playlist_grid, "drag_motion", G_CALLBACK (playlist_grid_drag_motion), app); -#endif + /* init playlist */ + playlist_init(app); }; void instance_release(instance_t* app) @@ -228,23 +209,22 @@ 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); + /* release laylist */ + playlist_release(app); + + /* release library */ + library_release(app); + /* destroy lock */ pthread_mutex_destroy(&app->players.lock); /* destroy lock */ pthread_mutex_destroy(&app->playlist.lock); -#if 0 - /* load library */ - omnplay_library_save(app); -#endif - /* destroy library lock */ pthread_mutex_destroy(&app->library.lock); };