diff options
Diffstat (limited to 'apps/playlist_viewer.c')
-rw-r--r-- | apps/playlist_viewer.c | 131 |
1 files changed, 66 insertions, 65 deletions
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index cd90572b95..aaa45599b0 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c | |||
@@ -131,10 +131,10 @@ static int save_playlist_func(void); | |||
131 | static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, | 131 | static void playlist_buffer_init(struct playlist_buffer *pb, char *names_buffer, |
132 | int names_buffer_size) | 132 | int names_buffer_size) |
133 | { | 133 | { |
134 | pb->name_buffer=names_buffer; | 134 | pb->name_buffer = names_buffer; |
135 | pb->buffer_size=names_buffer_size; | 135 | pb->buffer_size = names_buffer_size; |
136 | pb->first_index=0; | 136 | pb->first_index = 0; |
137 | pb->num_loaded=0; | 137 | pb->num_loaded = 0; |
138 | } | 138 | } |
139 | 139 | ||
140 | /* | 140 | /* |
@@ -152,7 +152,7 @@ static void playlist_buffer_load_entries(struct playlist_buffer *pb, int index, | |||
152 | if (num_entries > MAX_PLAYLIST_ENTRIES) | 152 | if (num_entries > MAX_PLAYLIST_ENTRIES) |
153 | num_entries = MAX_PLAYLIST_ENTRIES; | 153 | num_entries = MAX_PLAYLIST_ENTRIES; |
154 | 154 | ||
155 | for(i=0; i<num_entries; i++) | 155 | for (i = 0; i < num_entries; i++) |
156 | { | 156 | { |
157 | int len = playlist_entry_load(&(pb->tracks[i]), index, p, remaining); | 157 | int len = playlist_entry_load(&(pb->tracks[i]), index, p, remaining); |
158 | if (len < 0) | 158 | if (len < 0) |
@@ -165,32 +165,32 @@ static void playlist_buffer_load_entries(struct playlist_buffer *pb, int index, | |||
165 | p += len; | 165 | p += len; |
166 | remaining -= len; | 166 | remaining -= len; |
167 | 167 | ||
168 | if(direction==FORWARD) | 168 | if(direction == FORWARD) |
169 | index++; | 169 | index++; |
170 | else | 170 | else |
171 | index--; | 171 | index--; |
172 | index+=viewer.num_tracks; | 172 | index += viewer.num_tracks; |
173 | index%=viewer.num_tracks; | 173 | index %= viewer.num_tracks; |
174 | } | 174 | } |
175 | pb->direction=direction; | 175 | pb->direction = direction; |
176 | pb->num_loaded = i; | 176 | pb->num_loaded = i; |
177 | } | 177 | } |
178 | 178 | ||
179 | static void playlist_buffer_load_entries_screen(struct playlist_buffer * pb, | 179 | static void playlist_buffer_load_entries_screen(struct playlist_buffer * pb, |
180 | enum direction direction) | 180 | enum direction direction) |
181 | { | 181 | { |
182 | if(direction==FORWARD) | 182 | if (direction == FORWARD) |
183 | { | 183 | { |
184 | int min_start=viewer.selected_track-2*screens[0].getnblines(); | 184 | int min_start = viewer.selected_track-2*screens[0].getnblines(); |
185 | while(min_start<0) | 185 | while (min_start < 0) |
186 | min_start+=viewer.num_tracks; | 186 | min_start += viewer.num_tracks; |
187 | min_start %= viewer.num_tracks; | 187 | min_start %= viewer.num_tracks; |
188 | playlist_buffer_load_entries(pb, min_start, FORWARD); | 188 | playlist_buffer_load_entries(pb, min_start, FORWARD); |
189 | } | 189 | } |
190 | else | 190 | else |
191 | { | 191 | { |
192 | int max_start=viewer.selected_track+2*screens[0].getnblines(); | 192 | int max_start = viewer.selected_track+2*screens[0].getnblines(); |
193 | max_start%=viewer.num_tracks; | 193 | max_start %= viewer.num_tracks; |
194 | playlist_buffer_load_entries(pb, max_start, BACKWARD); | 194 | playlist_buffer_load_entries(pb, max_start, BACKWARD); |
195 | } | 195 | } |
196 | } | 196 | } |
@@ -227,22 +227,22 @@ static int playlist_entry_load(struct playlist_entry *entry, int index, | |||
227 | static int playlist_buffer_get_index(struct playlist_buffer *pb, int index) | 227 | static int playlist_buffer_get_index(struct playlist_buffer *pb, int index) |
228 | { | 228 | { |
229 | int buffer_index; | 229 | int buffer_index; |
230 | if(pb->direction==FORWARD) | 230 | if (pb->direction == FORWARD) |
231 | { | 231 | { |
232 | if(index>=pb->first_index) | 232 | if (index >= pb->first_index) |
233 | buffer_index=index-pb->first_index; | 233 | buffer_index = index-pb->first_index; |
234 | else /* rotation : track0 in buffer + requested track */ | 234 | else /* rotation : track0 in buffer + requested track */ |
235 | buffer_index=(viewer.num_tracks-pb->first_index)+(index); | 235 | buffer_index = viewer.num_tracks-pb->first_index+index; |
236 | } | 236 | } |
237 | else | 237 | else |
238 | { | 238 | { |
239 | if(index<=pb->first_index) | 239 | if (index <= pb->first_index) |
240 | buffer_index=pb->first_index-index; | 240 | buffer_index = pb->first_index-index; |
241 | else /* rotation : track0 in buffer + dist from the last track | 241 | else /* rotation : track0 in buffer + dist from the last track |
242 | to the requested track (num_tracks-requested track) */ | 242 | to the requested track (num_tracks-requested track) */ |
243 | buffer_index=(pb->first_index)+(viewer.num_tracks-index); | 243 | buffer_index = pb->first_index+viewer.num_tracks-index; |
244 | } | 244 | } |
245 | return(buffer_index); | 245 | return buffer_index; |
246 | } | 246 | } |
247 | 247 | ||
248 | #define distance(a, b) \ | 248 | #define distance(a, b) \ |
@@ -250,24 +250,24 @@ static int playlist_buffer_get_index(struct playlist_buffer *pb, int index) | |||
250 | static bool playlist_buffer_needs_reload(struct playlist_buffer* pb, | 250 | static bool playlist_buffer_needs_reload(struct playlist_buffer* pb, |
251 | int track_index) | 251 | int track_index) |
252 | { | 252 | { |
253 | if(pb->num_loaded==viewer.num_tracks) | 253 | if (pb->num_loaded == viewer.num_tracks) |
254 | return(false); | 254 | return false; |
255 | int selected_index=playlist_buffer_get_index(pb, track_index); | 255 | int selected_index = playlist_buffer_get_index(pb, track_index); |
256 | int first_buffer_index=playlist_buffer_get_index(pb, pb->first_index); | 256 | int first_buffer_index = playlist_buffer_get_index(pb, pb->first_index); |
257 | int distance_beginning=distance(selected_index, first_buffer_index); | 257 | int distance_beginning = distance(selected_index, first_buffer_index); |
258 | if(distance_beginning<MIN_BUFFER_MARGIN) | 258 | if (distance_beginning < MIN_BUFFER_MARGIN) |
259 | return(true); | 259 | return true; |
260 | 260 | ||
261 | if(pb->num_loaded - distance_beginning < MIN_BUFFER_MARGIN) | 261 | if (pb->num_loaded - distance_beginning < MIN_BUFFER_MARGIN) |
262 | return(true); | 262 | return true; |
263 | return(false); | 263 | return false; |
264 | } | 264 | } |
265 | 265 | ||
266 | static struct playlist_entry * playlist_buffer_get_track(struct playlist_buffer *pb, | 266 | static struct playlist_entry * playlist_buffer_get_track(struct playlist_buffer *pb, |
267 | int index) | 267 | int index) |
268 | { | 268 | { |
269 | int buffer_index=playlist_buffer_get_index(pb, index); | 269 | int buffer_index = playlist_buffer_get_index(pb, index); |
270 | return(&(pb->tracks[buffer_index])); | 270 | return &(pb->tracks[buffer_index]); |
271 | } | 271 | } |
272 | 272 | ||
273 | /* Initialize the playlist viewer. */ | 273 | /* Initialize the playlist viewer. */ |
@@ -344,7 +344,7 @@ static bool playlist_viewer_init(struct playlist_viewer * viewer, | |||
344 | buffer += index_buffer_size; | 344 | buffer += index_buffer_size; |
345 | buffer_size -= index_buffer_size; | 345 | buffer_size -= index_buffer_size; |
346 | } | 346 | } |
347 | playlist_buffer_init(&viewer->buffer, buffer, buffer_size ); | 347 | playlist_buffer_init(&viewer->buffer, buffer, buffer_size); |
348 | 348 | ||
349 | viewer->moving_track = -1; | 349 | viewer->moving_track = -1; |
350 | viewer->moving_playlist_index = -1; | 350 | viewer->moving_playlist_index = -1; |
@@ -414,8 +414,8 @@ static bool update_playlist(bool force) | |||
414 | playlist_get_resume_info(&viewer.current_playing_track); | 414 | playlist_get_resume_info(&viewer.current_playing_track); |
415 | else | 415 | else |
416 | viewer.current_playing_track = -1; | 416 | viewer.current_playing_track = -1; |
417 | int nb_tracks=playlist_amount_ex(viewer.playlist); | 417 | int nb_tracks = playlist_amount_ex(viewer.playlist); |
418 | force=force || nb_tracks != viewer.num_tracks; | 418 | force = force || nb_tracks != viewer.num_tracks; |
419 | if (force) | 419 | if (force) |
420 | { | 420 | { |
421 | /* Reload tracks */ | 421 | /* Reload tracks */ |
@@ -443,7 +443,7 @@ static bool update_playlist(bool force) | |||
443 | static int onplay_menu(int index) | 443 | static int onplay_menu(int index) |
444 | { | 444 | { |
445 | int result, ret = 0; | 445 | int result, ret = 0; |
446 | struct playlist_entry * current_track= | 446 | struct playlist_entry * current_track = |
447 | playlist_buffer_get_track(&viewer.buffer, index); | 447 | playlist_buffer_get_track(&viewer.buffer, index); |
448 | MENUITEM_STRINGLIST(menu_items, ID2P(LANG_PLAYLIST), NULL, | 448 | MENUITEM_STRINGLIST(menu_items, ID2P(LANG_PLAYLIST), NULL, |
449 | ID2P(LANG_REMOVE), ID2P(LANG_MOVE), | 449 | ID2P(LANG_REMOVE), ID2P(LANG_MOVE), |
@@ -500,7 +500,7 @@ static int onplay_menu(int index) | |||
500 | case 3: /* add to a new one */ | 500 | case 3: /* add to a new one */ |
501 | catalog_add_to_a_playlist(current_track->name, | 501 | catalog_add_to_a_playlist(current_track->name, |
502 | FILE_ATTR_AUDIO, | 502 | FILE_ATTR_AUDIO, |
503 | result==3, NULL); | 503 | result == 3, NULL); |
504 | ret = 0; | 504 | ret = 0; |
505 | break; | 505 | break; |
506 | case 4: /* playlist viewer settings */ | 506 | case 4: /* playlist viewer settings */ |
@@ -540,22 +540,22 @@ enum playlist_viewer_result playlist_viewer(void) | |||
540 | return playlist_viewer_ex(NULL); | 540 | return playlist_viewer_ex(NULL); |
541 | } | 541 | } |
542 | 542 | ||
543 | static int get_track_num( struct playlist_viewer * local_viewer, | 543 | static int get_track_num(struct playlist_viewer *local_viewer, |
544 | int selected_item ) | 544 | int selected_item) |
545 | { | 545 | { |
546 | if( local_viewer->moving_track >= 0 ) | 546 | if (local_viewer->moving_track >= 0) |
547 | { | 547 | { |
548 | if( local_viewer->selected_track == selected_item ) | 548 | if (local_viewer->selected_track == selected_item) |
549 | { | 549 | { |
550 | return local_viewer->moving_track; | 550 | return local_viewer->moving_track; |
551 | } | 551 | } |
552 | else if( local_viewer->selected_track > selected_item | 552 | else if (local_viewer->selected_track > selected_item |
553 | && selected_item >= local_viewer->moving_track ) | 553 | && selected_item >= local_viewer->moving_track) |
554 | { | 554 | { |
555 | return selected_item+1; /* move down */ | 555 | return selected_item+1; /* move down */ |
556 | } | 556 | } |
557 | else if( local_viewer->selected_track < selected_item | 557 | else if (local_viewer->selected_track < selected_item |
558 | && selected_item <= local_viewer->moving_track ) | 558 | && selected_item <= local_viewer->moving_track) |
559 | { | 559 | { |
560 | return selected_item-1; /* move up */ | 560 | return selected_item-1; /* move up */ |
561 | } | 561 | } |
@@ -568,11 +568,11 @@ static const char* playlist_callback_name(int selected_item, | |||
568 | char *buffer, | 568 | char *buffer, |
569 | size_t buffer_len) | 569 | size_t buffer_len) |
570 | { | 570 | { |
571 | struct playlist_viewer * local_viewer = (struct playlist_viewer *)data; | 571 | struct playlist_viewer *local_viewer = (struct playlist_viewer *)data; |
572 | 572 | ||
573 | int track_num = get_track_num(local_viewer, selected_item); | 573 | int track_num = get_track_num(local_viewer, selected_item); |
574 | struct playlist_entry *track = | 574 | struct playlist_entry *track = |
575 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); | 575 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); |
576 | 576 | ||
577 | format_line(track, buffer, buffer_len); | 577 | format_line(track, buffer, buffer_len); |
578 | 578 | ||
@@ -583,10 +583,10 @@ static const char* playlist_callback_name(int selected_item, | |||
583 | static enum themable_icons playlist_callback_icons(int selected_item, | 583 | static enum themable_icons playlist_callback_icons(int selected_item, |
584 | void *data) | 584 | void *data) |
585 | { | 585 | { |
586 | struct playlist_viewer * local_viewer=(struct playlist_viewer *)data; | 586 | struct playlist_viewer *local_viewer = (struct playlist_viewer *)data; |
587 | 587 | ||
588 | int track_num = get_track_num(local_viewer, selected_item); | 588 | int track_num = get_track_num(local_viewer, selected_item); |
589 | struct playlist_entry *track= | 589 | struct playlist_entry *track = |
590 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); | 590 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); |
591 | 591 | ||
592 | if (track->index == local_viewer->current_playing_track) | 592 | if (track->index == local_viewer->current_playing_track) |
@@ -608,14 +608,14 @@ static enum themable_icons playlist_callback_icons(int selected_item, | |||
608 | return Icon_NOICON; | 608 | return Icon_NOICON; |
609 | } | 609 | } |
610 | 610 | ||
611 | static int playlist_callback_voice(int selected_item, void * data) | 611 | static int playlist_callback_voice(int selected_item, void *data) |
612 | { | 612 | { |
613 | struct playlist_viewer * local_viewer = (struct playlist_viewer *)data; | 613 | struct playlist_viewer *local_viewer = (struct playlist_viewer *)data; |
614 | 614 | ||
615 | int track_num = get_track_num(local_viewer, selected_item); | 615 | int track_num = get_track_num(local_viewer, selected_item); |
616 | struct playlist_entry *track = | 616 | struct playlist_entry *track = |
617 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); | 617 | playlist_buffer_get_track(&(local_viewer->buffer), track_num); |
618 | 618 | ||
619 | bool enqueue = false; | 619 | bool enqueue = false; |
620 | 620 | ||
621 | if (global_settings.talk_file_clip || global_settings.talk_file == 2) | 621 | if (global_settings.talk_file_clip || global_settings.talk_file == 2) |
@@ -641,7 +641,7 @@ static int playlist_callback_voice(int selected_item, void * data) | |||
641 | enum playlist_viewer_result playlist_viewer_ex(const char* filename) | 641 | enum playlist_viewer_result playlist_viewer_ex(const char* filename) |
642 | { | 642 | { |
643 | enum playlist_viewer_result ret = PLAYLIST_VIEWER_OK; | 643 | enum playlist_viewer_result ret = PLAYLIST_VIEWER_OK; |
644 | bool exit=false; /* exit viewer */ | 644 | bool exit = false; /* exit viewer */ |
645 | int button; | 645 | int button; |
646 | struct gui_synclist playlist_lists; | 646 | struct gui_synclist playlist_lists; |
647 | if (!playlist_viewer_init(&viewer, filename, false)) | 647 | if (!playlist_viewer_init(&viewer, filename, false)) |
@@ -777,7 +777,7 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename) | |||
777 | update_playlist(true); | 777 | update_playlist(true); |
778 | if (viewer.num_tracks <= 0) | 778 | if (viewer.num_tracks <= 0) |
779 | exit = true; | 779 | exit = true; |
780 | if(viewer.selected_track >= viewer.num_tracks) | 780 | if (viewer.selected_track >= viewer.num_tracks) |
781 | viewer.selected_track = viewer.num_tracks-1; | 781 | viewer.selected_track = viewer.num_tracks-1; |
782 | } | 782 | } |
783 | gui_synclist_draw(&playlist_lists); | 783 | gui_synclist_draw(&playlist_lists); |
@@ -833,7 +833,8 @@ bool search_playlist(void) | |||
833 | 833 | ||
834 | cpu_boost(true); | 834 | cpu_boost(true); |
835 | 835 | ||
836 | for (i=0; (i<playlist_count)&&(found_indicies_count<MAX_PLAYLIST_ENTRIES); i++) | 836 | for (i = 0; i < playlist_count && |
837 | found_indicies_count < MAX_PLAYLIST_ENTRIES; i++) | ||
837 | { | 838 | { |
838 | if (found_indicies_count != last_found_count) | 839 | if (found_indicies_count != last_found_count) |
839 | { | 840 | { |
@@ -882,13 +883,13 @@ bool search_playlist(void) | |||
882 | case ACTION_STD_OK: | 883 | case ACTION_STD_OK: |
883 | { | 884 | { |
884 | int sel = gui_synclist_get_sel_pos(&playlist_lists); | 885 | int sel = gui_synclist_get_sel_pos(&playlist_lists); |
885 | playlist_start(found_indicies[sel] ,0); | 886 | playlist_start(found_indicies[sel], 0); |
886 | exit = 1; | 887 | exit = 1; |
887 | } | 888 | } |
888 | break; | 889 | break; |
889 | 890 | ||
890 | default: | 891 | default: |
891 | if(default_event_handler(button) == SYS_USB_CONNECTED) | 892 | if (default_event_handler(button) == SYS_USB_CONNECTED) |
892 | { | 893 | { |
893 | ret = true; | 894 | ret = true; |
894 | exit = true; | 895 | exit = true; |