diff options
author | Peter D'Hoye <peter.dhoye@gmail.com> | 2006-06-30 21:24:20 +0000 |
---|---|---|
committer | Peter D'Hoye <peter.dhoye@gmail.com> | 2006-06-30 21:24:20 +0000 |
commit | e8558e228a2fdef5d8c262e04db677e88704254f (patch) | |
tree | 0516bf786b6cdfcc4314694d2bc54ac2623ae0e4 | |
parent | f5c319b305da5baf069c98bf76a455d564fb18c8 (diff) | |
download | rockbox-e8558e228a2fdef5d8c262e04db677e88704254f.tar.gz rockbox-e8558e228a2fdef5d8c262e04db677e88704254f.zip |
For iriver recording: do not boost while recording unless source is spdif. When saving to disk, boost if needed. Decreased max file size a bit for safety. Increases runtime while recording analog sources.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10159 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/recorder/recording.c | 12 | ||||
-rw-r--r-- | firmware/pcm_record.c | 11 |
2 files changed, 22 insertions, 1 deletions
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index cdbc170b03..da0a4a9e4a 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c | |||
@@ -137,7 +137,7 @@ bool f3_rec_screen(void); | |||
137 | #define REC_FILE_ENDING ".mp3" | 137 | #define REC_FILE_ENDING ".mp3" |
138 | #endif | 138 | #endif |
139 | 139 | ||
140 | #define MAX_FILE_SIZE 0x7FF00000 /* 2 GB - 1 MB */ | 140 | #define MAX_FILE_SIZE 0x7F800000 /* 2 GB - 4 MB */ |
141 | 141 | ||
142 | const char* const freq_str[6] = | 142 | const char* const freq_str[6] = |
143 | { | 143 | { |
@@ -359,7 +359,12 @@ bool recording_screen(void) | |||
359 | audio_stop(); | 359 | audio_stop(); |
360 | /* Set peak meter to recording mode */ | 360 | /* Set peak meter to recording mode */ |
361 | peak_meter_playback(false); | 361 | peak_meter_playback(false); |
362 | |||
363 | #ifdef HAVE_SPDIF_IN | ||
364 | if (global_settings.rec_source == SOURCE_SPDIF) | ||
362 | cpu_boost(true); | 365 | cpu_boost(true); |
366 | #endif | ||
367 | |||
363 | #else | 368 | #else |
364 | /* Yes, we use the D/A for monitoring */ | 369 | /* Yes, we use the D/A for monitoring */ |
365 | peak_meter_playback(true); | 370 | peak_meter_playback(true); |
@@ -1007,7 +1012,12 @@ bool recording_screen(void) | |||
1007 | #if CONFIG_CODEC == SWCODEC | 1012 | #if CONFIG_CODEC == SWCODEC |
1008 | audio_stop_recording(); | 1013 | audio_stop_recording(); |
1009 | audio_close_recording(); | 1014 | audio_close_recording(); |
1015 | |||
1016 | #ifdef HAVE_SPDIF_IN | ||
1017 | if (global_settings.rec_source == SOURCE_SPDIF) | ||
1010 | cpu_boost(false); | 1018 | cpu_boost(false); |
1019 | #endif | ||
1020 | |||
1011 | #else | 1021 | #else |
1012 | audio_init_playback(); | 1022 | audio_init_playback(); |
1013 | #endif | 1023 | #endif |
diff --git a/firmware/pcm_record.c b/firmware/pcm_record.c index ea444a31e1..2d9c65a7e4 100644 --- a/firmware/pcm_record.c +++ b/firmware/pcm_record.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #include "pcm_playback.h" | 47 | #include "pcm_playback.h" |
48 | #include "pcm_record.h" | 48 | #include "pcm_record.h" |
49 | 49 | ||
50 | extern int boost_counter; /* used for boost check */ | ||
50 | 51 | ||
51 | /***************************************************************************/ | 52 | /***************************************************************************/ |
52 | 53 | ||
@@ -552,12 +553,19 @@ static void pcmrec_callback(bool flush) | |||
552 | 553 | ||
553 | if (num_free <= WRITE_THRESHOLD || flush) | 554 | if (num_free <= WRITE_THRESHOLD || flush) |
554 | { | 555 | { |
556 | bool must_boost = (boost_counter ? false : true); | ||
557 | |||
555 | logf("writing: %d (%d)", num_ready, flush); | 558 | logf("writing: %d (%d)", num_ready, flush); |
556 | 559 | ||
560 | if(must_boost) | ||
561 | cpu_boost(true); | ||
562 | |||
557 | for (i=0; i<num_ready; i++) | 563 | for (i=0; i<num_ready; i++) |
558 | { | 564 | { |
559 | if (write(wav_file, GET_CHUNK(read_index), CHUNK_SIZE) != CHUNK_SIZE) | 565 | if (write(wav_file, GET_CHUNK(read_index), CHUNK_SIZE) != CHUNK_SIZE) |
560 | { | 566 | { |
567 | if(must_boost) | ||
568 | cpu_boost(false); | ||
561 | logf("pcmrec: write err"); | 569 | logf("pcmrec: write err"); |
562 | pcmrec_dma_stop(); | 570 | pcmrec_dma_stop(); |
563 | return; | 571 | return; |
@@ -571,6 +579,9 @@ static void pcmrec_callback(bool flush) | |||
571 | yield(); | 579 | yield(); |
572 | } | 580 | } |
573 | 581 | ||
582 | if(must_boost) | ||
583 | cpu_boost(false); | ||
584 | |||
574 | /* sync file */ | 585 | /* sync file */ |
575 | fsync(wav_file); | 586 | fsync(wav_file); |
576 | 587 | ||