notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cdrom: implement xa buffering somewhat
[pcsx_rearmed.git]
/
plugins
/
dfsound
/
spu.c
diff --git
a/plugins/dfsound/spu.c
b/plugins/dfsound/spu.c
index
8edcd4d
..
f5dc406
100644
(file)
--- a/
plugins/dfsound/spu.c
+++ b/
plugins/dfsound/spu.c
@@
-203,7
+203,7
@@
static void do_irq(void)
//if(!(spu.spuStat & STAT_IRQ))
{
spu.spuStat |= STAT_IRQ; // asserted status?
//if(!(spu.spuStat & STAT_IRQ))
{
spu.spuStat |= STAT_IRQ; // asserted status?
- if(spu.irqCallback) spu.irqCallback();
+ if(spu.irqCallback) spu.irqCallback(
0
);
}
}
}
}
@@
-211,7
+211,7
@@
static int check_irq(int ch, unsigned char *pos)
{
if((spu.spuCtrl & (CTRL_ON|CTRL_IRQ)) == (CTRL_ON|CTRL_IRQ) && pos == spu.pSpuIrq)
{
{
if((spu.spuCtrl & (CTRL_ON|CTRL_IRQ)) == (CTRL_ON|CTRL_IRQ) && pos == spu.pSpuIrq)
{
- //printf("ch%d irq %04x\n", ch, pos - spu.spuMemC);
+ //printf("ch%d irq %04
z
x\n", ch, pos - spu.spuMemC);
do_irq();
return 1;
}
do_irq();
return 1;
}
@@
-1338,12
+1338,12
@@
void CALLBACK SPUupdate(void)
// XA AUDIO
// XA AUDIO
-void CALLBACK SPUplayADPCMchannel(xa_decode_t *xap, unsigned int cycle, int
is_start
)
+void CALLBACK SPUplayADPCMchannel(xa_decode_t *xap, unsigned int cycle, int
unused
)
{
if(!xap) return;
if(!xap->freq) return; // no xa freq ? bye
{
if(!xap) return;
if(!xap->freq) return; // no xa freq ? bye
- if (
is_start
)
+ if (
spu.XAPlay == spu.XAFeed
)
do_samples(cycle, 1); // catch up to prevent source underflows later
FeedXA(xap); // call main XA feeder
do_samples(cycle, 1); // catch up to prevent source underflows later
FeedXA(xap); // call main XA feeder
@@
-1351,12
+1351,12
@@
void CALLBACK SPUplayADPCMchannel(xa_decode_t *xap, unsigned int cycle, int is_s
}
// CDDA AUDIO
}
// CDDA AUDIO
-int CALLBACK SPUplayCDDAchannel(short *pcm, int nbytes, unsigned int cycle, int
is_start
)
+int CALLBACK SPUplayCDDAchannel(short *pcm, int nbytes, unsigned int cycle, int
unused
)
{
if (!pcm) return -1;
if (nbytes<=0) return -1;
{
if (!pcm) return -1;
if (nbytes<=0) return -1;
- if (
is_start
)
+ if (
spu.CDDAPlay == spu.CDDAFeed
)
do_samples(cycle, 1); // catch up to prevent source underflows later
FeedCDDA((unsigned char *)pcm, nbytes);
do_samples(cycle, 1); // catch up to prevent source underflows later
FeedCDDA((unsigned char *)pcm, nbytes);
@@
-1602,14
+1602,14
@@
long CALLBACK SPUshutdown(void)
// SETUP CALLBACKS
// this functions will be called once,
// passes a callback that should be called on SPU-IRQ/cdda volume change
// SETUP CALLBACKS
// this functions will be called once,
// passes a callback that should be called on SPU-IRQ/cdda volume change
-void CALLBACK SPUregisterCallback(void (CALLBACK *callback)(
void
))
+void CALLBACK SPUregisterCallback(void (CALLBACK *callback)(
int
))
{
spu.irqCallback = callback;
}
void CALLBACK SPUregisterCDDAVolume(void (CALLBACK *CDDAVcallback)(short, short))
{
{
spu.irqCallback = callback;
}
void CALLBACK SPUregisterCDDAVolume(void (CALLBACK *CDDAVcallback)(short, short))
{
- spu.cddavCallback = CDDAVcallback;
+
//
spu.cddavCallback = CDDAVcallback;
}
void CALLBACK SPUregisterScheduleCb(void (CALLBACK *callback)(unsigned int))
}
void CALLBACK SPUregisterScheduleCb(void (CALLBACK *callback)(unsigned int))