// num of channels\r
#define MAXCHAN 24\r
\r
-// ~ FRAG_MSECS ms of data\r
// note: must be even due to the way reverb works now\r
-#define FRAG_MSECS 2\r
-#define NSSIZE ((44100 * FRAG_MSECS / 1000 + 1) & ~1)\r
+#define NSSIZE ((44100 / 50 + 16) & ~1)\r
\r
///////////////////////////////////////////////////////////\r
// struct defines\r
int iSBPos; // mixing stuff\r
int spos;\r
int sinc;\r
+ int sinc_inv;\r
\r
unsigned char * pCurr; // current pos in sound mem\r
unsigned char * pLoop; // loop ptr in sound mem\r
extern int iUseInterpolation;\r
// MISC\r
\r
-extern int had_dma;\r
extern int decode_pos;\r
\r
extern SPUCHAN s_chan[];\r
\r
extern int SSumR[];\r
extern int SSumL[];\r
-extern int iCycle;\r
extern short * pS;\r
\r
extern void (CALLBACK *cddavCallback)(unsigned short,unsigned short);\r
\r
+extern unsigned int cycles_played;\r
+\r
+void do_samples(unsigned int cycles_to);\r
+void schedule_next_irq(void);\r
+\r
+#define do_samples_if_needed(c) \\r
+ do { \\r
+ if ((int)((c) - cycles_played) >= 16 * 768) \\r
+ do_samples(c); \\r
+ } while (0)\r
+\r
#endif\r
\r
///////////////////////////////////////////////////////////\r