summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-11-20 11:47:32 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-11-20 11:47:32 +0000
commit5e15aeedfc0f228dd53ed3c109812a65de930f16 (patch)
treed1fb26cf6f4e2de102c3cbc67f91625039b26260
parent4dd6654bb244c259c3b188837817f3408e9208cc (diff)
downloadrockbox-5e15aeedfc0f228dd53ed3c109812a65de930f16.zip
rockbox-5e15aeedfc0f228dd53ed3c109812a65de930f16.tar.gz
rockbox-5e15aeedfc0f228dd53ed3c109812a65de930f16.tar.bz2
rockbox-5e15aeedfc0f228dd53ed3c109812a65de930f16.tar.xz
Instantaneous start of recording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2865 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/mpeg.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 727e81b..b834e5d 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -1598,13 +1598,13 @@ static void mpeg_thread(void)
{
case MPEG_RECORD:
DEBUGF("Recording...\n");
+ reset_mp3_buffer();
+ start_recording();
+ demand_irq_enable(true);
mpeg_file = open((char *)ev.data,
O_WRONLY | O_TRUNC | O_CREAT);
if(mpeg_file < 0)
panicf("recfile: %d", mpeg_file);
- reset_mp3_buffer();
- start_recording();
- demand_irq_enable(true);
break;
case MPEG_STOP:
@@ -1648,7 +1648,9 @@ static void mpeg_thread(void)
{
amount_to_save += mp3buflen;
}
-
+
+ DEBUGF("r: %x w: %x\n", mp3buf_read, mp3buf_write);
+ DEBUGF("ats: %x\n", amount_to_save);
/* Save data only if the buffer is getting full,
or if we should stop recording */
if(amount_to_save)
@@ -1656,12 +1658,16 @@ static void mpeg_thread(void)
if(mp3buflen - amount_to_save < MPEG_LOW_WATER ||
stop_pending)
{
+ int rc;
+
/* Only save up to the end of the buffer */
writelen = MIN(amount_to_save,
mp3buflen - mp3buf_read);
-
- write(mpeg_file, mp3buf + mp3buf_read,
- writelen);
+
+ DEBUGF("wrl: %x\n", writelen);
+ rc = write(mpeg_file, mp3buf + mp3buf_read,
+ writelen);
+ DEBUGF("rc: %x\n", rc);
mp3buf_read += amount_to_save;
if(mp3buf_read >= mp3buflen)