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