diff options
| author | Lars-Dominik Braun <lars@6xq.net> | 2017-09-25 19:26:37 +0200 | 
|---|---|---|
| committer | Lars-Dominik Braun <lars@6xq.net> | 2017-09-30 16:32:16 +0200 | 
| commit | d9cdc86e4b84be863099f8cadfc54a176aaf5c90 (patch) | |
| tree | 2f74810447c254d557900b33119d2f5f10ab29ef /src | |
| parent | 5b6a63dc233948f9e2434835d93ec379adf4c7a9 (diff) | |
| download | pianobar-d9cdc86e4b84be863099f8cadfc54a176aaf5c90.tar.gz pianobar-d9cdc86e4b84be863099f8cadfc54a176aaf5c90.tar.bz2 pianobar-d9cdc86e4b84be863099f8cadfc54a176aaf5c90.zip | |
Add (optional) song duration to song list format string
Closes #636.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui.c | 15 | 
1 files changed, 11 insertions, 4 deletions
| @@ -743,20 +743,27 @@ void BarUiPrintSong (const BarSettings_t *settings,  size_t BarUiListSongs (const BarSettings_t *settings,  		const PianoSong_t *song, const char *filter) {  	size_t i = 0; -	char digits[8];  	PianoListForeachP (song) {  		if (filter == NULL ||  				(filter != NULL && (BarStrCaseStr (song->artist, filter) != NULL ||  				BarStrCaseStr (song->title, filter) != NULL))) { -			char outstr[512]; +			char outstr[512], digits[8], duration[8] = "??:??";  			const char *vals[] = {digits, song->artist, song->title,  					(song->rating == PIANO_RATE_LOVE) ? settings->loveIcon : -					((song->rating == PIANO_RATE_BAN) ? settings->banIcon : "")}; +					((song->rating == PIANO_RATE_BAN) ? settings->banIcon : ""), +					duration}; +			/* pre-format a few strings */  			snprintf (digits, sizeof (digits) / sizeof (*digits), "%2zu", i); +			const unsigned int length = song->length; +			if (length > 0) { +				snprintf (duration, sizeof (duration), "%02u:%02u", +						length / 60, length % 60); +			} +  			BarUiCustomFormat (outstr, sizeof (outstr), settings->listSongFormat, -					"iatr", vals); +					"iatrd", vals);  			BarUiAppendNewline (outstr, sizeof (outstr));  			BarUiMsg (settings, MSG_LIST, "%s", outstr);  		} | 
