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.tar.gz
rockbox-ed8da1d46158299818acbce0fb7ad0adc2032284.zip
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 50ba26582d..cbfc7a714e 100644
--- a/apps/sound_menu.c
+++ b/apps/sound_menu.c
@@ -25,6 +25,13 @@
25#include "mpeg.h" 25#include "mpeg.h"
26#include "settings.h" 26#include "settings.h"
27 27
28static char *fmt[] =
29{
30 "", /* no decimals */
31 "%d.%d %s ", /* 1 decimal */
32 "%d.%02d %s " /* 2 decimals */
33};
34
28void set_sound(char* string, 35void set_sound(char* string,
29 int* variable, 36 int* variable,
30 int setting) 37 int setting)
@@ -32,10 +39,14 @@ void set_sound(char* string,
32 bool done = false; 39 bool done = false;
33 int min, max; 40 int min, max;
34 int val; 41 int val;
42 int numdec;
43 int integer;
44 int dec;
35 char* unit; 45 char* unit;
36 char str[32]; 46 char str[32];
37 47
38 unit = mpeg_sound_unit(setting); 48 unit = mpeg_sound_unit(setting);
49 numdec = mpeg_sound_numdecimals(setting);
39 min = mpeg_sound_min(setting); 50 min = mpeg_sound_min(setting);
40 max = mpeg_sound_max(setting); 51 max = mpeg_sound_max(setting);
41 52
@@ -44,7 +55,16 @@ void set_sound(char* string,
44 55
45 while (!done) { 56 while (!done) {
46 val = mpeg_val2phys(setting, *variable); 57 val = mpeg_val2phys(setting, *variable);
47 snprintf(str,sizeof str,"%d %s ", val, unit); 58 if(numdec)
59 {
60 integer = val / (10 * numdec);
61 dec = val % (10 * numdec);
62 snprintf(str,sizeof str, fmt[numdec], integer, dec, unit);
63 }
64 else
65 {
66 snprintf(str,sizeof str,"%d %s ", val, unit);
67 }
48 lcd_puts(0,1,str); 68 lcd_puts(0,1,str);
49 lcd_update(); 69 lcd_update();
50 70