static gboolean on_main_window_delete_event( GtkWidget *widget, GdkEvent *event, gpointer user_data )
{
- gtk_exit(0);
- return TRUE;
+ g_print ("delete event occurred [start]\n");
+ gdk_threads_leave();
+ omnplay_release((omnplay_instance_t*)user_data);
+ gdk_threads_enter();
+ g_print ("delete event occurred [finish]\n");
+
+ return FALSE;
+}
+
+static void on_main_window_destroy( GtkWidget *widget, gpointer user_data )
+{
+ g_print ("destroy occurred\n");
+ gtk_main_quit();
}
omnplay_instance_t* omnplay_create(int argc, char** argv)
memset(&item, 0, sizeof(playlist_item_t));
if(ui_playlist_item_dialog(app, &item))
{
+ omnplay_library_normalize_item(app, &item);
item.type = t;
omnplay_playlist_insert_items(app, idx, &item, 1);
};
if(ui_playlist_item_dialog(app, &item))
{
+ omnplay_library_normalize_item(app, &item);
app->playlist.item[idx] = item;
omnplay_playlist_draw_item(app, idx);
};
fprintf(stderr, "cue: failed with %d, %s\n", r, OmPlrGetErrorString((OmPlrError)r));
app->playlist.item[i].omn_idx = -1;
app->playlist.item[i].omn_offset = -1;
+ app->playlist.item[i].error |= PLAYLIST_ITEM_ERROR_CUE;
}
else
{
app->playlist.item[i].omn_idx = c;
app->playlist.item[i].omn_offset = o;
+ app->playlist.item[i].error &= 0xF ^ PLAYLIST_ITEM_ERROR_CUE;
/* save selected item offset */
if(i == idx) p = o;
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
- gtk_signal_connect( GTK_OBJECT( app->window ), "destroy",
+ gtk_signal_connect( GTK_OBJECT( app->window ), "delete-event",
GTK_SIGNAL_FUNC(on_main_window_delete_event), app);
+ gtk_signal_connect( GTK_OBJECT( app->window ), "destroy",
+ GTK_SIGNAL_FUNC(on_main_window_destroy), app);
+
gtk_widget_add_events(app->playlist_grid, GDK_BUTTON_PRESS_MASK);
gtk_signal_connect(GTK_OBJECT(app->playlist_grid), "key-press-event",
GTK_SIGNAL_FUNC(on_playlist_grid_key), app);