summaryrefslogtreecommitdiff
path: root/apps/codecs
diff options
context:
space:
mode:
authorPeter D'Hoye <peter.dhoye@gmail.com>2007-12-13 23:36:22 +0000
committerPeter D'Hoye <peter.dhoye@gmail.com>2007-12-13 23:36:22 +0000
commiteb947cdde1a34588de767ea75762269253af487a (patch)
tree742ba8891394103004bf37666829c2ba128bc603 /apps/codecs
parent10d0344e296eeb9259e9b609bb9b656ba1d7e42a (diff)
downloadrockbox-eb947cdde1a34588de767ea75762269253af487a.zip
rockbox-eb947cdde1a34588de767ea75762269253af487a.tar.gz
rockbox-eb947cdde1a34588de767ea75762269253af487a.tar.bz2
rockbox-eb947cdde1a34588de767ea75762269253af487a.tar.xz
Another fix for file system issues when encountering disk full (like when recording)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15920 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs')
-rw-r--r--apps/codecs/mp3_enc.c3
-rw-r--r--apps/codecs/wav_enc.c8
-rw-r--r--apps/codecs/wavpack_enc.c3
3 files changed, 11 insertions, 3 deletions
diff --git a/apps/codecs/mp3_enc.c b/apps/codecs/mp3_enc.c
index 2dc9bcb..26cc1dd 100644
--- a/apps/codecs/mp3_enc.c
+++ b/apps/codecs/mp3_enc.c
@@ -2329,6 +2329,9 @@ static bool on_start_file(struct enc_file_event_data *data)
static bool on_end_file(struct enc_file_event_data *data)
{
+ if (data->rec_file < 0)
+ return false; /* file already closed, nothing more we can do */
+
/* always _try_ to write the file header, even on error */
if (ci->close(data->rec_file) != 0)
return false;
diff --git a/apps/codecs/wav_enc.c b/apps/codecs/wav_enc.c
index 25d2838..5932fd3 100644
--- a/apps/codecs/wav_enc.c
+++ b/apps/codecs/wav_enc.c
@@ -144,10 +144,12 @@ static bool on_end_file(struct enc_file_event_data *data)
struct riff_header hdr;
uint32_t data_size;
- /* always _try_ to write the file header, even on error */
+ if (data->rec_file < 0)
+ return false; /* file already closed, nothing more we can do */
- if (ci->lseek(data->rec_file, 0, SEEK_SET) != 0 ||
- ci->read(data->rec_file, &hdr, sizeof (hdr)) != sizeof (hdr))
+ /* always _try_ to write the file header, even on error */
+ if ((ci->lseek(data->rec_file, 0, SEEK_SET)) ||
+ (ci->read(data->rec_file, &hdr, sizeof (hdr)) != sizeof (hdr)))
{
return false;
}
diff --git a/apps/codecs/wavpack_enc.c b/apps/codecs/wavpack_enc.c
index 70261e7..670a518 100644
--- a/apps/codecs/wavpack_enc.c
+++ b/apps/codecs/wavpack_enc.c
@@ -257,6 +257,9 @@ static bool on_end_file(struct enc_file_event_data *data)
uint32_t data_size;
+ if (data->rec_file < 0)
+ return false; /* file already closed, nothing more we can do */
+
/* always _try_ to write the file header, even on error */
/* read template headers at start */