summaryrefslogtreecommitdiff
path: root/firmware/mpeg.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/mpeg.c')
-rw-r--r--firmware/mpeg.c62
1 files changed, 2 insertions, 60 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index a3fdf2188f..a49f444dc2 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -35,6 +35,8 @@
35#include "file.h" 35#include "file.h"
36#endif 36#endif
37 37
38extern void bitswap(unsigned short *data, int length);
39
38#define MPEG_CHUNKSIZE 0x180000 40#define MPEG_CHUNKSIZE 0x180000
39#define MPEG_SWAP_CHUNKSIZE 0x8000 41#define MPEG_SWAP_CHUNKSIZE 0x8000
40#define MPEG_HIGH_WATER 2 42#define MPEG_HIGH_WATER 2
@@ -347,44 +349,6 @@ static unsigned int prescale_table[] =
347}; 349};
348#endif 350#endif
349 351
350static unsigned char fliptable[] =
351{
352 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
353 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
354 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
355 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
356 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
357 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
358 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
359 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
360 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
361 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
362 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
363 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
364 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
365 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
366 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
367 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
368 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
369 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
370 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
371 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
372 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
373 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
374 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
375 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
376 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
377 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
378 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
379 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
380 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
381 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
382 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
383 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
384};
385
386static unsigned short big_fliptable[65536];
387
388static struct event_queue mpeg_queue; 352static struct event_queue mpeg_queue;
389static char mpeg_stack[DEFAULT_STACK_SIZE + 0x1000]; 353static char mpeg_stack[DEFAULT_STACK_SIZE + 0x1000];
390static char mpeg_thread_name[] = "mpeg"; 354static char mpeg_thread_name[] = "mpeg";
@@ -407,16 +371,6 @@ static bool filling; /* We are filling the buffer with data from disk */
407 371
408static int mpeg_file; 372static int mpeg_file;
409 373
410static void create_fliptable(void)
411{
412 int i;
413
414 for(i = 0;i < 65536;i++)
415 {
416 big_fliptable[i] = fliptable[i & 0xff] | (fliptable[i >> 8] << 8);
417 }
418}
419
420static void mas_poll_start(int interval_in_ms) 374static void mas_poll_start(int interval_in_ms)
421{ 375{
422 unsigned int count; 376 unsigned int count;
@@ -518,16 +472,6 @@ static void dma_tick(void)
518 } 472 }
519} 473}
520 474
521static void bitswap(unsigned short *data, int length) __attribute__ ((section (".icode")));
522static void bitswap(unsigned short *data, int length)
523{
524 int i = length;
525 while(i--)
526 {
527 data[i] = big_fliptable[data[i]];
528 }
529}
530
531static void reset_mp3_buffer(void) 475static void reset_mp3_buffer(void)
532{ 476{
533 mp3buf_read = 0; 477 mp3buf_read = 0;
@@ -1621,8 +1565,6 @@ void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int
1621 1565
1622 mp3buflen = mp3end - mp3buf; 1566 mp3buflen = mp3end - mp3buf;
1623 1567
1624 create_fliptable();
1625
1626 queue_init(&mpeg_queue); 1568 queue_init(&mpeg_queue);
1627 create_thread(mpeg_thread, mpeg_stack, 1569 create_thread(mpeg_thread, mpeg_stack,
1628 sizeof(mpeg_stack), mpeg_thread_name); 1570 sizeof(mpeg_stack), mpeg_thread_name);