summaryrefslogtreecommitdiff
path: root/apps/playlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist.c')
-rw-r--r--apps/playlist.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/apps/playlist.c b/apps/playlist.c
index c15c394b4c..6c1d97a6ef 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -821,7 +821,7 @@ static int add_track_to_playlist(struct playlist_info* playlist,
821 playlist->num_inserted_tracks++; 821 playlist->num_inserted_tracks++;
822 822
823 /* Update index for resume. */ 823 /* Update index for resume. */
824 playback_set_playlist_index(playlist->index); 824 playlist_update_resume_index();
825 825
826 return insert_position; 826 return insert_position;
827} 827}
@@ -924,7 +924,7 @@ static int remove_track_from_playlist(struct playlist_info* playlist,
924 } 924 }
925 925
926 /* Update index for resume. */ 926 /* Update index for resume. */
927 playback_set_playlist_index(playlist->index); 927 playlist_update_resume_index();
928 928
929 return 0; 929 return 0;
930} 930}
@@ -986,7 +986,7 @@ static int randomise_playlist(struct playlist_info* playlist,
986 } 986 }
987 987
988 /* Update index for resume. */ 988 /* Update index for resume. */
989 playback_set_playlist_index(playlist->index); 989 playlist_update_resume_index();
990 990
991 return 0; 991 return 0;
992} 992}
@@ -1029,7 +1029,7 @@ static int sort_playlist(struct playlist_info* playlist, bool start_current,
1029 } 1029 }
1030 1030
1031 /* Update index for resume. */ 1031 /* Update index for resume. */
1032 playback_set_playlist_index(playlist->index); 1032 playlist_update_resume_index();
1033 1033
1034 return 0; 1034 return 0;
1035} 1035}
@@ -1205,7 +1205,7 @@ static void find_and_set_playlist_index(struct playlist_info* playlist,
1205 } 1205 }
1206 1206
1207 /* Update index for resume. */ 1207 /* Update index for resume. */
1208 playback_set_playlist_index(playlist->index); 1208 playlist_update_resume_index();
1209} 1209}
1210 1210
1211/* 1211/*
@@ -2633,15 +2633,24 @@ int playlist_get_index(void)
2633 return current_playlist.index; 2633 return current_playlist.index;
2634} 2634}
2635 2635
2636/* Update resume index within playlist_info structure. */
2637void playlist_update_resume_index(void)
2638{
2639 struct playlist_info* playlist = &current_playlist;
2640 playlist->resume_index = playlist->index;
2641}
2642
2636/* Update resume info for current playing song. Returns -1 on error. */ 2643/* Update resume info for current playing song. Returns -1 on error. */
2637int playlist_update_resume_info(const struct mp3entry* id3) 2644int playlist_update_resume_info(const struct mp3entry* id3)
2638{ 2645{
2646 struct playlist_info* playlist = &current_playlist;
2647
2639 if (id3) 2648 if (id3)
2640 { 2649 {
2641 if (global_status.resume_index != id3->index || 2650 if (global_status.resume_index != playlist->resume_index ||
2642 global_status.resume_offset != id3->offset) 2651 global_status.resume_offset != id3->offset)
2643 { 2652 {
2644 global_status.resume_index = id3->index; 2653 global_status.resume_index = playlist->resume_index;
2645 global_status.resume_offset = id3->offset; 2654 global_status.resume_offset = id3->offset;
2646 status_save(); 2655 status_save();
2647 } 2656 }
@@ -3190,7 +3199,7 @@ int playlist_move(struct playlist_info* playlist, int index, int new_index)
3190#endif 3199#endif
3191 3200
3192 /* Update index for resume. */ 3201 /* Update index for resume. */
3193 playback_set_playlist_index(playlist->index); 3202 playlist_update_resume_index();
3194 3203
3195 return result; 3204 return result;
3196} 3205}