1
0
Fork 0
forked from len0rd/rockbox

Instantaneous start of recording

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2865 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2002-11-20 11:47:32 +00:00
parent 4dd6654bb2
commit 5e15aeedfc

View file

@ -1598,13 +1598,13 @@ static void mpeg_thread(void)
{ {
case MPEG_RECORD: case MPEG_RECORD:
DEBUGF("Recording...\n"); DEBUGF("Recording...\n");
reset_mp3_buffer();
start_recording();
demand_irq_enable(true);
mpeg_file = open((char *)ev.data, mpeg_file = open((char *)ev.data,
O_WRONLY | O_TRUNC | O_CREAT); O_WRONLY | O_TRUNC | O_CREAT);
if(mpeg_file < 0) if(mpeg_file < 0)
panicf("recfile: %d", mpeg_file); panicf("recfile: %d", mpeg_file);
reset_mp3_buffer();
start_recording();
demand_irq_enable(true);
break; break;
case MPEG_STOP: case MPEG_STOP:
@ -1648,7 +1648,9 @@ static void mpeg_thread(void)
{ {
amount_to_save += mp3buflen; 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, /* Save data only if the buffer is getting full,
or if we should stop recording */ or if we should stop recording */
if(amount_to_save) if(amount_to_save)
@ -1656,12 +1658,16 @@ static void mpeg_thread(void)
if(mp3buflen - amount_to_save < MPEG_LOW_WATER || if(mp3buflen - amount_to_save < MPEG_LOW_WATER ||
stop_pending) stop_pending)
{ {
int rc;
/* Only save up to the end of the buffer */ /* Only save up to the end of the buffer */
writelen = MIN(amount_to_save, writelen = MIN(amount_to_save,
mp3buflen - mp3buf_read); mp3buflen - mp3buf_read);
write(mpeg_file, mp3buf + mp3buf_read, DEBUGF("wrl: %x\n", writelen);
writelen); rc = write(mpeg_file, mp3buf + mp3buf_read,
writelen);
DEBUGF("rc: %x\n", rc);
mp3buf_read += amount_to_save; mp3buf_read += amount_to_save;
if(mp3buf_read >= mp3buflen) if(mp3buf_read >= mp3buflen)