notify status during library browse
authorMaksym Veremeyenko <verem@m1stereo.tv>
Mon, 9 Jul 2012 05:20:01 +0000 (08:20 +0300)
committerMaksym Veremeyenko <verem@m1stereo.tv>
Mon, 9 Jul 2012 05:20:01 +0000 (08:20 +0300)
src/library.c
src/ui.c
src/ui.h

index 8f06337..ca8f8f7 100644 (file)
@@ -142,6 +142,7 @@ static void on_library_row_expanded
     mvcp_dir dir;
     mvcp_dir_entry_t *e;
     instance_t* app = (instance_t*)user_data;
+    char msg[PATH_MAX];
 
 //    g_warning("on_library_row_expanded: HERE");
 
@@ -183,6 +184,9 @@ static void on_library_row_expanded
         e = (mvcp_dir_entry_t*)malloc(sizeof(mvcp_dir_entry_t));
         *e = dir_entry;
 
+        snprintf(msg, sizeof(msg), "probing [%s]", e->full);
+        ui_set_status(app, msg, 0);
+
         if(!e->dir && mvcp_ok == mvcp_probe_clip( app->library.handle[0], e->full, &list_entry))
         {
             list_e = (mvcp_list_entry_t*)malloc(sizeof(mvcp_list_entry_t));
@@ -192,6 +196,9 @@ static void on_library_row_expanded
         library_add_item(app, GTK_TREE_STORE(model), iter, e, list_e);
     };
 
+    snprintf(msg, sizeof(msg), "read [%s] done", p);
+    ui_set_status(app, msg, 0);
+
     /* restore cursor */
     gdk_window_set_cursor(gtk_widget_get_toplevel(GTK_WIDGET(treeview))->window, NULL);
 
index 64d5f99..e0541c9 100644 (file)
--- a/src/ui.c
+++ b/src/ui.c
@@ -986,12 +986,14 @@ void ui_playlist_draw_item(instance_t* app, int idx)
     pthread_mutex_unlock(&app->playlist.lock);
 };
 
-void ui_set_status(instance_t* app, char* str)
+void ui_set_status(instance_t* app, char* str, int lock)
 {
-    gdk_threads_enter();
+    if(lock)
+        gdk_threads_enter();
     gtk_label_set_text(GTK_LABEL(app->status_label), str);
     gdk_flush();
-    gdk_threads_leave();
+    if(lock)
+        gdk_threads_leave();
 };
 
 void ui_show_error(GtkWidget *window, char* title, char* message)
index d6952c8..6aec4ae 100644 (file)
--- a/src/ui.h
+++ b/src/ui.h
@@ -34,7 +34,7 @@ void ui_playlist_draw_item(instance_t* app, int idx);
 void ui_playlist_select_item(instance_t* app, int idx);
 int ui_playlist_item_dialog(instance_t* app, playlist_item_t* item);
 void ui_playlist_draw(instance_t* app);
-void ui_set_status(instance_t* app, char* str);
+void ui_set_status(instance_t* app, char* str, int lock);
 
 struct ui_playlist_io_funcs
 {