Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Playlist Viewer: Remove forward declarations

Change-Id: I16faf5e43001e139fc8affc942ee8dbf49f99bb1

+80 -102
+80 -102
apps/playlist_viewer.c
··· 130 130 static bool temp_playlist_init = false; 131 131 132 132 static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, 133 - int names_buffer_size); 134 - static void playlist_buffer_load_entries(struct playlist_buffer * pb, int index, 135 - enum direction direction); 136 - static int playlist_entry_load(struct playlist_entry *entry, int index, 137 - char* name_buffer, int remaining_size); 138 - 139 - static struct playlist_entry * playlist_buffer_get_track(struct playlist_buffer *pb, 140 - int index); 141 - 142 - static bool playlist_viewer_init(struct playlist_viewer * viewer, 143 - const char* filename, bool reload, 144 - int *most_recent_selection); 145 - 146 - static void format_line(struct playlist_entry* track, char* str, 147 - int len); 148 - 149 - static bool update_playlist(bool force); 150 - static enum pv_onplay_result onplay_menu(int index); 151 - 152 - static void close_playlist_viewer(void); 153 - 154 - static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, 155 133 int names_buffer_size) 156 134 { 157 135 pb->name_buffer = names_buffer; ··· 179 157 buffer_index = pb->first_index+viewer.num_tracks-index; 180 158 } 181 159 return buffer_index; 160 + } 161 + 162 + static int playlist_entry_load(struct playlist_entry *entry, int index, 163 + char* name_buffer, int remaining_size) 164 + { 165 + struct playlist_track_info info; 166 + int len; 167 + 168 + /* Playlist viewer orders songs based on display index. We need to 169 + convert to real playlist index to access track */ 170 + index = (index + playlist_get_first_index(viewer.playlist)) % 171 + viewer.num_tracks; 172 + if (playlist_get_track_info(viewer.playlist, index, &info) < 0) 173 + return -1; 174 + 175 + len = strlcpy(name_buffer, info.filename, remaining_size) + 1; 176 + 177 + if (global_settings.playlist_viewer_track_display > 178 + PLAYLIST_VIEWER_ENTRY_SHOW_FULL_PATH && len <= remaining_size) 179 + { 180 + /* Allocate space for the id3viewc if the option is enabled */ 181 + len += MAX_PATH + 1; 182 + } 183 + 184 + if (len <= remaining_size) 185 + { 186 + entry->name = name_buffer; 187 + entry->index = info.index; 188 + entry->display_index = info.display_index; 189 + entry->attr = info.attr & (PLAYLIST_ATTR_SKIPPED | PLAYLIST_ATTR_QUEUED); 190 + return len; 191 + } 192 + return -1; 182 193 } 183 194 184 195 /* ··· 268 279 return id3_retrieval_successful; 269 280 } 270 281 271 - static int playlist_entry_load(struct playlist_entry *entry, int index, 272 - char* name_buffer, int remaining_size) 273 - { 274 - struct playlist_track_info info; 275 - int len; 276 - 277 - /* Playlist viewer orders songs based on display index. We need to 278 - convert to real playlist index to access track */ 279 - index = (index + playlist_get_first_index(viewer.playlist)) % 280 - viewer.num_tracks; 281 - if (playlist_get_track_info(viewer.playlist, index, &info) < 0) 282 - return -1; 283 - 284 - len = strlcpy(name_buffer, info.filename, remaining_size) + 1; 285 - 286 - if (global_settings.playlist_viewer_track_display > 287 - PLAYLIST_VIEWER_ENTRY_SHOW_FULL_PATH && len <= remaining_size) 288 - { 289 - /* Allocate space for the id3viewc if the option is enabled */ 290 - len += MAX_PATH + 1; 291 - } 292 - 293 - if (len <= remaining_size) 294 - { 295 - entry->name = name_buffer; 296 - entry->index = info.index; 297 - entry->display_index = info.display_index; 298 - entry->attr = info.attr & (PLAYLIST_ATTR_SKIPPED | PLAYLIST_ATTR_QUEUED); 299 - return len; 300 - } 301 - return -1; 302 - } 303 - 304 282 #define distance(a, b) \ 305 283 a>b? (a) - (b) : (b) - (a) 306 284 static bool playlist_buffer_needs_reload(struct playlist_buffer* pb, ··· 349 327 buffer_index = playlist_buffer_get_index(pb, index); 350 328 } 351 329 return &(pb->tracks[buffer_index]); 330 + } 331 + 332 + /* Update playlist in case something has changed or forced */ 333 + static bool update_playlist(bool force) 334 + { 335 + if (!viewer.playlist) 336 + playlist_get_resume_info(&viewer.current_playing_track); 337 + else 338 + viewer.current_playing_track = -1; 339 + int nb_tracks = playlist_amount_ex(viewer.playlist); 340 + 341 + if (force || nb_tracks != viewer.num_tracks) 342 + { 343 + /* Reload tracks */ 344 + viewer.num_tracks = nb_tracks; 345 + if (viewer.num_tracks <= 0) 346 + { 347 + global_status.resume_index = -1; 348 + global_status.resume_offset = -1; 349 + global_status.resume_elapsed = -1; 350 + return false; 351 + } 352 + playlist_buffer_load_entries_screen(&viewer.buffer, FORWARD, 353 + viewer.selected_track); 354 + if (viewer.buffer.num_loaded <= 0) 355 + { 356 + global_status.resume_index = -1; 357 + global_status.resume_offset = -1; 358 + global_status.resume_elapsed = -1; 359 + return false; 360 + } 361 + } 362 + return true; 352 363 } 353 364 354 365 /* Initialize the playlist viewer. */ ··· 582 593 } 583 594 } 584 595 585 - /* Update playlist in case something has changed or forced */ 586 - static bool update_playlist(bool force) 587 - { 588 - if (!viewer.playlist) 589 - playlist_get_resume_info(&viewer.current_playing_track); 590 - else 591 - viewer.current_playing_track = -1; 592 - int nb_tracks = playlist_amount_ex(viewer.playlist); 593 - 594 - if (force || nb_tracks != viewer.num_tracks) 595 - { 596 - /* Reload tracks */ 597 - viewer.num_tracks = nb_tracks; 598 - if (viewer.num_tracks <= 0) 599 - { 600 - global_status.resume_index = -1; 601 - global_status.resume_offset = -1; 602 - global_status.resume_elapsed = -1; 603 - return false; 604 - } 605 - playlist_buffer_load_entries_screen(&viewer.buffer, FORWARD, 606 - viewer.selected_track); 607 - if (viewer.buffer.num_loaded <= 0) 608 - { 609 - global_status.resume_index = -1; 610 - global_status.resume_offset = -1; 611 - global_status.resume_elapsed = -1; 612 - return false; 613 - } 614 - } 615 - return true; 616 - } 617 - 618 596 static enum pv_onplay_result show_track_info(const struct playlist_entry *current_track) 619 597 { 620 598 struct mp3entry id3; ··· 623 601 return id3_retrieval_successful && 624 602 browse_id3_ex(&id3, viewer.playlist, current_track->display_index, 625 603 viewer.num_tracks, NULL, 1) ? PV_ONPLAY_USB : PV_ONPLAY_UNCHANGED; 604 + } 605 + 606 + static void close_playlist_viewer(void) 607 + { 608 + talk_shutup(); 609 + if (viewer.playlist) 610 + { 611 + if (viewer.initial_selection) 612 + *(viewer.initial_selection) = viewer.selected_track; 613 + 614 + if(playlist_modified(viewer.playlist) && yesno_pop(ID2P(LANG_SAVE_CHANGES))) 615 + save_playlist_screen(viewer.playlist); 616 + playlist_close(viewer.playlist); 617 + } 626 618 } 627 619 628 620 #if defined(HAVE_HOTKEY) || defined(HAVE_TAGCACHE) ··· 1224 1216 pop_current_activity_without_refresh(); 1225 1217 close_playlist_viewer(); 1226 1218 return ret; 1227 - } 1228 - 1229 - static void close_playlist_viewer(void) 1230 - { 1231 - talk_shutup(); 1232 - if (viewer.playlist) 1233 - { 1234 - if (viewer.initial_selection) 1235 - *(viewer.initial_selection) = viewer.selected_track; 1236 - 1237 - if(playlist_modified(viewer.playlist) && yesno_pop(ID2P(LANG_SAVE_CHANGES))) 1238 - save_playlist_screen(viewer.playlist); 1239 - playlist_close(viewer.playlist); 1240 - } 1241 1219 } 1242 1220 1243 1221 static const char* playlist_search_callback_name(int selected_item, void * data,