summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2006-01-11 15:03:31 +0000
committerThom Johansen <thomj@rockbox.org>2006-01-11 15:03:31 +0000
commit55d1955a624f781d5d5263ecc9af018e6e26f273 (patch)
treebbb0140ef5e776cae15dcb05b15d002c72826b29 /apps/plugins
parentcd33f5da6217bf7ef3fbac41d8b202e668bbdad7 (diff)
downloadrockbox-55d1955a624f781d5d5263ecc9af018e6e26f273.tar.gz
rockbox-55d1955a624f781d5d5263ecc9af018e6e26f273.zip
Support for other platforms than just Coldfire.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8332 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/mp3_encoder.c70
1 files changed, 41 insertions, 29 deletions
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index c84e158aa1..813302a9e4 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -1334,11 +1334,7 @@ void mdct_int( int *in, int *out )
1334 1334
1335 for(m=18; m--; ) 1335 for(m=18; m--; )
1336 { 1336 {
1337#ifdef SIMULATOR 1337#ifdef CPU_COLDFIRE
1338 int k;
1339 for(k=36,tmp=0; k--; )
1340 tmp += in[k] * win_int[m][k];
1341#else
1342 asm volatile ("move.l #0, %macsr"); /* integer mode */ 1338 asm volatile ("move.l #0, %macsr"); /* integer mode */
1343 1339
1344 { int *wint = win_int[m]; 1340 { int *wint = win_int[m];
@@ -1391,6 +1387,10 @@ void mdct_int( int *in, int *out )
1391 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5"); 1387 : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "a5");
1392 } 1388 }
1393 asm volatile ("movclr.l %%acc0, %[tmp]\n" : [tmp]"+r"(tmp) ); 1389 asm volatile ("movclr.l %%acc0, %[tmp]\n" : [tmp]"+r"(tmp) );
1390#else
1391 int k;
1392 for(k=36,tmp=0; k--; )
1393 tmp += in[k] * win_int[m][k];
1394#endif 1394#endif
1395 out[m] = (tmp + 16384) >> 15; 1395 out[m] = (tmp + 16384) >> 15;
1396 } 1396 }
@@ -1442,7 +1442,7 @@ void filter_subband(short *buffer, int s[SBLIMIT], int k)
1442{ 1442{
1443 short *enwindow = enwindow_int; 1443 short *enwindow = enwindow_int;
1444 int i, j, tmp = 0; 1444 int i, j, tmp = 0;
1445#ifndef SIMULATOR 1445#ifdef CPU_COLDFIRE
1446 int reg_buff[14]; /* register storage buffer */ 1446 int reg_buff[14]; /* register storage buffer */
1447#endif 1447#endif
1448 1448
@@ -1463,14 +1463,7 @@ void filter_subband(short *buffer, int s[SBLIMIT], int k)
1463 } 1463 }
1464 1464
1465 /* 36864=72*512: shift samples into proper window positions */ 1465 /* 36864=72*512: shift samples into proper window positions */
1466#ifdef SIMULATOR 1466#ifdef CPU_COLDFIRE
1467 for(i=0; i<64; i++)
1468 {
1469 for(j=0, tmp=0; j<512; j+=64)
1470 tmp += (int)x_int[k][(i+0+j+off[k])&(HAN_SIZE-1)] * (int)*(enwindow++);
1471 y_int[i] = (short)((tmp + (1<<18)) >> 19);
1472 }
1473#else
1474 { short *xint = &x_int[k][off[k]]; 1467 { short *xint = &x_int[k][off[k]];
1475 short *yint = y_int; 1468 short *yint = y_int;
1476 1469
@@ -1534,6 +1527,13 @@ void filter_subband(short *buffer, int s[SBLIMIT], int k)
1534 1527
1535 asm volatile ("movem.l (%0),%%d0/%%d2-%%d7/%%a2-%%a7\n" : : "a" (reg_buff) : "d0"); 1528 asm volatile ("movem.l (%0),%%d0/%%d2-%%d7/%%a2-%%a7\n" : : "a" (reg_buff) : "d0");
1536 } 1529 }
1530#else
1531 for(i=0; i<64; i++)
1532 {
1533 for(j=0, tmp=0; j<512; j+=64)
1534 tmp += (int)x_int[k][(i+0+j+off[k])&(HAN_SIZE-1)] * (int)*(enwindow++);
1535 y_int[i] = (short)((tmp + (1<<18)) >> 19);
1536 }
1537#endif 1537#endif
1538 1538
1539 /* 147456=72*2048 */ 1539 /* 147456=72*2048 */
@@ -1541,10 +1541,7 @@ void filter_subband(short *buffer, int s[SBLIMIT], int k)
1541 { 1541 {
1542 short *filt = filter_int[i]; 1542 short *filt = filter_int[i];
1543 1543
1544#ifdef SIMULATOR 1544#ifdef CPU_COLDFIRE
1545 for(j=64, tmp=0; j--; )
1546 tmp += (long)filt[j] * (long)y_int[j];
1547#else
1548 asm volatile ("move.l #0, %macsr"); /* integer mode */ 1545 asm volatile ("move.l #0, %macsr"); /* integer mode */
1549 { 1546 {
1550 asm volatile( 1547 asm volatile(
@@ -1623,6 +1620,9 @@ void filter_subband(short *buffer, int s[SBLIMIT], int k)
1623 1620
1624 asm volatile ("movclr.l %%acc0, %[tmp]\n" : [tmp]"+r"(tmp) ); 1621 asm volatile ("movclr.l %%acc0, %[tmp]\n" : [tmp]"+r"(tmp) );
1625 } 1622 }
1623#else
1624 for(j=64, tmp=0; j--; )
1625 tmp += (long)filt[j] * (long)y_int[j];
1626#endif 1626#endif
1627 s[i] = (tmp + 16384) >> 15; 1627 s[i] = (tmp + 16384) >> 15;
1628 } 1628 }
@@ -1878,6 +1878,18 @@ char *get_mp3_filename(char *wav_name)
1878 return mp3_name; 1878 return mp3_name;
1879} 1879}
1880 1880
1881#if CONFIG_KEYPAD == IRIVER_H100_PAD || CONFIG_KEYPAD == IRIVER_H300_PAD
1882#define MP3ENC_PREV BUTTON_UP
1883#define MP3ENC_NEXT BUTTON_DOWN
1884#define MP3ENC_DONE BUTTON_OFF
1885#define MP3ENC_SELECT BUTTON_SELECT
1886#elif CONFIG_KEYPAD == IPOD_4G_PAD
1887#define MP3ENC_PREV BUTTON_SCROLL_BACK
1888#define MP3ENC_NEXT BUTTON_SCROLL_FWD
1889#define MP3ENC_DONE BUTTON_MENU
1890#define MP3ENC_SELECT BUTTON_SELECT
1891#endif
1892
1881enum plugin_status plugin_start(struct plugin_api* api, void* parameter) 1893enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1882{ 1894{
1883 int fil, sfil, nfil; /* for file selection */ 1895 int fil, sfil, nfil; /* for file selection */
@@ -1895,7 +1907,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1895 1907
1896 rb->lcd_setfont(FONT_SYSFIXED); 1908 rb->lcd_setfont(FONT_SYSFIXED);
1897 1909
1898#ifndef SIMULATOR 1910#ifdef HAVE_ADJUSTABLE_CPU_FREQ
1899 rb->cpu_boost(true); 1911 rb->cpu_boost(true);
1900#endif 1912#endif
1901 rb->button_clear_queue(); 1913 rb->button_clear_queue();
@@ -1907,13 +1919,13 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1907 sfil = 0; /* set first file as default */ 1919 sfil = 0; /* set first file as default */
1908 cont = 1; 1920 cont = 1;
1909 1921
1910 while(cont && (butt = rb->button_get_w_tmo(HZ/10)) != BUTTON_RIGHT) 1922 while(cont && (butt = rb->button_get_w_tmo(HZ/10)) != MP3ENC_SELECT)
1911 { 1923 {
1912 switch(butt) 1924 switch(butt)
1913 { 1925 {
1914 case BUTTON_OFF: cont = 0; break; 1926 case MP3ENC_DONE: cont = 0; break;
1915 case BUTTON_UP: if(sfil > 0 ) sfil--; break; 1927 case MP3ENC_PREV: if(sfil > 0 ) sfil--; break;
1916 case BUTTON_DOWN: if(sfil < nfil) sfil++; break; 1928 case MP3ENC_NEXT: if(sfil < nfil) sfil++; break;
1917 } 1929 }
1918 1930
1919 rb->lcd_clear_display(); 1931 rb->lcd_clear_display();
@@ -1930,13 +1942,13 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1930 nrat = 9; 1942 nrat = 9;
1931 srat = 4; /* set 128kBit as default */ 1943 srat = 4; /* set 128kBit as default */
1932 1944
1933 while(cont && (butt = rb->button_get_w_tmo(HZ/10)) != BUTTON_RIGHT) 1945 while(cont && (butt = rb->button_get_w_tmo(HZ/10)) != MP3ENC_SELECT)
1934 { 1946 {
1935 switch(butt) 1947 switch(butt)
1936 { 1948 {
1937 case BUTTON_OFF: cont = 0; break; 1949 case MP3ENC_DONE: cont = 0; break;
1938 case BUTTON_UP: if(srat > 0 ) srat--; break; 1950 case MP3ENC_PREV: if(srat > 0 ) srat--; break;
1939 case BUTTON_DOWN: if(srat < nrat) srat++; break; 1951 case MP3ENC_NEXT: if(srat < nrat) srat++; break;
1940 } 1952 }
1941 1953
1942 rb->lcd_clear_display(); 1954 rb->lcd_clear_display();
@@ -1952,7 +1964,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1952 1964
1953 config.infile = filename[sfil]; 1965 config.infile = filename[sfil];
1954 config.outfile = get_mp3_filename(filename[sfil]); 1966 config.outfile = get_mp3_filename(filename[sfil]);
1955#ifdef SIMULATOR 1967#ifdef ROCKBOX_LITTLE_ENDIAN
1956 config.byte_order = order_littleEndian; 1968 config.byte_order = order_littleEndian;
1957#else 1969#else
1958 config.byte_order = order_bigEndian; 1970 config.byte_order = order_bigEndian;
@@ -2001,7 +2013,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
2001 } 2013 }
2002 2014
2003 rb->lcd_setfont(FONT_UI); 2015 rb->lcd_setfont(FONT_UI);
2004#ifndef SIMULATOR 2016#ifdef HAVE_ADJUSTABLE_CPU_FREQ
2005 rb->cpu_boost(false); 2017 rb->cpu_boost(false);
2006#endif 2018#endif
2007 return PLUGIN_OK; 2019 return PLUGIN_OK;