From dfa95c334b9cffff28059e0de39ae5305e315ee6 Mon Sep 17 00:00:00 2001 From: Jörg Hohensohn Date: Fri, 24 Dec 2004 08:42:45 +0000 Subject: different kind of recording beep: more faint, but not disturbing prerecording, can beep while we already record (no latency due to beep) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5511 a1c6a512-1295-4272-9138-f99709370657 --- apps/recorder/recording.c | 12 ++++++------ firmware/export/mpeg.h | 2 +- firmware/mpeg.c | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 71cd20d797..7ba59cb0ab 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -322,25 +322,25 @@ bool recording_screen(void) /* Only act if the mpeg is stopped */ if(!(mpeg_status() & MPEG_STATUS_RECORD)) { - if (global_settings.talk_menu) - { /* no voice possible here, but a beep */ - mpeg_beep(0,HZ/4); /* longer beep on start */ - } have_recorded = true; talk_buffer_steal(); /* we use the mp3 buffer */ mpeg_record(rec_create_filename(path_buffer)); update_countdown = 1; /* Update immediately */ last_seconds = 0; + if (global_settings.talk_menu) + { /* no voice possible here, but a beep */ + mpeg_beep(HZ/2); /* longer beep on start */ + } } else { if(mpeg_status() & MPEG_STATUS_PAUSE) { + mpeg_resume_recording(); if (global_settings.talk_menu) { /* no voice possible here, but a beep */ - mpeg_beep(0,HZ/8); /* short beep on resume */ + mpeg_beep(HZ/4); /* short beep on resume */ } - mpeg_resume_recording(); } else { diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h index d61789c26e..671f9389f0 100644 --- a/firmware/export/mpeg.h +++ b/firmware/export/mpeg.h @@ -99,7 +99,7 @@ unsigned int mpeg_error(void); void mpeg_error_clear(void); int mpeg_get_file_pos(void); unsigned long mpeg_get_last_header(void); -void mpeg_beep(int freq, int duration); +void mpeg_beep(int duration); /* in order to keep the recording here, I have to expose this */ void rec_tick(void); diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 26bfbc0dc3..becd3d54cb 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -2377,17 +2377,17 @@ void mpeg_set_recording_gain(int left, int right, bool use_mic) } /* try to make some kind of beep, also in recording mode */ -void mpeg_beep(int freq, int duration) +void mpeg_beep(int duration) { - (void)freq; /* not used yet */ long starttick = current_tick; do - { - mas_codec_writereg(0, 0); /* some little-understood sequence, */ - mas_codec_writereg(0, 1); /* there may be better ways */ + { /* toggle bit 0 of codec register 0, toggling the DAC off & on. + * While this is still audible even without an external signal, + * it doesn't affect the (pre-)recording. */ + mas_codec_writereg(0, shadow_codec_reg0 ^ 1); + mas_codec_writereg(0, shadow_codec_reg0); } while (current_tick - starttick < duration); - mas_codec_writereg(0, shadow_codec_reg0); /* restore it */ } void mpeg_new_file(const char *filename) -- cgit v1.2.3