return r;
};
+int omnplay_library_relink_item(omnplay_instance_t* app, playlist_item_t* item)
+{
+ int r = 0;
+ playlist_item_t* lib;
+
+ pthread_mutex_lock(&app->library.lock);
+
+ lib = omnplay_library_find(app, item->id);
+
+ item->error = 0;
+
+ if(lib)
+ {
+ r = 1;
+ strcpy(item->title, lib->title);
+ item->dur = lib->dur;
+ item->in = lib->in;
+ }
+ else
+ {
+ r = 1;
+ item->error = PLAYLIST_ITEM_ERROR_LIB;
+ };
+
+ pthread_mutex_unlock(&app->library.lock);
+
+ return r;
+};
+
void omnplay_library_sort(omnplay_instance_t* app)
{
int i, j, m;
free(list);
};
+void omnplay_playlist_relink(omnplay_instance_t* app)
+{
+ int i, idx, c;
+ int *list;
+
+ pthread_mutex_lock(&app->playlist.lock);
+ list = omnplay_selected_idxs_playlist(app);
+ if(list)
+ {
+ for(i = 0, c = 0; i < list[0]; i++)
+ {
+ /* check for playing block */
+ if(idx_in_players_range(app, list[i + 1]))
+ continue;
+ /* relink item */
+ omnplay_library_relink_item(app, &app->playlist.item[list[i + 1]]);
+ };
+
+ free(list);
+ };
+ pthread_mutex_unlock(&app->playlist.lock);
+
+ /* redraw playlist */
+ omnplay_playlist_draw(app);
+};
+
static int omnplay_playlist_insert_check(omnplay_instance_t* app, int idx, playlist_item_type_t* t)
{
*t = OMNPLAY_PLAYLIST_ITEM_BLOCK_SINGLE;
case BUTTON_LIBRARY_FIND_NEXT:
omnplay_library_search(app, 1);
break;
+ case BUTTON_PLAYLIST_RELINK:
+ omnplay_playlist_relink(app);
+ break;
};
return TRUE;
BUTTON_LIBRARY_FIND,
BUTTON_LIBRARY_FIND_NEXT,
+ BUTTON_PLAYLIST_RELINK,
+
BUTTON_LAST
} control_buttons_t;
void omnplay_destroy(omnplay_instance_t* app);
void omnplay_playlist_load(omnplay_instance_t* app);
void omnplay_playlist_save(omnplay_instance_t* app);
+void omnplay_playlist_relink(omnplay_instance_t* app);
void omnplay_playlist_draw(omnplay_instance_t* app);
void omnplay_playlist_draw_item(omnplay_instance_t* app, int idx);
void omnplay_playlist_draw_item_rem(omnplay_instance_t* app, int idx, char* rem);
int omnplay_library_load_file(playlist_item_t* items, int *pcount, char* filename);
playlist_item_t* omnplay_library_find(omnplay_instance_t* app, char* id);
int omnplay_library_normalize_item(omnplay_instance_t* app, playlist_item_t* item);
+int omnplay_library_relink_item(omnplay_instance_t* app, playlist_item_t* item);
playlist_item_t* omnplay_library_get_selected(omnplay_instance_t* app, int *count);
void omnplay_playlist_normalize(omnplay_instance_t* app);
void omnplay_library_search(omnplay_instance_t* app, int next);
ui_create_button(top, app, BUTTON_PLAYLIST_ITEM_DOWN),
FALSE, FALSE, 0);
+ /* spacer */
+ gtk_box_pack_start (GTK_BOX (hbox),
+ create_label(top, " ", NULL, GTK_JUSTIFY_CENTER),
+ FALSE, FALSE, 0);
+
+ /* playlist relink */
+ gtk_box_pack_start (GTK_BOX (hbox),
+ ui_create_button(top, app, BUTTON_PLAYLIST_RELINK),
+ FALSE, FALSE, 0);
+
return hbox;
}
"Axialis_Team_item_add_16x116.png"
},
{
+ BUTTON_PLAYLIST_RELINK,
+ "Relink items in playlist",
+ NULL,
+ NULL,
+ "button_playlist_relink",
+ "Axialis_Team_item_add_16x116.png"
+ },
+ {
BUTTON_PLAYLIST_ITEM_EDIT,
"Edit item in playlist (E)",
NULL,