aboutsummaryrefslogtreecommitdiffstats
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c48
1 files changed, 26 insertions, 22 deletions
diff --git a/src/screen.c b/src/screen.c
index 13e1975c1..93d305d78 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -356,26 +356,30 @@ paint_status_window(mpdclient_t *c)
if( IS_PLAYING(status->state) || IS_PAUSED(status->state) )
{
if( status->totalTime > 0 )
- {
-
- /*checks the conf to see whether to display elapsed or remaining time */
- if(!strcmp(options.timedisplay_type,"elapsed"))
- {
- timestr= " [%i:%02i/%i:%02i]";
- elapsedTime = c->status->elapsedTime;
- }
- else if(!strcmp(options.timedisplay_type,"remaining"))
- {
- timestr= " [-%i:%02i/%i:%02i]";
- elapsedTime = (c->status->totalTime - c->status->elapsedTime);
- }
- if( c->song && seek_id == c->song->id )
- elapsedTime = seek_target_time;
- /*write out the time*/
- g_snprintf(screen->buf, screen->buf_size,
- timestr,
- elapsedTime/60, elapsedTime%60,
- status->totalTime/60, status->totalTime%60 );
+ {
+ /*checks the conf to see whether to display elapsed or remaining time */
+ if(!strcmp(options.timedisplay_type,"elapsed"))
+ elapsedTime = c->status->elapsedTime;
+ else if(!strcmp(options.timedisplay_type,"remaining"))
+ elapsedTime = (c->status->totalTime - c->status->elapsedTime);
+
+ if( c->song && seek_id == c->song->id )
+ elapsedTime = seek_target_time;
+ /*write out the time, using hours if time over 60 minutes*/
+ if (c->status->totalTime > 3600)
+ {
+ g_snprintf(screen->buf, screen->buf_size,
+ " [%i:%02i:%02i/%i:%02i:%02i]",
+ elapsedTime/3600, (elapsedTime%3600)/60, elapsedTime%60,
+ status->totalTime/3600, (status->totalTime%3600)/60, status->totalTime%60);
+ }
+ else
+ {
+ g_snprintf(screen->buf, screen->buf_size,
+ " [%i:%02i/%i:%02i]",
+ elapsedTime/60, elapsedTime%60,
+ status->totalTime/60, status->totalTime%60 );
+ }
}
else
{
@@ -404,10 +408,10 @@ paint_status_window(mpdclient_t *c)
colors_use(w, COLOR_STATUS);
/* scroll if the song name is to long */
- if( my_strlen(songname) > width )
+ if( options.scroll && my_strlen(songname) > width )
{
static scroll_state_t st = { 0, 0 };
- char *tmp = strscroll(songname, " *** ", width, &st);
+ char *tmp = strscroll(songname, options.scroll_sep, width, &st);
g_strlcpy(songname, tmp, MAX_SONGNAME_LENGTH);
g_free(tmp);