diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2005-06-04 09:48:03 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2005-06-04 09:48:03 +0000 |
| commit | 9d14b73989b7703920c5f9542e46c07a90ed3e6a (patch) | |
| tree | 62154c3a2c082c73f39d4537b73267cd8f4b8735 /apps | |
| parent | 509117db9043cbbac348a652c297b850238ee6d9 (diff) | |
| download | rockbox-9d14b73989b7703920c5f9542e46c07a90ed3e6a.zip rockbox-9d14b73989b7703920c5f9542e46c07a90ed3e6a.tar.gz rockbox-9d14b73989b7703920c5f9542e46c07a90ed3e6a.tar.bz2 rockbox-9d14b73989b7703920c5f9542e46c07a90ed3e6a.tar.xz | |
Bugfix: The peakmeter drew too much cpu power when recording, occasionally causing the recording buffer to wrap before the first save finished (when fsinfo didn't contain a next-free-cluster hint so that an exhaustive search was necessary).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6558 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/recorder/peakmeter.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c index d24ba56..3ace818 100644 --- a/apps/recorder/peakmeter.c +++ b/apps/recorder/peakmeter.c @@ -1143,19 +1143,17 @@ int peak_meter_draw_get_btn(int x, int y, int width, int height) long next_refresh = current_tick; long next_big_refresh = current_tick + HZ / 10; button = BUTTON_NONE; + while (!TIME_AFTER(current_tick, next_big_refresh)) { button = button_get(false); if (button != BUTTON_NONE) { break; } + sleep(MAX(next_refresh - current_tick, 0) - 1); + next_refresh = current_tick + HZ / peak_meter_fps; peak_meter_peek(); - yield(); - - if (TIME_AFTER(current_tick, next_refresh)) { - peak_meter_draw(x, y, width, height); - lcd_update_rect(x, y, width, height); - next_refresh = current_tick + HZ / peak_meter_fps; - } + peak_meter_draw(x, y, width, height); + lcd_update_rect(x, y, width, height); } return button; } |