summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder')
-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 a93e20ad0e..a77fea770e 100644
--- a/apps/recorder/peakmeter.c
+++ b/apps/recorder/peakmeter.c
@@ -35,6 +35,11 @@
35 35
36#if CONFIG_CODEC == SWCODEC 36#if CONFIG_CODEC == SWCODEC
37#include "pcm_playback.h" 37#include "pcm_playback.h"
38
39#ifdef HAVE_RECORDING
40#include "pcm_record.h"
41#endif
42static bool pm_playback = true; /* selects between playback and recording peaks */
38#endif 43#endif
39 44
40#if !defined(SIMULATOR) && CONFIG_CODEC != SWCODEC 45#if !defined(SIMULATOR) && CONFIG_CODEC != SWCODEC
@@ -491,8 +496,7 @@ void peak_meter_playback(bool playback)
491#ifdef SIMULATOR 496#ifdef SIMULATOR
492 (void)playback; 497 (void)playback;
493#elif CONFIG_CODEC == SWCODEC 498#elif CONFIG_CODEC == SWCODEC
494/* FIX: not for the sw-based ones yes */ 499 pm_playback = playback;
495 (void)playback;
496#else 500#else
497 if (playback) { 501 if (playback) {
498 pm_src_left = MAS_REG_DQPEAK_L; 502 pm_src_left = MAS_REG_DQPEAK_L;
@@ -531,7 +535,15 @@ void peak_meter_peek(void)
531 pm_cur_left = left = 8000; 535 pm_cur_left = left = 8000;
532 pm_cur_right = right = 9000; 536 pm_cur_right = right = 9000;
533#elif CONFIG_CODEC == SWCODEC 537#elif CONFIG_CODEC == SWCODEC
534 pcm_calculate_peaks(&pm_cur_left, &pm_cur_right); 538
539 if (pm_playback)
540 pcm_calculate_peaks(&pm_cur_left, &pm_cur_right);
541#ifdef HAVE_RECORDING
542 if (!pm_playback)
543 {
544 pcm_rec_get_peaks(&pm_cur_left, &pm_cur_right);
545 }
546#endif
535 left = pm_cur_left; 547 left = pm_cur_left;
536 right = pm_cur_right; 548 right = pm_cur_right;
537#else 549#else
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 63cd513c78..c7da2bbb9f 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -328,15 +328,17 @@ bool recording_screen(void)
328 audio_init_recording(); 328 audio_init_recording();
329 329
330 sound_set_volume(global_settings.volume); 330 sound_set_volume(global_settings.volume);
331
332 /* Yes, we use the D/A for monitoring */
333 peak_meter_playback(true);
334
335 peak_meter_enabled = true;
336 331
337#if CONFIG_CODEC == SWCODEC 332#if CONFIG_CODEC == SWCODEC
338 audio_stop(); 333 audio_stop();
334 /* Set peak meter to recording mode */
335 peak_meter_playback(false);
336 cpu_boost(true);
337#else
338 /* Yes, we use the D/A for monitoring */
339 peak_meter_playback(true);
339#endif 340#endif
341 peak_meter_enabled = true;
340 342
341 if (global_settings.rec_prerecord_time) 343 if (global_settings.rec_prerecord_time)
342 talk_buffer_steal(); /* will use the mp3 buffer */ 344 talk_buffer_steal(); /* will use the mp3 buffer */
@@ -440,7 +442,9 @@ bool recording_screen(void)
440 else 442 else
441 { 443 {
442 peak_meter_playback(true); 444 peak_meter_playback(true);
445#if CONFIG_CODEC != SWCODEC
443 peak_meter_enabled = false; 446 peak_meter_enabled = false;
447#endif
444 done = true; 448 done = true;
445 } 449 }
446 update_countdown = 1; /* Update immediately */ 450 update_countdown = 1; /* Update immediately */
@@ -875,6 +879,7 @@ bool recording_screen(void)
875#if CONFIG_CODEC == SWCODEC 879#if CONFIG_CODEC == SWCODEC
876 audio_stop_recording(); 880 audio_stop_recording();
877 audio_close_recording(); 881 audio_close_recording();
882 cpu_boost(false);
878#else 883#else
879 audio_init_playback(); 884 audio_init_playback();
880#endif 885#endif