From ed8da1d46158299818acbce0fb7ad0adc2032284 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Fri, 28 Jun 2002 12:40:32 +0000 Subject: Added decimal handling git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1246 a1c6a512-1295-4272-9138-f99709370657 --- apps/sound_menu.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/apps/sound_menu.c b/apps/sound_menu.c index 50ba26582d..cbfc7a714e 100644 --- a/apps/sound_menu.c +++ b/apps/sound_menu.c @@ -25,6 +25,13 @@ #include "mpeg.h" #include "settings.h" +static char *fmt[] = +{ + "", /* no decimals */ + "%d.%d %s ", /* 1 decimal */ + "%d.%02d %s " /* 2 decimals */ +}; + void set_sound(char* string, int* variable, int setting) @@ -32,10 +39,14 @@ void set_sound(char* string, bool done = false; int min, max; int val; + int numdec; + int integer; + int dec; char* unit; char str[32]; unit = mpeg_sound_unit(setting); + numdec = mpeg_sound_numdecimals(setting); min = mpeg_sound_min(setting); max = mpeg_sound_max(setting); @@ -44,7 +55,16 @@ void set_sound(char* string, while (!done) { val = mpeg_val2phys(setting, *variable); - snprintf(str,sizeof str,"%d %s ", val, unit); + if(numdec) + { + integer = val / (10 * numdec); + dec = val % (10 * numdec); + snprintf(str,sizeof str, fmt[numdec], integer, dec, unit); + } + else + { + snprintf(str,sizeof str,"%d %s ", val, unit); + } lcd_puts(0,1,str); lcd_update(); -- cgit v1.2.3