summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-06-28 12:40:32 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-06-28 12:40:32 +0000
commited8da1d46158299818acbce0fb7ad0adc2032284 (patch)
treecf67627df2c0247f5215914ce2eb9947d7adc958
parentfd42ceba7b2b56c764be2bcddc108f8fcd82571f (diff)
downloadrockbox-ed8da1d46158299818acbce0fb7ad0adc2032284.zip
rockbox-ed8da1d46158299818acbce0fb7ad0adc2032284.tar.gz
rockbox-ed8da1d46158299818acbce0fb7ad0adc2032284.tar.bz2
rockbox-ed8da1d46158299818acbce0fb7ad0adc2032284.tar.xz
Added decimal handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1246 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/sound_menu.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/apps/sound_menu.c b/apps/sound_menu.c
index 50ba265..cbfc7a7 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();