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