]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/vgmsnd/vgmSnd.h
wwww major changes~
[16.git] / src / lib / vgmsnd / vgmSnd.h
diff --git a/src/lib/vgmsnd/vgmSnd.h b/src/lib/vgmsnd/vgmSnd.h
new file mode 100755 (executable)
index 0000000..a519bc4
--- /dev/null
@@ -0,0 +1,83 @@
+#ifndef __VGMSNDDRV_H__\r
+#define __VGMSNDDRV_H__\r
+\r
+#ifdef __cplusplus\r
+extern "C"\r
+{\r
+#endif\r
+\r
+#include "src/lib/vgmsnd/stdtype.h"\r
+\r
+typedef struct _vgm_file_header\r
+{\r
+       sdword fccVGM;\r
+       UINT32 lngEOFOffset;\r
+       UINT32 lngVersion;\r
+       UINT32 lngHzPSG;\r
+       UINT32 lngHzYM2413;\r
+       UINT32 lngGD3Offset;\r
+       UINT32 lngTotalSamples;\r
+       UINT32 lngLoopOffset;\r
+       UINT32 lngLoopSamples;\r
+       UINT32 lngRate;\r
+       UINT8 bytPSGCfg[4];\r
+       UINT32 lngHzYM2612;\r
+       UINT32 lngHzYM2151;\r
+       UINT32 lngDataOffset;\r
+       UINT32 lngHzSPCM;\r
+       UINT32 lngSPCMIntf;\r
+       UINT32 lngHzRF5C68;\r
+       UINT32 lngHzYM2203;\r
+       UINT32 lngHzYM2608;\r
+       UINT32 lngHzYM2610;\r
+       UINT32 lngHzYM3812;\r
+       UINT32 lngHzYM3526;\r
+       UINT32 lngHzY8950;\r
+       UINT32 lngHzYMF262;\r
+       UINT32 lngHzYMF278B;\r
+       UINT32 lngHzYMF271;\r
+       UINT32 lngHzYMZ280B;\r
+       UINT32 lngHzRF5C164;\r
+       UINT32 lngHzPWM;\r
+       UINT32 lngHzAY8910;\r
+       UINT8 bytAYCfg[4];\r
+       UINT8 bytVolumeModifier;\r
+       UINT8 bytReserved2;\r
+       INT8 bytLoopBase;\r
+       UINT8 bytLoopModifier;\r
+} VGM_HEADER;\r
+\r
+typedef struct _vgm_file\r
+{\r
+       UINT32 dataLen;\r
+       UINT8* data;\r
+       VGM_HEADER header;\r
+} VGM_FILE;\r
+\r
+\r
+UINT8 OpenVGMFile(const char* FileName, VGM_FILE* vgmFile);\r
+void FreeVGMFile(VGM_FILE* vgmFile);\r
+\r
+void InitEngine(void);\r
+void DeinitEngine(void);\r
+\r
+UINT8 PlayMusic(VGM_FILE* vgmFile);\r
+UINT8 PlaySFX(VGM_FILE* vgmFile, UINT8 sfxChnID);\r
+UINT8 StopMusic(void);\r
+UINT8 StopSFX(UINT8 sfxChnID);\r
+UINT8 PauseMusic(void);\r
+UINT8 ResumeMusic(void);\r
+\r
+void UpdateSoundEngine(void);\r
+\r
+\r
+// Functions that must be supplied by external library:\r
+//extern void OPL2_Write(UINT8 reg, UINT8 data);\r
+//extern UINT8 OPL2_ReadStatus(void);\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif // ! __VGMSNDDRV_H__\r