diff --git a/menu/menu_database.c b/menu/menu_database.c index 619f1645ea..31024f1203 100644 --- a/menu/menu_database.c +++ b/menu/menu_database.c @@ -56,12 +56,19 @@ void menu_database_free(menu_handle_t *menu) bool menu_database_realloc(menu_handle_t *menu, const char *path) { + if (!strcmp(menu->db_playlist_file, path)) + return true; + menu_database_playlist_free(menu); + menu->db_playlist = content_playlist_init(path, 1000); if (!menu->db_playlist) return false; + strlcpy(menu->db_playlist_file, path, + sizeof(menu->db_playlist_file)); + return true; } diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 633eab637a..d2bcb404f2 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -145,6 +145,7 @@ typedef struct unsigned numtweens; content_playlist_t *db_playlist; + char db_playlist_file[PATH_MAX_LENGTH]; } menu_handle_t; typedef struct menu_file_list_cbs