summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorAndy <andy@rockbox.org>2005-12-02 01:04:03 +0000
committerAndy <andy@rockbox.org>2005-12-02 01:04:03 +0000
commit1e4d1f8de7a523d34c064f7f4a6e7f001d55bb7f (patch)
tree3488e91c68d693513bf42a4e5ffb5b75a4a7b8d9 /apps
parent9758911be0c63de3dc5e42e9720f933effe5ad87 (diff)
downloadrockbox-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.c18
-rw-r--r--apps/recorder/recording.c15
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