1 // burn_ym2608.h
2 #include "driver.h"
3 extern "C" {
4  #include "ay8910.h"
5  #include "fm.h"
6 }
7 #include "timer.h"
8 
9 extern "C" void BurnYM2608UpdateRequest();
10 
11 INT32 BurnYM2608Init(INT32 nClockFrequency, UINT8* YM2608ADPCMROM, INT32* nYM2608ADPCMSize, UINT8* YM2608IROM, FM_IRQHANDLER IRQCallback, INT32 (*StreamCallback)(INT32), double (*GetTimeCallback)(), INT32 bAddSignal);
12 INT32 BurnYM2608Init(INT32 nClockFrequency, UINT8* YM2608ADPCMROM, INT32* nYM2608ADPCMSize, UINT8* YM2608IROM, FM_IRQHANDLER IRQCallback, INT32 bAddSignal);
13 void BurnYM2608SetRoute(INT32 nIndex, double nVolume, INT32 nRouteDir);
14 void BurnYM2608Reset();
15 void BurnYM2608Exit();
16 extern void (*BurnYM2608Update)(INT16* pSoundBuf, INT32 nSegmentEnd);
17 void BurnYM2608Scan(INT32 nAction, INT32* pnMin);
18 
19 #define BURN_SND_YM2608_YM2608_ROUTE_1		0
20 #define BURN_SND_YM2608_YM2608_ROUTE_2		1
21 #define BURN_SND_YM2608_AY8910_ROUTE		2
22 
23 #define BurnYM2608SetAllRoutes(v, d)							\
24 	BurnYM2608SetRoute(BURN_SND_YM2608_YM2608_ROUTE_1, v, d);	\
25 	BurnYM2608SetRoute(BURN_SND_YM2608_YM2608_ROUTE_2, v, d);	\
26 	BurnYM2608SetRoute(BURN_SND_YM2608_AY8910_ROUTE  , v, d);
27 
28 #define BurnYM2608Read(a) YM2608Read(0, a)
29 
30 #if defined FBA_DEBUG
31 	#define BurnYM2608Write(a, n) if (!DebugSnd_YM2608Initted) bprintf(PRINT_ERROR, _T("BurnYM2608Write called without init\n")); YM2608Write(0, a, n)
32 #else
33 	#define BurnYM2608Write(a, n) YM2608Write(0, a, n)
34 #endif
35