1 #ifndef __VGMSNDDRV_H__
\r
2 #define __VGMSNDDRV_H__
\r
9 #include "src/lib/vgmsnd/stdtype.h"
\r
10 #include "src/lib/16_head.h"
\r
12 typedef struct _vgm_file_header
\r
15 dword/*32*/ lngEOFOffset;
\r
16 dword/*32*/ lngVersion;
\r
17 dword/*32*/ lngHzPSG;
\r
18 dword/*32*/ lngHzYM2413;
\r
19 dword/*32*/ lngGD3Offset;
\r
20 dword/*32*/ lngTotalSamples;
\r
21 dword/*32*/ lngLoopOffset;
\r
22 dword/*32*/ lngLoopSamples;
\r
23 dword/*32*/ lngRate;
\r
25 dword/*32*/ lngHzYM2612;
\r
26 dword/*32*/ lngHzYM2151;
\r
27 dword/*32*/ lngDataOffset;
\r
28 dword/*32*/ lngHzSPCM;
\r
29 dword/*32*/ lngSPCMIntf;
\r
30 dword/*32*/ lngHzRF5C68;
\r
31 dword/*32*/ lngHzYM2203;
\r
32 dword/*32*/ lngHzYM2608;
\r
33 dword/*32*/ lngHzYM2610;
\r
34 dword/*32*/ lngHzYM3812;
\r
35 dword/*32*/ lngHzYM3526;
\r
36 dword/*32*/ lngHzY8950;
\r
37 dword/*32*/ lngHzYMF262;
\r
38 dword/*32*/ lngHzYMF278B;
\r
39 dword/*32*/ lngHzYMF271;
\r
40 dword/*32*/ lngHzYMZ280B;
\r
41 dword/*32*/ lngHzRF5C164;
\r
42 dword/*32*/ lngHzPWM;
\r
43 dword/*32*/ lngHzAY8910;
\r
45 UINT8 bytVolumeModifier;
\r
48 UINT8 bytLoopModifier;
\r
51 typedef struct _vgm_file
\r
53 dword/*32*/ dataLen;
\r
59 UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile);
\r
60 void FreeVGMFile(VGM_FILE* vgmFile);
\r
62 void InitEngine(void);
\r
63 void DeinitEngine(void);
\r
65 UINT8 PlayMusic(VGM_FILE* vgmFile);
\r
66 UINT8 PlaySFX(VGM_FILE* vgmFile, UINT8 sfxChnID);
\r
67 UINT8 StopMusic(void);
\r
68 UINT8 StopSFX(UINT8 sfxChnID);
\r
69 UINT8 PauseMusic(void);
\r
70 UINT8 ResumeMusic(void);
\r
72 void UpdateSoundEngine(void);
\r
75 // Functions that must be supplied by external library:
\r
76 extern void OPL2_Write(UINT8 reg, UINT8 data);
\r
77 extern UINT8 OPL2_ReadStatus(void);
\r
84 #endif // ! __VGMSNDDRV_H__
\r