X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Flibrary.c;h=9a05e12a0b1c85cd606caf2ee507fd80ad9cb517;hb=be35f211e1af32ce8940db1f10e2fb283bf1fe0a;hp=700d5bfe341f5d706fc4896fc4e87ef4a9b2ae7a;hpb=5a2f0a475dfa74cb43b5abeb69dce4fd386e2fdb;p=melted_gui diff --git a/src/library.c b/src/library.c index 700d5bf..9a05e12 100644 --- a/src/library.c +++ b/src/library.c @@ -219,11 +219,15 @@ void omnplay_library_save(omnplay_instance_t* app) static void omnplay_get_content_cb(omnplay_instance_t* app, playlist_item_t* item, void* data) { - fprintf(stderr, "requested: id=[%s]\n", item->id); + gdk_threads_enter(); + gtk_label_set_text(GTK_LABEL(app->library.refresh_ui[1]), item->id); + gdk_flush(); + gdk_threads_leave(); }; -void omnplay_library_refresh(omnplay_instance_t* app) +static void* omnplay_library_refresh_proc(void* data) { + omnplay_instance_t* app = (omnplay_instance_t*)data; int count, i; playlist_item_t* items; @@ -233,6 +237,11 @@ void omnplay_library_refresh(omnplay_instance_t* app) if(count > 0) { + gdk_threads_enter(); + gtk_label_set_text(GTK_LABEL(app->library.refresh_ui[1]), "Quering whois..."); + gdk_flush(); + gdk_threads_leave(); + if(app->library.whois[0]) omnplay_whois_list(app, items, &count); @@ -247,12 +256,34 @@ void omnplay_library_refresh(omnplay_instance_t* app) pthread_mutex_unlock(&app->library.lock); + gdk_threads_enter(); omnplay_library_draw(app); + gdk_flush(); + gdk_threads_leave(); }; free(items); + gdk_threads_enter(); omnplay_playlist_normalize(app); + gtk_widget_destroy(app->library.refresh_ui[0]); + gdk_flush(); + gdk_threads_leave(); + + return NULL; +}; + +void omnplay_library_refresh(omnplay_instance_t* app) +{ + if(app->library.refresh_ui[0]) + pthread_join(app->library.refresh_thread, NULL); + + /* create UI for monitoring update */ + ui_library_refresh(app, &app->library.refresh_ui[0], &app->library.refresh_ui[1]); + + pthread_create(&app->library.refresh_thread, NULL, + omnplay_library_refresh_proc, app); + }; void omnplay_library_draw(omnplay_instance_t* app) @@ -352,3 +383,7 @@ playlist_item_t* omnplay_library_get_selected(omnplay_instance_t* app, int *coun return items; }; + +void omnplay_library_search(omnplay_instance_t* app, int next) +{ +};