diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2005-06-04 12:14:46 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2005-06-04 12:14:46 +0000 |
| commit | 031e4b873856e1b018312c678c66744da3300254 (patch) | |
| tree | f0e26a406034cd6fe674584cbcd5f61d63a8ef72 | |
| parent | b34b5acb09e995d798105a2fba3645550bfe2501 (diff) | |
| download | rockbox-031e4b873856e1b018312c678c66744da3300254.zip rockbox-031e4b873856e1b018312c678c66744da3300254.tar.gz rockbox-031e4b873856e1b018312c678c66744da3300254.tar.bz2 rockbox-031e4b873856e1b018312c678c66744da3300254.tar.xz | |
New recording feature: Don't split every 24 hours if timesplit is off, but only split when the filesize approaches the 2GB limit.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6562 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/recorder/recording.c | 10 | ||||
| -rw-r--r-- | apps/settings.c | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index d443f62..111995c 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c @@ -92,6 +92,8 @@ bool f3_rec_screen(void); #define SOURCE_LINE 1 #define SOURCE_SPDIF 2 +#define MAX_FILE_SIZE 0x7FF00000 /* 2 GB - 1 MB */ + const char* const freq_str[6] = { "44.1kHz", @@ -670,6 +672,7 @@ bool recording_screen(void) if(update_countdown == 0 || seconds > last_seconds) { unsigned int dseconds, dhours, dminutes; + unsigned long num_recorded_bytes; int pos = 0; update_countdown = 5; @@ -685,6 +688,7 @@ bool recording_screen(void) lcd_puts(0, 0, buf); dseconds = rec_timesplit_seconds(); + num_recorded_bytes = mpeg_num_recorded_bytes(); if(audio_stat & AUDIO_STATUS_PRERECORD) { @@ -708,7 +712,7 @@ bool recording_screen(void) else { output_dyn_value(buf2, sizeof buf2, - mpeg_num_recorded_bytes(), + num_recorded_bytes, byte_units, true); snprintf(buf, 32, "%s %s", str(LANG_RECORDING_SIZE), buf2); @@ -719,7 +723,9 @@ bool recording_screen(void) /* We will do file splitting regardless, since the OFF setting really means 24 hours. This is to make sure that the recorded files don't get too big. */ - if (audio_stat && (seconds >= dseconds)) + if (audio_stat && + ((global_settings.rec_timesplit && (seconds >= dseconds)) + || (num_recorded_bytes >= MAX_FILE_SIZE))) { mpeg_new_file(rec_create_filename(path_buffer)); update_countdown = 1; diff --git a/apps/settings.c b/apps/settings.c index 4f09f93..03b2dc5 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -1532,7 +1532,7 @@ bool set_option(const char* string, void* variable, enum optiontype type, /* This array holds the record timer interval lengths, in seconds */ static const unsigned long rec_timer_seconds[] = { - 24L*60*60, /* OFF really means 24 hours, to avoid >2Gbyte files */ + 0, /* 0 means OFF */ 5*60, /* 00:05 */ 10*60, /* 00:10 */ 15*60, /* 00:15 */ |