Only update scroll position on successful status update.

Set scroll_index to 0 when not playing or paused.
This commit is contained in:
Matt Low 2019-10-16 22:29:05 +04:00
parent f07381319d
commit 1c5fb8b22d

View File

@ -88,10 +88,11 @@ print_status(struct mpd_connection *conn, struct worker_meta *meta)
play_icon = ""; play_icon = "";
break; break;
default: default:
meta->scroll_index = 0;
printf("\n"); printf("\n");
mpd_status_free(status); mpd_status_free(status);
fflush(stdout); fflush(stdout);
return 0; return 1;
} }
const bool repeat = mpd_status_get_repeat(status); const bool repeat = mpd_status_get_repeat(status);
@ -161,7 +162,6 @@ print_status(struct mpd_connection *conn, struct worker_meta *meta)
&meta->scroll_index, meta->scroll_length); &meta->scroll_index, meta->scroll_length);
} else { } else {
// Else we'll just print it out normally and reset the scroll index // Else we'll just print it out normally and reset the scroll index
meta->scroll_index = 0;
sprintf(label, "%s - %s", artist, title); sprintf(label, "%s - %s", artist, title);
} }
@ -185,9 +185,10 @@ status_loop(void* worker_meta)
handle_error(conn, true); handle_error(conn, true);
long long start = current_timestamp(); long long start = current_timestamp();
print_status(conn, meta);
meta->scroll_index++; if (print_status(conn, meta) == 0) {
meta->scroll_index++;
}
usleep((meta->update_interval - (current_timestamp() - start)) * 1000); usleep((meta->update_interval - (current_timestamp() - start)) * 1000);
} }