From f97f73d03f1ea7b6db6a3ef7d3756680f566f191 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 29 Aug 2011 13:02:01 +0200 Subject: Customizeable list format (songs) Fixes #151 --- src/ui.c | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'src/ui.c') diff --git a/src/ui.c b/src/ui.c index 68f0cd9..84117bb 100644 --- a/src/ui.c +++ b/src/ui.c @@ -723,6 +723,20 @@ inline void BarUiPrintSong (const BarSettings_t *settings, BarUiMsg (settings, MSG_PLAYING, outstr); } +/* Incremets two digit ASCII counter + */ +static void BarUiIncDigits (char digits[3]) { + ++digits[1]; + if (digits[1] == ':') { + digits[1] = '0'; + digits[0] |= 0x30; + ++digits[0]; + if (digits[0] == ':') { + digits[0] = ' '; + } + } +} + /* Print list of songs * @param pianobar settings * @param linked list of songs @@ -732,18 +746,25 @@ inline 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[3] = " 0"; while (song != NULL) { if (filter == NULL || (filter != NULL && (BarStrCaseStr (song->artist, filter) != NULL || BarStrCaseStr (song->title, filter) != NULL))) { - BarUiMsg (settings, MSG_LIST, "%2lu) %s - %s %s%s\n", i, song->artist, - song->title, - (song->rating == PIANO_RATE_LOVE) ? settings->loveIcon : "", - (song->rating == PIANO_RATE_BAN) ? settings->banIcon : ""); + char outstr[512]; + const char *vals[] = {digits, song->artist, song->title, + (song->rating == PIANO_RATE_LOVE) ? settings->loveIcon : + ((song->rating == PIANO_RATE_BAN) ? settings->banIcon : "")}; + + BarUiCustomFormat (outstr, sizeof (outstr), settings->listSongFormat, + "iatr", vals); + BarUiAppendNewline (outstr, sizeof (outstr)); + BarUiMsg (settings, MSG_LIST, outstr); } - song = song->next; i++; + BarUiIncDigits (digits); + song = song->next; } return i; -- cgit v1.2.3