#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);
+
+ item->error = 0;
+
+ 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;
+ playlist_item_t item;
+
+ for(i = 0; i < app->library.count; i++)
+ {
+ /* find max */
+ for(j = i + 1, m = i; j < app->library.count; j++)
+ if(strcasecmp(app->library.item[j].id, app->library.item[m].id) < 0)
+ m = j;
+
+ if(m != i)
+ {
+ item = app->library.item[i];
+ app->library.item[i] = app->library.item[m];
+ app->library.item[m] = item;
+ };
+ };
+};
+
int omnplay_library_load_file(playlist_item_t* items, int *pcount, char* filename)
{
int i, c = 0, r = 0;
omnplay_library_load_file(app->library.item, &app->library.count, app->library.filename);
};
+ omnplay_library_sort(app);
+
pthread_mutex_unlock(&app->library.lock);
omnplay_library_draw(app);
app->library.count = count;
+ omnplay_library_sort(app);
+
pthread_mutex_unlock(&app->library.lock);
omnplay_library_draw(app);
1, frames2tc(app->library.item[i].dur, 25.0, tc),
2, app->library.item[i].title,
3, i,
+ 4, FALSE,
+ 5, "red",
-1 );
}
pthread_mutex_unlock(&app->library.lock);
};
+