db: Override cycle multiplier for Colin McRae PAL
[pcsx_rearmed.git] / plugins / dfsound / spu.h
1 /***************************************************************************\r
2                             spu.h  -  description\r
3                              -------------------\r
4     begin                : Wed May 15 2002\r
5     copyright            : (C) 2002 by Pete Bernert\r
6     email                : BlackDove@addcom.de\r
7  ***************************************************************************/\r
8 /***************************************************************************\r
9  *                                                                         *\r
10  *   This program is free software; you can redistribute it and/or modify  *\r
11  *   it under the terms of the GNU General Public License as published by  *\r
12  *   the Free Software Foundation; either version 2 of the License, or     *\r
13  *   (at your option) any later version. See also the license.txt file for *\r
14  *   additional informations.                                              *\r
15  *                                                                         *\r
16  ***************************************************************************/\r
17 \r
18 #ifndef __P_SPU_H__\r
19 #define __P_SPU_H__\r
20 \r
21 struct SPUFreeze;\r
22 struct xa_decode;\r
23 \r
24 long CALLBACK SPUopen(void);\r
25 long CALLBACK SPUinit(void);\r
26 long CALLBACK SPUshutdown(void);\r
27 long CALLBACK SPUclose(void);\r
28 void CALLBACK SPUwriteRegister(unsigned long, unsigned short, unsigned int);\r
29 unsigned short CALLBACK SPUreadRegister(unsigned long, unsigned int);\r
30 void CALLBACK SPUregisterCallback(void (*cb)(int));\r
31 void CALLBACK SPUregisterScheduleCb(void (*cb)(unsigned int));\r
32 long CALLBACK SPUfreeze(unsigned int, struct SPUFreeze *, unsigned int);\r
33 void CALLBACK SPUasync(unsigned int, unsigned int);\r
34 \r
35 void CALLBACK SPUreadDMAMem(unsigned short * pusPSXMem,int iSize,unsigned int cycles);\r
36 void CALLBACK SPUwriteDMAMem(unsigned short * pusPSXMem,int iSize,unsigned int cycles);\r
37 \r
38 void CALLBACK SPUplayADPCMchannel(struct xa_decode *xap, unsigned int cycle, int is_start);\r
39 int  CALLBACK SPUplayCDDAchannel(short *pcm, int bytes, unsigned int cycle, int is_start);\r
40 void CALLBACK SPUsetCDvol(unsigned char ll, unsigned char lr,\r
41                 unsigned char rl, unsigned char rr, unsigned int cycle);\r
42 \r
43 // internal\r
44 void ClearWorkingState(void);\r
45 \r
46 #endif /* __P_SPU_H__ */\r