From 95d053827971a857f7dc755306ced0311cf00a47 Mon Sep 17 00:00:00 2001 From: waker Date: Wed, 28 Dec 2011 16:17:40 +0100 Subject: fixed resuming saved playback state --- main.c | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index bec3fbdc..0737a59d 100644 --- a/main.c +++ b/main.c @@ -473,6 +473,26 @@ server_loop (void *ctx) { } } +void +save_resume_state (void) { + playItem_t *trk = streamer_get_playing_track (); + DB_output_t *output = plug_get_output (); + float playpos = -1; + int playtrack = -1; + int playlist = streamer_get_current_playlist (); + int paused = (output->state () == OUTPUT_STATE_PAUSED); + if (trk && playlist >= 0) { + playtrack = str_get_idx_of (trk); + playpos = streamer_get_playpos (); + pl_item_unref (trk); + } + + conf_set_float ("resume.position", playpos); + conf_set_int ("resume.track", playtrack); + conf_set_int ("resume.playlist", playlist); + conf_set_int ("resume.paused", paused); +} + void player_mainloop (void) { for (;;) { @@ -498,6 +518,8 @@ player_mainloop (void) { break; case DB_EV_TERMINATE: { + save_resume_state (); + pl_playqueue_clear (); // stop streaming and playback before unloading plugins @@ -615,26 +637,6 @@ sigsegv_handler (int sig) { } #endif -void -save_resume_state (void) { - playItem_t *trk = streamer_get_playing_track (); - DB_output_t *output = plug_get_output (); - float playpos = -1; - int playtrack = -1; - int playlist = streamer_get_current_playlist (); - int paused = (output->state () == OUTPUT_STATE_PAUSED); - if (trk && playlist >= 0) { - playtrack = str_get_idx_of (trk); - playpos = streamer_get_playpos (); - pl_item_unref (trk); - } - - conf_set_float ("resume.position", playpos); - conf_set_int ("resume.track", playtrack); - conf_set_int ("resume.playlist", playlist); - conf_set_int ("resume.paused", paused); -} - void restore_resume_state (void) { DB_output_t *output = plug_get_output (); @@ -924,8 +926,6 @@ main (int argc, char *argv[]) { server_tid = 0; } - save_resume_state (); - // save config pl_save_all (); conf_save (); -- cgit v1.2.3