notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed mp3 buffer overlapping of GP2X sound buffer
[libpicofe.git]
/
gp2x
/
940ctl.c
diff --git
a/gp2x/940ctl.c
b/gp2x/940ctl.c
index
6c52cca
..
8b3c7fe
100644
(file)
--- a/
gp2x/940ctl.c
+++ b/
gp2x/940ctl.c
@@
-29,7
+29,7
@@
static _940_data_t *shared_data = 0;
_940_ctl_t *shared_ctl = 0;
\r
unsigned char *mp3_mem = 0;
\r
\r
_940_ctl_t *shared_ctl = 0;
\r
unsigned char *mp3_mem = 0;
\r
\r
-#define MP3_SIZE_MAX (0x
1000000 - 4*640*480)
\r
+#define MP3_SIZE_MAX (0x
400000 + 0x800000) // 12M
\r
\r
int crashed_940 = 0;
\r
\r
\r
int crashed_940 = 0;
\r
\r
@@
-360,7
+360,7
@@
void sharedmem_init(void)
shared_data = (_940_data_t *) (shared_mem+0x100000);
\r
/* this area must not get buffered on either side */
\r
shared_ctl = (_940_ctl_t *) (shared_mem+0x200000);
\r
shared_data = (_940_data_t *) (shared_mem+0x100000);
\r
/* this area must not get buffered on either side */
\r
shared_ctl = (_940_ctl_t *) (shared_mem+0x200000);
\r
- mp3_mem = (unsigned char *) mmap(0, MP3_SIZE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0x
30
00000);
\r
+ mp3_mem = (unsigned char *) mmap(0, MP3_SIZE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0x
24
00000);
\r
if (mp3_mem == MAP_FAILED)
\r
{
\r
printf("mmap(mp3_mem) failed with %i\n", errno);
\r
if (mp3_mem == MAP_FAILED)
\r
{
\r
printf("mmap(mp3_mem) failed with %i\n", errno);
\r
@@
-599,7
+599,6
@@
void mp3_start_play(FILE *f, int pos) // pos is 0-1023
\r
if (loaded_mp3 != f)
\r
{
\r
\r
if (loaded_mp3 != f)
\r
{
\r
- // printf("loading mp3... "); fflush(stdout);
\r
if (PicoMessage != NULL)
\r
{
\r
fseek(f, 0, SEEK_END);
\r
if (PicoMessage != NULL)
\r
{
\r
fseek(f, 0, SEEK_END);
\r
@@
-608,8
+607,7
@@
void mp3_start_play(FILE *f, int pos) // pos is 0-1023
}
\r
fseek(f, 0, SEEK_SET);
\r
fread(mp3_mem, 1, MP3_SIZE_MAX, f);
\r
}
\r
fseek(f, 0, SEEK_SET);
\r
fread(mp3_mem, 1, MP3_SIZE_MAX, f);
\r
- // if (feof(f)) printf("done.\n");
\r
- // else printf("done. mp3 too large, not all data loaded.\n");
\r
+ if (!feof(f)) printf("Warning: mp3 was too large, not all data loaded.\n");
\r
shared_ctl->mp3_len = ftell(f);
\r
loaded_mp3 = f;
\r
\r
shared_ctl->mp3_len = ftell(f);
\r
loaded_mp3 = f;
\r
\r