diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-04-05 11:33:58 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-04-05 11:33:58 +0000 |
commit | d34865a5307e7bf91d986036797423975ac828b4 (patch) | |
tree | 41dcc1775f6cdc1d655f1eddadaabdf90c7ac22f /firmware/mpeg.c | |
parent | 6cf9d51b3374cdc436c45f165a10f607832126ee (diff) | |
download | rockbox-d34865a5307e7bf91d986036797423975ac828b4.tar.gz rockbox-d34865a5307e7bf91d986036797423975ac828b4.zip |
mp3buf renamed to audiobuf
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6252 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/mpeg.c')
-rw-r--r-- | firmware/mpeg.c | 248 |
1 files changed, 124 insertions, 124 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 79265e4452..a7d5480706 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -313,10 +313,10 @@ static struct event_queue mpeg_queue; | |||
313 | static long mpeg_stack[(DEFAULT_STACK_SIZE + 0x1000)/sizeof(long)]; | 313 | static long mpeg_stack[(DEFAULT_STACK_SIZE + 0x1000)/sizeof(long)]; |
314 | static const char mpeg_thread_name[] = "mpeg"; | 314 | static const char mpeg_thread_name[] = "mpeg"; |
315 | 315 | ||
316 | static int mp3buflen; | 316 | static int audiobuflen; |
317 | static int mp3buf_write; | 317 | static int audiobuf_write; |
318 | static int mp3buf_swapwrite; | 318 | static int audiobuf_swapwrite; |
319 | static int mp3buf_read; | 319 | static int audiobuf_read; |
320 | 320 | ||
321 | static int last_dma_chunk_size; | 321 | static int last_dma_chunk_size; |
322 | 322 | ||
@@ -410,10 +410,10 @@ void audio_set_buffer_margin(int seconds) | |||
410 | 410 | ||
411 | void audio_get_debugdata(struct audio_debug *dbgdata) | 411 | void audio_get_debugdata(struct audio_debug *dbgdata) |
412 | { | 412 | { |
413 | dbgdata->mp3buflen = mp3buflen; | 413 | dbgdata->audiobuflen = audiobuflen; |
414 | dbgdata->mp3buf_write = mp3buf_write; | 414 | dbgdata->audiobuf_write = audiobuf_write; |
415 | dbgdata->mp3buf_swapwrite = mp3buf_swapwrite; | 415 | dbgdata->audiobuf_swapwrite = audiobuf_swapwrite; |
416 | dbgdata->mp3buf_read = mp3buf_read; | 416 | dbgdata->audiobuf_read = audiobuf_read; |
417 | 417 | ||
418 | dbgdata->last_dma_chunk_size = last_dma_chunk_size; | 418 | dbgdata->last_dma_chunk_size = last_dma_chunk_size; |
419 | 419 | ||
@@ -457,17 +457,17 @@ static int dbg_cnt2us(unsigned int cnt) | |||
457 | 457 | ||
458 | static int get_unplayed_space(void) | 458 | static int get_unplayed_space(void) |
459 | { | 459 | { |
460 | int space = mp3buf_write - mp3buf_read; | 460 | int space = audiobuf_write - audiobuf_read; |
461 | if (space < 0) | 461 | if (space < 0) |
462 | space += mp3buflen; | 462 | space += audiobuflen; |
463 | return space; | 463 | return space; |
464 | } | 464 | } |
465 | 465 | ||
466 | static int get_playable_space(void) | 466 | static int get_playable_space(void) |
467 | { | 467 | { |
468 | int space = mp3buf_swapwrite - mp3buf_read; | 468 | int space = audiobuf_swapwrite - audiobuf_read; |
469 | if (space < 0) | 469 | if (space < 0) |
470 | space += mp3buflen; | 470 | space += audiobuflen; |
471 | return space; | 471 | return space; |
472 | } | 472 | } |
473 | 473 | ||
@@ -479,33 +479,33 @@ static int get_unplayed_space_current_song(void) | |||
479 | { | 479 | { |
480 | int track_offset = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; | 480 | int track_offset = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; |
481 | 481 | ||
482 | space = id3tags[track_offset].mempos - mp3buf_read; | 482 | space = id3tags[track_offset].mempos - audiobuf_read; |
483 | } | 483 | } |
484 | else | 484 | else |
485 | { | 485 | { |
486 | space = mp3buf_write - mp3buf_read; | 486 | space = audiobuf_write - audiobuf_read; |
487 | } | 487 | } |
488 | 488 | ||
489 | if (space < 0) | 489 | if (space < 0) |
490 | space += mp3buflen; | 490 | space += audiobuflen; |
491 | 491 | ||
492 | return space; | 492 | return space; |
493 | } | 493 | } |
494 | 494 | ||
495 | static int get_unswapped_space(void) | 495 | static int get_unswapped_space(void) |
496 | { | 496 | { |
497 | int space = mp3buf_write - mp3buf_swapwrite; | 497 | int space = audiobuf_write - audiobuf_swapwrite; |
498 | if (space < 0) | 498 | if (space < 0) |
499 | space += mp3buflen; | 499 | space += audiobuflen; |
500 | return space; | 500 | return space; |
501 | } | 501 | } |
502 | 502 | ||
503 | #if CONFIG_HWCODEC == MAS3587F | 503 | #if CONFIG_HWCODEC == MAS3587F |
504 | static int get_unsaved_space(void) | 504 | static int get_unsaved_space(void) |
505 | { | 505 | { |
506 | int space = mp3buf_write - mp3buf_read; | 506 | int space = audiobuf_write - audiobuf_read; |
507 | if (space < 0) | 507 | if (space < 0) |
508 | space += mp3buflen; | 508 | space += audiobuflen; |
509 | return space; | 509 | return space; |
510 | } | 510 | } |
511 | #endif /* #if CONFIG_HWCODEC == MAS3587F */ | 511 | #endif /* #if CONFIG_HWCODEC == MAS3587F */ |
@@ -570,8 +570,8 @@ void rec_tick(void) | |||
570 | "mov #30,r3 \n" /* i_max = 30 */ | 570 | "mov #30,r3 \n" /* i_max = 30 */ |
571 | "mov #0x40,r2 \n" /* mask for EOD check */ | 571 | "mov #0x40,r2 \n" /* mask for EOD check */ |
572 | "mov #0,%0 \n" /* i = 0; */ | 572 | "mov #0,%0 \n" /* i = 0; */ |
573 | "add %2,%1 \n" /* mp3buf_write -> cur_addr */ | 573 | "add %2,%1 \n" /* audiobuf_write -> cur_addr */ |
574 | "add %2,%3 \n" /* mp3buflen -> end_addr */ | 574 | "add %2,%3 \n" /* audiobuflen -> end_addr */ |
575 | "bra .r_start \n" | 575 | "bra .r_start \n" |
576 | "mov.b @%4,r1 \n" /* read PBDR (first time) */ | 576 | "mov.b @%4,r1 \n" /* read PBDR (first time) */ |
577 | 577 | ||
@@ -607,13 +607,13 @@ void rec_tick(void) | |||
607 | "bt .r_loop \n" /* yes: next pass */ | 607 | "bt .r_loop \n" /* yes: next pass */ |
608 | 608 | ||
609 | ".r_end: \n" | 609 | ".r_end: \n" |
610 | "sub %2,%1 \n" /* cur_addr -> mp3buf_write */ | 610 | "sub %2,%1 \n" /* cur_addr -> audiobuf_write */ |
611 | : /* outputs */ | 611 | : /* outputs */ |
612 | /* %0 */ "=&r"(i), | 612 | /* %0 */ "=&r"(i), |
613 | /* %1, in & out */ "+r"(mp3buf_write) | 613 | /* %1, in & out */ "+r"(audiobuf_write) |
614 | : /* inputs */ | 614 | : /* inputs */ |
615 | /* %2 */ "r"(mp3buf), | 615 | /* %2 */ "r"(audiobuf), |
616 | /* %3 */ "r"(mp3buflen), | 616 | /* %3 */ "r"(audiobuflen), |
617 | /* %4 */ "r"(PBDR_ADDR), | 617 | /* %4 */ "r"(PBDR_ADDR), |
618 | /* %5 = r0 */ "z"(&PADRH), | 618 | /* %5 = r0 */ "z"(&PADRH), |
619 | /* %6 */ "r"(0x4000000) | 619 | /* %6 */ "r"(0x4000000) |
@@ -634,7 +634,7 @@ void rec_tick(void) | |||
634 | prerecord_timeout = current_tick + HZ; | 634 | prerecord_timeout = current_tick + HZ; |
635 | 635 | ||
636 | /* Store the write pointer every second */ | 636 | /* Store the write pointer every second */ |
637 | prerecord_buffer[prerecord_index++] = mp3buf_write; | 637 | prerecord_buffer[prerecord_index++] = audiobuf_write; |
638 | 638 | ||
639 | /* Wrap if necessary */ | 639 | /* Wrap if necessary */ |
640 | if(prerecord_index == prerecording_max_seconds) | 640 | if(prerecord_index == prerecording_max_seconds) |
@@ -649,11 +649,11 @@ void rec_tick(void) | |||
649 | { | 649 | { |
650 | /* Signal to save the data if we are running out of buffer | 650 | /* Signal to save the data if we are running out of buffer |
651 | space */ | 651 | space */ |
652 | num_bytes = mp3buf_write - mp3buf_read; | 652 | num_bytes = audiobuf_write - audiobuf_read; |
653 | if(num_bytes < 0) | 653 | if(num_bytes < 0) |
654 | num_bytes += mp3buflen; | 654 | num_bytes += audiobuflen; |
655 | 655 | ||
656 | if(mp3buflen - num_bytes < MPEG_RECORDING_LOW_WATER && !saving) | 656 | if(audiobuflen - num_bytes < MPEG_RECORDING_LOW_WATER && !saving) |
657 | { | 657 | { |
658 | saving = true; | 658 | saving = true; |
659 | queue_post(&mpeg_queue, MPEG_SAVE_DATA, 0); | 659 | queue_post(&mpeg_queue, MPEG_SAVE_DATA, 0); |
@@ -673,10 +673,10 @@ void playback_tick(void) | |||
673 | 673 | ||
674 | static void reset_mp3_buffer(void) | 674 | static void reset_mp3_buffer(void) |
675 | { | 675 | { |
676 | mp3buf_read = 0; | 676 | audiobuf_read = 0; |
677 | mp3buf_write = 0; | 677 | audiobuf_write = 0; |
678 | mp3buf_swapwrite = 0; | 678 | audiobuf_swapwrite = 0; |
679 | lowest_watermark_level = mp3buflen; | 679 | lowest_watermark_level = audiobuflen; |
680 | } | 680 | } |
681 | 681 | ||
682 | /* DMA transfer end interrupt callback */ | 682 | /* DMA transfer end interrupt callback */ |
@@ -688,14 +688,14 @@ static void transfer_end(unsigned char** ppbuf, int* psize) | |||
688 | int space_until_end_of_buffer; | 688 | int space_until_end_of_buffer; |
689 | int track_offset = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; | 689 | int track_offset = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; |
690 | 690 | ||
691 | mp3buf_read += last_dma_chunk_size; | 691 | audiobuf_read += last_dma_chunk_size; |
692 | if(mp3buf_read >= mp3buflen) | 692 | if(audiobuf_read >= audiobuflen) |
693 | mp3buf_read = 0; | 693 | audiobuf_read = 0; |
694 | 694 | ||
695 | /* First, check if we are on a track boundary */ | 695 | /* First, check if we are on a track boundary */ |
696 | if (num_tracks_in_memory() > 1) | 696 | if (num_tracks_in_memory() > 1) |
697 | { | 697 | { |
698 | if (mp3buf_read == id3tags[track_offset].mempos) | 698 | if (audiobuf_read == id3tags[track_offset].mempos) |
699 | { | 699 | { |
700 | queue_post(&mpeg_queue, MPEG_TRACK_CHANGE, 0); | 700 | queue_post(&mpeg_queue, MPEG_TRACK_CHANGE, 0); |
701 | track_offset = (track_offset+1) & MAX_ID3_TAGS_MASK; | 701 | track_offset = (track_offset+1) & MAX_ID3_TAGS_MASK; |
@@ -704,7 +704,7 @@ static void transfer_end(unsigned char** ppbuf, int* psize) | |||
704 | 704 | ||
705 | unplayed_space_left = get_unplayed_space(); | 705 | unplayed_space_left = get_unplayed_space(); |
706 | 706 | ||
707 | space_until_end_of_buffer = mp3buflen - mp3buf_read; | 707 | space_until_end_of_buffer = audiobuflen - audiobuf_read; |
708 | 708 | ||
709 | if(!filling && unplayed_space_left < low_watermark) | 709 | if(!filling && unplayed_space_left < low_watermark) |
710 | { | 710 | { |
@@ -722,18 +722,18 @@ static void transfer_end(unsigned char** ppbuf, int* psize) | |||
722 | if (num_tracks_in_memory() > 1) | 722 | if (num_tracks_in_memory() > 1) |
723 | { | 723 | { |
724 | /* will we move across the track boundary? */ | 724 | /* will we move across the track boundary? */ |
725 | if (( mp3buf_read < id3tags[track_offset].mempos ) && | 725 | if (( audiobuf_read < id3tags[track_offset].mempos ) && |
726 | ((mp3buf_read+last_dma_chunk_size) > | 726 | ((audiobuf_read+last_dma_chunk_size) > |
727 | id3tags[track_offset].mempos )) | 727 | id3tags[track_offset].mempos )) |
728 | { | 728 | { |
729 | /* Make sure that we end exactly on the boundary */ | 729 | /* Make sure that we end exactly on the boundary */ |
730 | last_dma_chunk_size = id3tags[track_offset].mempos | 730 | last_dma_chunk_size = id3tags[track_offset].mempos |
731 | - mp3buf_read; | 731 | - audiobuf_read; |
732 | } | 732 | } |
733 | } | 733 | } |
734 | 734 | ||
735 | *psize = last_dma_chunk_size & 0xffff; | 735 | *psize = last_dma_chunk_size & 0xffff; |
736 | *ppbuf = mp3buf + mp3buf_read; | 736 | *ppbuf = audiobuf + audiobuf_read; |
737 | id3tags[tag_read_idx].id3.offset += last_dma_chunk_size; | 737 | id3tags[tag_read_idx].id3.offset += last_dma_chunk_size; |
738 | 738 | ||
739 | /* Update the watermark debug level */ | 739 | /* Update the watermark debug level */ |
@@ -785,7 +785,7 @@ static int add_track_to_tag_list(const char *filename) | |||
785 | DEBUGF("Bad mp3\n"); | 785 | DEBUGF("Bad mp3\n"); |
786 | return -1; | 786 | return -1; |
787 | } | 787 | } |
788 | id3tags[tag_write_idx].mempos = mp3buf_write; | 788 | id3tags[tag_write_idx].mempos = audiobuf_write; |
789 | id3tags[tag_write_idx].id3.elapsed = 0; | 789 | id3tags[tag_write_idx].id3.elapsed = 0; |
790 | 790 | ||
791 | tag_write_idx = (tag_write_idx+1) & MAX_ID3_TAGS_MASK; | 791 | tag_write_idx = (tag_write_idx+1) & MAX_ID3_TAGS_MASK; |
@@ -932,9 +932,9 @@ static void start_playback_if_ready(void) | |||
932 | { | 932 | { |
933 | int playable_space; | 933 | int playable_space; |
934 | 934 | ||
935 | playable_space = mp3buf_swapwrite - mp3buf_read; | 935 | playable_space = audiobuf_swapwrite - audiobuf_read; |
936 | if(playable_space < 0) | 936 | if(playable_space < 0) |
937 | playable_space += mp3buflen; | 937 | playable_space += audiobuflen; |
938 | 938 | ||
939 | /* See if we have started playing yet. If not, do it. */ | 939 | /* See if we have started playing yet. If not, do it. */ |
940 | if(play_pending || dma_underrun) | 940 | if(play_pending || dma_underrun) |
@@ -950,7 +950,7 @@ static void start_playback_if_ready(void) | |||
950 | playing = true; | 950 | playing = true; |
951 | 951 | ||
952 | last_dma_chunk_size = MIN(0x2000, get_unplayed_space_current_song()); | 952 | last_dma_chunk_size = MIN(0x2000, get_unplayed_space_current_song()); |
953 | mp3_play_data(mp3buf + mp3buf_read, last_dma_chunk_size, transfer_end); | 953 | mp3_play_data(audiobuf + audiobuf_read, last_dma_chunk_size, transfer_end); |
954 | dma_underrun = false; | 954 | dma_underrun = false; |
955 | 955 | ||
956 | if (!paused) | 956 | if (!paused) |
@@ -989,19 +989,19 @@ static bool swap_one_chunk(void) | |||
989 | amount_to_swap = MIN(MPEG_SWAP_CHUNKSIZE, free_space_left); | 989 | amount_to_swap = MIN(MPEG_SWAP_CHUNKSIZE, free_space_left); |
990 | } | 990 | } |
991 | 991 | ||
992 | if(mp3buf_write < mp3buf_swapwrite) | 992 | if(audiobuf_write < audiobuf_swapwrite) |
993 | amount_to_swap = MIN(mp3buflen - mp3buf_swapwrite, | 993 | amount_to_swap = MIN(audiobuflen - audiobuf_swapwrite, |
994 | amount_to_swap); | 994 | amount_to_swap); |
995 | else | 995 | else |
996 | amount_to_swap = MIN(mp3buf_write - mp3buf_swapwrite, | 996 | amount_to_swap = MIN(audiobuf_write - audiobuf_swapwrite, |
997 | amount_to_swap); | 997 | amount_to_swap); |
998 | 998 | ||
999 | bitswap(mp3buf + mp3buf_swapwrite, amount_to_swap); | 999 | bitswap(audiobuf + audiobuf_swapwrite, amount_to_swap); |
1000 | 1000 | ||
1001 | mp3buf_swapwrite += amount_to_swap; | 1001 | audiobuf_swapwrite += amount_to_swap; |
1002 | if(mp3buf_swapwrite >= mp3buflen) | 1002 | if(audiobuf_swapwrite >= audiobuflen) |
1003 | { | 1003 | { |
1004 | mp3buf_swapwrite = 0; | 1004 | audiobuf_swapwrite = 0; |
1005 | } | 1005 | } |
1006 | 1006 | ||
1007 | return true; | 1007 | return true; |
@@ -1058,7 +1058,7 @@ static void mpeg_thread(void) | |||
1058 | else | 1058 | else |
1059 | { | 1059 | { |
1060 | DEBUGF("S R:%x W:%x SW:%x\n", | 1060 | DEBUGF("S R:%x W:%x SW:%x\n", |
1061 | mp3buf_read, mp3buf_write, mp3buf_swapwrite); | 1061 | audiobuf_read, audiobuf_write, audiobuf_swapwrite); |
1062 | queue_wait(&mpeg_queue, &ev); | 1062 | queue_wait(&mpeg_queue, &ev); |
1063 | } | 1063 | } |
1064 | 1064 | ||
@@ -1169,9 +1169,9 @@ static void mpeg_thread(void) | |||
1169 | mp3_play_pause(false); | 1169 | mp3_play_pause(false); |
1170 | 1170 | ||
1171 | track_change(); | 1171 | track_change(); |
1172 | mp3buf_read = id3tags[tag_read_idx].mempos; | 1172 | audiobuf_read = id3tags[tag_read_idx].mempos; |
1173 | last_dma_chunk_size = MIN(0x2000, get_unplayed_space_current_song()); | 1173 | last_dma_chunk_size = MIN(0x2000, get_unplayed_space_current_song()); |
1174 | mp3_play_data(mp3buf + mp3buf_read, last_dma_chunk_size, transfer_end); | 1174 | mp3_play_data(audiobuf + audiobuf_read, last_dma_chunk_size, transfer_end); |
1175 | dma_underrun = false; | 1175 | dma_underrun = false; |
1176 | last_dma_tick = current_tick; | 1176 | last_dma_tick = current_tick; |
1177 | 1177 | ||
@@ -1186,7 +1186,7 @@ static void mpeg_thread(void) | |||
1186 | } else if(unswapped_space_left && | 1186 | } else if(unswapped_space_left && |
1187 | unswapped_space_left > unplayed_space_left) { | 1187 | unswapped_space_left > unplayed_space_left) { |
1188 | /* Stop swapping the data from the previous file */ | 1188 | /* Stop swapping the data from the previous file */ |
1189 | mp3buf_swapwrite = mp3buf_read; | 1189 | audiobuf_swapwrite = audiobuf_read; |
1190 | play_pending = true; | 1190 | play_pending = true; |
1191 | } else { | 1191 | } else { |
1192 | playing = true; | 1192 | playing = true; |
@@ -1304,16 +1304,16 @@ static void mpeg_thread(void) | |||
1304 | 1304 | ||
1305 | diffpos = curpos - newpos; | 1305 | diffpos = curpos - newpos; |
1306 | 1306 | ||
1307 | if(!filling && diffpos >= 0 && diffpos < mp3buflen) | 1307 | if(!filling && diffpos >= 0 && diffpos < audiobuflen) |
1308 | { | 1308 | { |
1309 | int unplayed_space_left, unswapped_space_left; | 1309 | int unplayed_space_left, unswapped_space_left; |
1310 | 1310 | ||
1311 | /* We are changing to a position that's already in | 1311 | /* We are changing to a position that's already in |
1312 | memory, so we just move the DMA read pointer. */ | 1312 | memory, so we just move the DMA read pointer. */ |
1313 | mp3buf_read = mp3buf_write - diffpos; | 1313 | audiobuf_read = audiobuf_write - diffpos; |
1314 | if (mp3buf_read < 0) | 1314 | if (audiobuf_read < 0) |
1315 | { | 1315 | { |
1316 | mp3buf_read += mp3buflen; | 1316 | audiobuf_read += audiobuflen; |
1317 | } | 1317 | } |
1318 | 1318 | ||
1319 | unplayed_space_left = get_unplayed_space(); | 1319 | unplayed_space_left = get_unplayed_space(); |
@@ -1328,7 +1328,7 @@ static void mpeg_thread(void) | |||
1328 | if (unswapped_space_left > unplayed_space_left) | 1328 | if (unswapped_space_left > unplayed_space_left) |
1329 | { | 1329 | { |
1330 | DEBUGF("Moved swapwrite\n"); | 1330 | DEBUGF("Moved swapwrite\n"); |
1331 | mp3buf_swapwrite = mp3buf_read; | 1331 | audiobuf_swapwrite = audiobuf_read; |
1332 | play_pending = true; | 1332 | play_pending = true; |
1333 | } | 1333 | } |
1334 | 1334 | ||
@@ -1344,7 +1344,7 @@ static void mpeg_thread(void) | |||
1344 | /* resume will start at new position */ | 1344 | /* resume will start at new position */ |
1345 | last_dma_chunk_size = | 1345 | last_dma_chunk_size = |
1346 | MIN(0x2000, get_unplayed_space_current_song()); | 1346 | MIN(0x2000, get_unplayed_space_current_song()); |
1347 | mp3_play_data(mp3buf + mp3buf_read, | 1347 | mp3_play_data(audiobuf + audiobuf_read, |
1348 | last_dma_chunk_size, transfer_end); | 1348 | last_dma_chunk_size, transfer_end); |
1349 | dma_underrun = false; | 1349 | dma_underrun = false; |
1350 | } | 1350 | } |
@@ -1402,12 +1402,12 @@ static void mpeg_thread(void) | |||
1402 | int next = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; | 1402 | int next = (tag_read_idx+1) & MAX_ID3_TAGS_MASK; |
1403 | 1403 | ||
1404 | /* Reset the buffer */ | 1404 | /* Reset the buffer */ |
1405 | mp3buf_write = id3tags[next].mempos; | 1405 | audiobuf_write = id3tags[next].mempos; |
1406 | 1406 | ||
1407 | /* Reset swapwrite unless we're still swapping current | 1407 | /* Reset swapwrite unless we're still swapping current |
1408 | track */ | 1408 | track */ |
1409 | if (get_unplayed_space() <= get_playable_space()) | 1409 | if (get_unplayed_space() <= get_playable_space()) |
1410 | mp3buf_swapwrite = mp3buf_write; | 1410 | audiobuf_swapwrite = audiobuf_write; |
1411 | 1411 | ||
1412 | close(mpeg_file); | 1412 | close(mpeg_file); |
1413 | remove_all_non_current_tags(); | 1413 | remove_all_non_current_tags(); |
@@ -1430,13 +1430,13 @@ static void mpeg_thread(void) | |||
1430 | } | 1430 | } |
1431 | 1431 | ||
1432 | case MPEG_NEED_DATA: | 1432 | case MPEG_NEED_DATA: |
1433 | free_space_left = mp3buf_read - mp3buf_write; | 1433 | free_space_left = audiobuf_read - audiobuf_write; |
1434 | 1434 | ||
1435 | /* We interpret 0 as "empty buffer" */ | 1435 | /* We interpret 0 as "empty buffer" */ |
1436 | if(free_space_left <= 0) | 1436 | if(free_space_left <= 0) |
1437 | free_space_left = mp3buflen + free_space_left; | 1437 | free_space_left = audiobuflen + free_space_left; |
1438 | 1438 | ||
1439 | unplayed_space_left = mp3buflen - free_space_left; | 1439 | unplayed_space_left = audiobuflen - free_space_left; |
1440 | 1440 | ||
1441 | /* Make sure that we don't fill the entire buffer */ | 1441 | /* Make sure that we don't fill the entire buffer */ |
1442 | free_space_left -= MPEG_HIGH_WATER; | 1442 | free_space_left -= MPEG_HIGH_WATER; |
@@ -1458,7 +1458,7 @@ static void mpeg_thread(void) | |||
1458 | amount_to_read = free_space_left; | 1458 | amount_to_read = free_space_left; |
1459 | 1459 | ||
1460 | /* Don't read more than until the end of the buffer */ | 1460 | /* Don't read more than until the end of the buffer */ |
1461 | amount_to_read = MIN(mp3buflen - mp3buf_write, amount_to_read); | 1461 | amount_to_read = MIN(audiobuflen - audiobuf_write, amount_to_read); |
1462 | #if MEM == 8 | 1462 | #if MEM == 8 |
1463 | amount_to_read = MIN(0x100000, amount_to_read); | 1463 | amount_to_read = MIN(0x100000, amount_to_read); |
1464 | #endif /* #if MEM == 8 */ | 1464 | #endif /* #if MEM == 8 */ |
@@ -1471,7 +1471,7 @@ static void mpeg_thread(void) | |||
1471 | { | 1471 | { |
1472 | DEBUGF("R\n"); | 1472 | DEBUGF("R\n"); |
1473 | t1 = current_tick; | 1473 | t1 = current_tick; |
1474 | len = read(mpeg_file, mp3buf+mp3buf_write, amount_to_read); | 1474 | len = read(mpeg_file, audiobuf+audiobuf_write, amount_to_read); |
1475 | if(len > 0) | 1475 | if(len > 0) |
1476 | { | 1476 | { |
1477 | t2 = current_tick; | 1477 | t2 = current_tick; |
@@ -1482,17 +1482,17 @@ static void mpeg_thread(void) | |||
1482 | data */ | 1482 | data */ |
1483 | if (len < amount_to_read) | 1483 | if (len < amount_to_read) |
1484 | { | 1484 | { |
1485 | int tagptr = mp3buf_write + len - 128; | 1485 | int tagptr = audiobuf_write + len - 128; |
1486 | int i; | 1486 | int i; |
1487 | char *tag = "TAG"; | 1487 | char *tag = "TAG"; |
1488 | int taglen = 128; | 1488 | int taglen = 128; |
1489 | 1489 | ||
1490 | for(i = 0;i < 3;i++) | 1490 | for(i = 0;i < 3;i++) |
1491 | { | 1491 | { |
1492 | if(tagptr >= mp3buflen) | 1492 | if(tagptr >= audiobuflen) |
1493 | tagptr -= mp3buflen; | 1493 | tagptr -= audiobuflen; |
1494 | 1494 | ||
1495 | if(mp3buf[tagptr] != tag[i]) | 1495 | if(audiobuf[tagptr] != tag[i]) |
1496 | taglen = 0; | 1496 | taglen = 0; |
1497 | 1497 | ||
1498 | tagptr++; | 1498 | tagptr++; |
@@ -1512,11 +1512,11 @@ static void mpeg_thread(void) | |||
1512 | } | 1512 | } |
1513 | } | 1513 | } |
1514 | 1514 | ||
1515 | mp3buf_write += len; | 1515 | audiobuf_write += len; |
1516 | 1516 | ||
1517 | if(mp3buf_write >= mp3buflen) | 1517 | if(audiobuf_write >= audiobuflen) |
1518 | { | 1518 | { |
1519 | mp3buf_write = 0; | 1519 | audiobuf_write = 0; |
1520 | DEBUGF("W\n"); | 1520 | DEBUGF("W\n"); |
1521 | } | 1521 | } |
1522 | 1522 | ||
@@ -1597,48 +1597,48 @@ static void mpeg_thread(void) | |||
1597 | startpos = prerecord_buffer[startpos]; | 1597 | startpos = prerecord_buffer[startpos]; |
1598 | 1598 | ||
1599 | DEBUGF("Start looking at address %x (%x)\n", | 1599 | DEBUGF("Start looking at address %x (%x)\n", |
1600 | mp3buf+startpos, startpos); | 1600 | audiobuf+startpos, startpos); |
1601 | 1601 | ||
1602 | saved_header = mpeg_get_last_header(); | 1602 | saved_header = mpeg_get_last_header(); |
1603 | 1603 | ||
1604 | mem_find_next_frame(startpos, &offset, 5000, | 1604 | mem_find_next_frame(startpos, &offset, 5000, |
1605 | saved_header); | 1605 | saved_header); |
1606 | 1606 | ||
1607 | mp3buf_read = startpos + offset; | 1607 | audiobuf_read = startpos + offset; |
1608 | 1608 | ||
1609 | DEBUGF("New mp3buf_read address: %x (%x)\n", | 1609 | DEBUGF("New audiobuf_read address: %x (%x)\n", |
1610 | mp3buf+mp3buf_read, mp3buf_read); | 1610 | audiobuf+audiobuf_read, audiobuf_read); |
1611 | 1611 | ||
1612 | /* Make room for headers */ | 1612 | /* Make room for headers */ |
1613 | mp3buf_read -= MPEG_RESERVED_HEADER_SPACE; | 1613 | audiobuf_read -= MPEG_RESERVED_HEADER_SPACE; |
1614 | if(mp3buf_read < 0) | 1614 | if(audiobuf_read < 0) |
1615 | { | 1615 | { |
1616 | /* Clear the bottom half */ | 1616 | /* Clear the bottom half */ |
1617 | memset(mp3buf, 0, | 1617 | memset(audiobuf, 0, |
1618 | mp3buf_read + MPEG_RESERVED_HEADER_SPACE); | 1618 | audiobuf_read + MPEG_RESERVED_HEADER_SPACE); |
1619 | 1619 | ||
1620 | /* And the top half */ | 1620 | /* And the top half */ |
1621 | mp3buf_read += mp3buflen; | 1621 | audiobuf_read += audiobuflen; |
1622 | memset(mp3buf + mp3buf_read, 0, | 1622 | memset(audiobuf + audiobuf_read, 0, |
1623 | mp3buflen - mp3buf_read); | 1623 | audiobuflen - audiobuf_read); |
1624 | } | 1624 | } |
1625 | else | 1625 | else |
1626 | { | 1626 | { |
1627 | memset(mp3buf + mp3buf_read, 0, | 1627 | memset(audiobuf + audiobuf_read, 0, |
1628 | MPEG_RESERVED_HEADER_SPACE); | 1628 | MPEG_RESERVED_HEADER_SPACE); |
1629 | } | 1629 | } |
1630 | 1630 | ||
1631 | /* Copy the empty ID3 header */ | 1631 | /* Copy the empty ID3 header */ |
1632 | startpos = mp3buf_read; | 1632 | startpos = audiobuf_read; |
1633 | for(i = 0;i < (int)sizeof(empty_id3_header);i++) | 1633 | for(i = 0;i < (int)sizeof(empty_id3_header);i++) |
1634 | { | 1634 | { |
1635 | mp3buf[startpos++] = empty_id3_header[i]; | 1635 | audiobuf[startpos++] = empty_id3_header[i]; |
1636 | if(startpos == mp3buflen) | 1636 | if(startpos == audiobuflen) |
1637 | startpos = 0; | 1637 | startpos = 0; |
1638 | } | 1638 | } |
1639 | 1639 | ||
1640 | DEBUGF("New mp3buf_read address (reservation): %x\n", | 1640 | DEBUGF("New audiobuf_read address (reservation): %x\n", |
1641 | mp3buf+mp3buf_read); | 1641 | audiobuf+audiobuf_read); |
1642 | 1642 | ||
1643 | DEBUGF("Prerecording...\n"); | 1643 | DEBUGF("Prerecording...\n"); |
1644 | } | 1644 | } |
@@ -1650,11 +1650,11 @@ static void mpeg_thread(void) | |||
1650 | 1650 | ||
1651 | /* Advance the write pointer to make | 1651 | /* Advance the write pointer to make |
1652 | room for an ID3 tag plus a VBR header */ | 1652 | room for an ID3 tag plus a VBR header */ |
1653 | mp3buf_write = MPEG_RESERVED_HEADER_SPACE; | 1653 | audiobuf_write = MPEG_RESERVED_HEADER_SPACE; |
1654 | memset(mp3buf, 0, MPEG_RESERVED_HEADER_SPACE); | 1654 | memset(audiobuf, 0, MPEG_RESERVED_HEADER_SPACE); |
1655 | 1655 | ||
1656 | /* Insert the ID3 header */ | 1656 | /* Insert the ID3 header */ |
1657 | memcpy(mp3buf, empty_id3_header, | 1657 | memcpy(audiobuf, empty_id3_header, |
1658 | sizeof(empty_id3_header)); | 1658 | sizeof(empty_id3_header)); |
1659 | 1659 | ||
1660 | DEBUGF("Recording...\n"); | 1660 | DEBUGF("Recording...\n"); |
@@ -1711,14 +1711,14 @@ static void mpeg_thread(void) | |||
1711 | /* saved_header is saved right before stopping | 1711 | /* saved_header is saved right before stopping |
1712 | the MAS */ | 1712 | the MAS */ |
1713 | framelen = create_xing_header(mpeg_file, 0, | 1713 | framelen = create_xing_header(mpeg_file, 0, |
1714 | num_rec_bytes, mp3buf, | 1714 | num_rec_bytes, audiobuf, |
1715 | num_recorded_frames, | 1715 | num_recorded_frames, |
1716 | saved_header, NULL, | 1716 | saved_header, NULL, |
1717 | false); | 1717 | false); |
1718 | 1718 | ||
1719 | lseek(mpeg_file, MPEG_RESERVED_HEADER_SPACE-framelen, | 1719 | lseek(mpeg_file, MPEG_RESERVED_HEADER_SPACE-framelen, |
1720 | SEEK_SET); | 1720 | SEEK_SET); |
1721 | write(mpeg_file, mp3buf, framelen); | 1721 | write(mpeg_file, audiobuf, framelen); |
1722 | close(mpeg_file); | 1722 | close(mpeg_file); |
1723 | } | 1723 | } |
1724 | mpeg_file = -1; | 1724 | mpeg_file = -1; |
@@ -1760,9 +1760,9 @@ static void mpeg_thread(void) | |||
1760 | if(amount_to_save >= 1800) | 1760 | if(amount_to_save >= 1800) |
1761 | { | 1761 | { |
1762 | /* Now find a frame boundary to split at */ | 1762 | /* Now find a frame boundary to split at */ |
1763 | startpos = mp3buf_write - 1800; | 1763 | startpos = audiobuf_write - 1800; |
1764 | if(startpos < 0) | 1764 | if(startpos < 0) |
1765 | startpos += mp3buflen; | 1765 | startpos += audiobuflen; |
1766 | 1766 | ||
1767 | rc = mem_find_next_frame(startpos, &offset, 1800, | 1767 | rc = mem_find_next_frame(startpos, &offset, 1800, |
1768 | saved_header); | 1768 | saved_header); |
@@ -1771,28 +1771,28 @@ static void mpeg_thread(void) | |||
1771 | /* offset will now contain the number of bytes to | 1771 | /* offset will now contain the number of bytes to |
1772 | add to startpos to find the frame boundary */ | 1772 | add to startpos to find the frame boundary */ |
1773 | startpos += offset; | 1773 | startpos += offset; |
1774 | if(startpos >= mp3buflen) | 1774 | if(startpos >= audiobuflen) |
1775 | startpos -= mp3buflen; | 1775 | startpos -= audiobuflen; |
1776 | } | 1776 | } |
1777 | else | 1777 | else |
1778 | { | 1778 | { |
1779 | /* No header found. Let's save the whole buffer. */ | 1779 | /* No header found. Let's save the whole buffer. */ |
1780 | startpos = mp3buf_write; | 1780 | startpos = audiobuf_write; |
1781 | } | 1781 | } |
1782 | } | 1782 | } |
1783 | else | 1783 | else |
1784 | { | 1784 | { |
1785 | /* Too few bytes recorded, timeout */ | 1785 | /* Too few bytes recorded, timeout */ |
1786 | startpos = mp3buf_write; | 1786 | startpos = audiobuf_write; |
1787 | } | 1787 | } |
1788 | 1788 | ||
1789 | amount_to_save = startpos - mp3buf_read; | 1789 | amount_to_save = startpos - audiobuf_read; |
1790 | if(amount_to_save < 0) | 1790 | if(amount_to_save < 0) |
1791 | amount_to_save += mp3buflen; | 1791 | amount_to_save += audiobuflen; |
1792 | 1792 | ||
1793 | /* First save up to the end of the buffer */ | 1793 | /* First save up to the end of the buffer */ |
1794 | writelen = MIN(amount_to_save, | 1794 | writelen = MIN(amount_to_save, |
1795 | mp3buflen - mp3buf_read); | 1795 | audiobuflen - audiobuf_read); |
1796 | 1796 | ||
1797 | if (mpeg_file < 0) /* delayed file opening */ | 1797 | if (mpeg_file < 0) /* delayed file opening */ |
1798 | { | 1798 | { |
@@ -1804,7 +1804,7 @@ static void mpeg_thread(void) | |||
1804 | 1804 | ||
1805 | if(writelen) | 1805 | if(writelen) |
1806 | { | 1806 | { |
1807 | rc = write(mpeg_file, mp3buf + mp3buf_read, writelen); | 1807 | rc = write(mpeg_file, audiobuf + audiobuf_read, writelen); |
1808 | if(rc < 0) | 1808 | if(rc < 0) |
1809 | { | 1809 | { |
1810 | if(errno == ENOSPC) | 1810 | if(errno == ENOSPC) |
@@ -1826,7 +1826,7 @@ static void mpeg_thread(void) | |||
1826 | writelen = amount_to_save - writelen; | 1826 | writelen = amount_to_save - writelen; |
1827 | if(writelen) | 1827 | if(writelen) |
1828 | { | 1828 | { |
1829 | rc = write(mpeg_file, mp3buf, writelen); | 1829 | rc = write(mpeg_file, audiobuf, writelen); |
1830 | if(rc < 0) | 1830 | if(rc < 0) |
1831 | { | 1831 | { |
1832 | if(errno == ENOSPC) | 1832 | if(errno == ENOSPC) |
@@ -1845,9 +1845,9 @@ static void mpeg_thread(void) | |||
1845 | } | 1845 | } |
1846 | 1846 | ||
1847 | /* Advance the buffer pointers */ | 1847 | /* Advance the buffer pointers */ |
1848 | mp3buf_read += amount_to_save; | 1848 | audiobuf_read += amount_to_save; |
1849 | if(mp3buf_read >= mp3buflen) | 1849 | if(audiobuf_read >= audiobuflen) |
1850 | mp3buf_read -= mp3buflen; | 1850 | audiobuf_read -= audiobuflen; |
1851 | 1851 | ||
1852 | /* Close the current file */ | 1852 | /* Close the current file */ |
1853 | rc = close(mpeg_file); | 1853 | rc = close(mpeg_file); |
@@ -1867,23 +1867,23 @@ static void mpeg_thread(void) | |||
1867 | wrapped */ | 1867 | wrapped */ |
1868 | if(amount_to_save < 0) | 1868 | if(amount_to_save < 0) |
1869 | { | 1869 | { |
1870 | amount_to_save += mp3buflen; | 1870 | amount_to_save += audiobuflen; |
1871 | } | 1871 | } |
1872 | 1872 | ||
1873 | DEBUGF("r: %x w: %x\n", mp3buf_read, mp3buf_write); | 1873 | DEBUGF("r: %x w: %x\n", audiobuf_read, audiobuf_write); |
1874 | DEBUGF("ats: %x\n", amount_to_save); | 1874 | DEBUGF("ats: %x\n", amount_to_save); |
1875 | 1875 | ||
1876 | /* Save data only if the buffer is getting full, | 1876 | /* Save data only if the buffer is getting full, |
1877 | or if we should stop recording */ | 1877 | or if we should stop recording */ |
1878 | if(amount_to_save) | 1878 | if(amount_to_save) |
1879 | { | 1879 | { |
1880 | if(mp3buflen - | 1880 | if(audiobuflen - |
1881 | amount_to_save < MPEG_RECORDING_LOW_WATER || | 1881 | amount_to_save < MPEG_RECORDING_LOW_WATER || |
1882 | stop_pending) | 1882 | stop_pending) |
1883 | { | 1883 | { |
1884 | /* Only save up to the end of the buffer */ | 1884 | /* Only save up to the end of the buffer */ |
1885 | writelen = MIN(amount_to_save, | 1885 | writelen = MIN(amount_to_save, |
1886 | mp3buflen - mp3buf_read); | 1886 | audiobuflen - audiobuf_read); |
1887 | 1887 | ||
1888 | DEBUGF("wrl: %x\n", writelen); | 1888 | DEBUGF("wrl: %x\n", writelen); |
1889 | 1889 | ||
@@ -1896,7 +1896,7 @@ static void mpeg_thread(void) | |||
1896 | panicf("recfile: %d", mpeg_file); | 1896 | panicf("recfile: %d", mpeg_file); |
1897 | } | 1897 | } |
1898 | 1898 | ||
1899 | rc = write(mpeg_file, mp3buf + mp3buf_read, | 1899 | rc = write(mpeg_file, audiobuf + audiobuf_read, |
1900 | writelen); | 1900 | writelen); |
1901 | 1901 | ||
1902 | if(rc < 0) | 1902 | if(rc < 0) |
@@ -1914,9 +1914,9 @@ static void mpeg_thread(void) | |||
1914 | } | 1914 | } |
1915 | } | 1915 | } |
1916 | 1916 | ||
1917 | mp3buf_read += amount_to_save; | 1917 | audiobuf_read += amount_to_save; |
1918 | if(mp3buf_read >= mp3buflen) | 1918 | if(audiobuf_read >= audiobuflen) |
1919 | mp3buf_read = 0; | 1919 | audiobuf_read = 0; |
1920 | 1920 | ||
1921 | rc = fsync(mpeg_file); | 1921 | rc = fsync(mpeg_file); |
1922 | if(rc < 0) | 1922 | if(rc < 0) |
@@ -2468,9 +2468,9 @@ unsigned long mpeg_num_recorded_bytes(void) | |||
2468 | if(index < 0) | 2468 | if(index < 0) |
2469 | index += prerecording_max_seconds; | 2469 | index += prerecording_max_seconds; |
2470 | 2470 | ||
2471 | num_bytes = mp3buf_write - prerecord_buffer[index]; | 2471 | num_bytes = audiobuf_write - prerecord_buffer[index]; |
2472 | if(num_bytes < 0) | 2472 | if(num_bytes < 0) |
2473 | num_bytes += mp3buflen; | 2473 | num_bytes += audiobuflen; |
2474 | 2474 | ||
2475 | return num_bytes;; | 2475 | return num_bytes;; |
2476 | } | 2476 | } |
@@ -2765,7 +2765,7 @@ void audio_init(void) | |||
2765 | mpeg_errno = 0; | 2765 | mpeg_errno = 0; |
2766 | 2766 | ||
2767 | #ifndef SIMULATOR | 2767 | #ifndef SIMULATOR |
2768 | mp3buflen = mp3end - mp3buf; | 2768 | audiobuflen = audiobufend - audiobuf; |
2769 | queue_init(&mpeg_queue); | 2769 | queue_init(&mpeg_queue); |
2770 | #endif /* #ifndef SIMULATOR */ | 2770 | #endif /* #ifndef SIMULATOR */ |
2771 | create_thread(mpeg_thread, mpeg_stack, | 2771 | create_thread(mpeg_thread, mpeg_stack, |