]> 4ch.mooo.com Git - 16.git/blob - 16/vgmsnd/vgmSndDrv.h
e121c6802dfe04d25f1a542365edd953758188ea
[16.git] / 16 / vgmsnd / vgmSndDrv.h
1 #ifndef __VGMSNDDRV_H__\r
2 #define __VGMSNDDRV_H__\r
3 \r
4 #ifdef __cplusplus\r
5 extern "C"\r
6 {\r
7 #endif\r
8 \r
9 #include "stdtype.h"\r
10 \r
11 typedef struct _vgm_file_header\r
12 {\r
13         UINT32 fccVGM;\r
14         UINT32 lngEOFOffset;\r
15         UINT32 lngVersion;\r
16         UINT32 lngHzPSG;\r
17         UINT32 lngHzYM2413;\r
18         UINT32 lngGD3Offset;\r
19         UINT32 lngTotalSamples;\r
20         UINT32 lngLoopOffset;\r
21         UINT32 lngLoopSamples;\r
22         UINT32 lngRate;\r
23         UINT8 bytPSGCfg[4];\r
24         UINT32 lngHzYM2612;\r
25         UINT32 lngHzYM2151;\r
26         UINT32 lngDataOffset;\r
27         UINT32 lngHzSPCM;\r
28         UINT32 lngSPCMIntf;\r
29         UINT32 lngHzRF5C68;\r
30         UINT32 lngHzYM2203;\r
31         UINT32 lngHzYM2608;\r
32         UINT32 lngHzYM2610;\r
33         UINT32 lngHzYM3812;\r
34         UINT32 lngHzYM3526;\r
35         UINT32 lngHzY8950;\r
36         UINT32 lngHzYMF262;\r
37         UINT32 lngHzYMF278B;\r
38         UINT32 lngHzYMF271;\r
39         UINT32 lngHzYMZ280B;\r
40         UINT32 lngHzRF5C164;\r
41         UINT32 lngHzPWM;\r
42         UINT32 lngHzAY8910;\r
43         UINT8 bytAYCfg[4];\r
44         UINT8 bytVolumeModifier;\r
45         UINT8 bytReserved2;\r
46         INT8 bytLoopBase;\r
47         UINT8 bytLoopModifier;\r
48 } VGM_HEADER;\r
49 \r
50 typedef struct _vgm_file\r
51 {\r
52         UINT32 dataLen;\r
53         UINT8* data;\r
54         VGM_HEADER header;\r
55 } VGM_FILE;\r
56 \r
57 \r
58 UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile);\r
59 void FreeVGMFile(VGM_FILE* vgmFile);\r
60 \r
61 void InitEngine(void);\r
62 void DeinitEngine(void);\r
63 \r
64 UINT8 PlayMusic(VGM_FILE* vgmFile);\r
65 UINT8 PlaySFX(VGM_FILE* vgmFile, UINT8 sfxChnID);\r
66 UINT8 StopMusic(void);\r
67 UINT8 StopSFX(UINT8 sfxChnID);\r
68 UINT8 PauseMusic(void);\r
69 UINT8 ResumeMusic(void);\r
70 \r
71 void UpdateSoundEngine(void);\r
72 \r
73 \r
74 // Functions that must be supplied by external library:\r
75 //extern void OPL2_Write(UINT8 reg, UINT8 data);\r
76 //extern UINT8 OPL2_ReadStatus(void);\r
77 \r
78 \r
79 #ifdef __cplusplus\r
80 }\r
81 #endif\r
82 \r
83 #endif // ! __VGMSNDDRV_H__\r