diff options
| author | Andy <andy@rockbox.org> | 2005-12-02 01:04:03 +0000 |
|---|---|---|
| committer | Andy <andy@rockbox.org> | 2005-12-02 01:04:03 +0000 |
| commit | 1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f (patch) | |
| tree | 3488e91c68d693513bf42a4e5ffb5b75a4a7b8d9 /apps | |
| parent | 9758911be0c63de3dc5e42e9720f933effe5ad87 (diff) | |
| download | rockbox-1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f.zip rockbox-1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f.tar.gz rockbox-1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f.tar.bz2 rockbox-1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f.tar.xz | |
iRiver recording changes:
- Added Peakmeter in recording screen
- Fix for stop bug
- Fix for playback peakmeter not working after recording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8120 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/recorder/peakmeter.c | 18 | ||||
| -rw-r--r-- | apps/recorder/recording.c | 15 |
2 files changed, 25 insertions, 8 deletions
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c index a93e20a..a77fea7 100644 --- a/apps/recorder/peakmeter.c +++ b/apps/recorder/peakmeter.c @@ -35,6 +35,11 @@ #if CONFIG_CODEC == SWCODEC #include "pcm_playback.h" + +#ifdef HAVE_RECORDING +#include "pcm_record.h" +#endif +static bool pm_playback = true; /* selects between playback and recording peaks */ #endif #if !defined(SIMULATOR) && CONFIG_CODEC != SWCODEC @@ -491,8 +496,7 @@ void peak_meter_playback(bool playback) #ifdef SIMULATOR (void)playback; #elif CONFIG_CODEC == SWCODEC -/* FIX: not for the sw-based ones yes */ - (void)playback; + pm_playback = playback; #else if (playback) { pm_src_left = MAS_REG_DQPEAK_L; @@ -531,7 +535,15 @@ void peak_meter_peek(void) pm_cur_left = left = 8000; pm_cur_right = right = 9000; #elif CONFIG_CODEC == SWCODEC - pcm_calculate_peaks(&pm_cur_left, &pm_cur_right); + + if (pm_playback) + pcm_calculate_peaks(&pm_cur_left, &pm_cur_right); +#ifdef HAVE_RECORDING + if (!pm_playback) + { + pcm_rec_get_peaks(&pm_cur_left, &pm_cur_right); + } +#endif left = pm_cur_left; right = pm_cur_right; #else diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 63cd513..c7da2bb 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -328,15 +328,17 @@ bool recording_screen(void) audio_init_recording(); sound_set_volume(global_settings.volume); - - /* Yes, we use the D/A for monitoring */ - peak_meter_playback(true); - - peak_meter_enabled = true; #if CONFIG_CODEC == SWCODEC audio_stop(); + /* Set peak meter to recording mode */ + peak_meter_playback(false); + cpu_boost(true); +#else + /* Yes, we use the D/A for monitoring */ + peak_meter_playback(true); #endif + peak_meter_enabled = true; if (global_settings.rec_prerecord_time) talk_buffer_steal(); /* will use the mp3 buffer */ @@ -440,7 +442,9 @@ bool recording_screen(void) else { peak_meter_playback(true); +#if CONFIG_CODEC != SWCODEC peak_meter_enabled = false; +#endif done = true; } update_countdown = 1; /* Update immediately */ @@ -875,6 +879,7 @@ bool recording_screen(void) #if CONFIG_CODEC == SWCODEC audio_stop_recording(); audio_close_recording(); + cpu_boost(false); #else audio_init_playback(); #endif |