X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Flibrary.c;h=e547b5cca120c7c4852e6c20336ca1d855a582f4;hb=1bbcc24cd35fbfc8e87abd7d6e5df7e70b411971;hp=9c0fe494064b08d3941e1d50e7ab9e88135e40fd;hpb=dd6ffa0e99fe56df3943ce188cad1fc239f4ff3c;p=omnplay diff --git a/src/library.c b/src/library.c index 9c0fe49..e547b5c 100644 --- a/src/library.c +++ b/src/library.c @@ -32,6 +32,48 @@ #include "ui.h" #include "timecode.h" +playlist_item_t* omnplay_library_find(omnplay_instance_t* app, char* id) +{ + int i; + playlist_item_t* item = NULL; + + pthread_mutex_lock(&app->library.lock); + + for(i = 0; i < app->library.count && !item; i++) + if(!strcasecmp(id, app->library.item[i].id)) + item = &app->library.item[i]; + + pthread_mutex_unlock(&app->library.lock); + + return item; +}; + +void omnplay_library_normalize_item(omnplay_instance_t* app, playlist_item_t* item) +{ + playlist_item_t* lib; + + pthread_mutex_lock(&app->library.lock); + + lib = omnplay_library_find(app, item->id); + + if(lib) + { + + if(!item->title[0]) + strcpy(item->title, lib->title); + + if(!item->dur) + { + item->dur = lib->dur; + item->in = lib->in; + }; + } + else + item->error = PLAYLIST_ITEM_ERROR_LIB; + + pthread_mutex_unlock(&app->library.lock); +}; + void omnplay_library_sort(omnplay_instance_t* app) { int i, j, m; @@ -226,3 +268,4 @@ void omnplay_library_draw(omnplay_instance_t* app) pthread_mutex_unlock(&app->library.lock); }; +