summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-03-09 19:36:53 +0000
committerJens Arnold <amiconn@rockbox.org>2005-03-09 19:36:53 +0000
commit58aa4c98bb61020beffde5759c7bd65e190d160c (patch)
tree3e6ebb193f3a1d3e4f32432ef25fa78511f9c653
parentbb9dfa0b02f00f94168640f18491dd65f4309782 (diff)
downloadrockbox-58aa4c98bb61020beffde5759c7bd65e190d160c.tar.gz
rockbox-58aa4c98bb61020beffde5759c7bd65e190d160c.zip
Fixes for the codec test environment: (1) Long aligned codec_malloc(). (2) Update all stats at most once per second.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6176 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/lib/xxx2wav.c50
1 files changed, 28 insertions, 22 deletions
diff --git a/apps/plugins/lib/xxx2wav.c b/apps/plugins/lib/xxx2wav.c
index 3f9fab062b..4d0c139f1b 100644
--- a/apps/plugins/lib/xxx2wav.c
+++ b/apps/plugins/lib/xxx2wav.c
@@ -36,13 +36,18 @@ unsigned char* filebuf; // The rest of the MP3 buffer
36void* codec_malloc(size_t size) { 36void* codec_malloc(size_t size) {
37 void* x; 37 void* x;
38 char s[32]; 38 char s[32];
39 static long last_tick = 0;
39 40
40 x=&mallocbuf[mem_ptr]; 41 x=&mallocbuf[mem_ptr];
41 mem_ptr+=size+(size%4); // Keep memory 32-bit aligned (if it was already?) 42 mem_ptr+=(size+3)&~3; // Keep memory 32-bit aligned (if it was already?)
42 43
43 local_rb->snprintf(s,30,"Memory used: %d",mem_ptr); 44 if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) {
44 local_rb->lcd_putsxy(0,80,s); 45 local_rb->snprintf(s,30,"Memory used: %d",mem_ptr);
45 local_rb->lcd_update(); 46 local_rb->lcd_putsxy(0,80,s);
47
48 last_tick = *(local_rb->current_tick);
49 local_rb->lcd_update();
50 }
46 return(x); 51 return(x);
47} 52}
48 53
@@ -111,32 +116,32 @@ void display_status(file_info_struct* file_info) {
111 unsigned long xspeed; 116 unsigned long xspeed;
112 static long last_tick = 0; 117 static long last_tick = 0;
113 118
114 local_rb->snprintf(s,32,"Bytes read: %d",file_info->curpos); 119 if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) {
115 local_rb->lcd_putsxy(0,0,s); 120 local_rb->snprintf(s,32,"Bytes read: %d",file_info->curpos);
116 local_rb->snprintf(s,32,"Samples Decoded: %d",file_info->current_sample); 121 local_rb->lcd_putsxy(0,0,s);
117 local_rb->lcd_putsxy(0,20,s); 122 local_rb->snprintf(s,32,"Samples Decoded: %d",file_info->current_sample);
118 local_rb->snprintf(s,32,"Frames Decoded: %d",file_info->frames_decoded); 123 local_rb->lcd_putsxy(0,20,s);
119 local_rb->lcd_putsxy(0,40,s); 124 local_rb->snprintf(s,32,"Frames Decoded: %d",file_info->frames_decoded);
125 local_rb->lcd_putsxy(0,40,s);
120 126
121 ticks_taken=*(local_rb->current_tick)-file_info->start_tick; 127 ticks_taken=*(local_rb->current_tick)-file_info->start_tick;
122 128
123 /* e.g.: 129 /* e.g.:
124 ticks_taken=500 130 ticks_taken=500
125 sam_fmt.rate=44,100 131 sam_fmt.rate=44,100
126 samples_decoded=172,400 132 samples_decoded=172,400
127 (samples_decoded/sam_fmt.rate)*100=400 (time it should have taken) 133 (samples_decoded/sam_fmt.rate)*100=400 (time it should have taken)
128 % Speed=(400/500)*100=80% 134 % Speed=(400/500)*100=80%
129 */ 135 */
130 136
131 if (ticks_taken==0) { ticks_taken=1; } // Avoid fp exception. 137 if (ticks_taken==0) { ticks_taken=1; } // Avoid fp exception.
132 138
133 if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) {
134 last_tick = *(local_rb->current_tick);
135 speed=(100*file_info->current_sample)/file_info->samplerate; 139 speed=(100*file_info->current_sample)/file_info->samplerate;
136 xspeed=(speed*10000)/ticks_taken; 140 xspeed=(speed*10000)/ticks_taken;
137 local_rb->snprintf(s,32,"Speed %ld.%02ld %% Secs: %d",(xspeed/100),(xspeed%100),ticks_taken/100); 141 local_rb->snprintf(s,32,"Speed %ld.%02ld %% Secs: %d",(xspeed/100),(xspeed%100),ticks_taken/100);
138 local_rb->lcd_putsxy(0,60,s); 142 local_rb->lcd_putsxy(0,60,s);
139 143
144 last_tick = *(local_rb->current_tick);
140 local_rb->lcd_update(); 145 local_rb->lcd_update();
141 } 146 }
142} 147}
@@ -204,6 +209,7 @@ int local_init(char* infilename, char* outfilename, file_info_struct* file_info,
204 i+=n; bytesleft-=n; 209 i+=n; bytesleft-=n;
205 } 210 }
206 local_rb->close(file_info->infile); 211 local_rb->close(file_info->infile);
212 local_rb->lcd_clear_display();
207 return(0); 213 return(0);
208} 214}
209 215