| 126 | 1 #pragma once | 
|  | 2 | 
|  | 3 #include <stdint.h> | 
|  | 4 #include <stdbool.h> | 
|  | 5 #include "pmplay.h" | 
|  | 6 | 
|  | 7 enum | 
|  | 8 { | 
|  | 9 	Status_SetVol = 1, | 
|  | 10 	Status_SetPan = 2, | 
|  | 11 	Status_SetFrq = 4, | 
|  | 12 	Status_StartTone = 8, | 
|  | 13 	Status_StopTone = 16, | 
|  | 14 	Status_QuickVol = 32, | 
|  | 15 | 
|  | 16 	SType_Fwd = 1, | 
|  | 17 	SType_Rev = 2, | 
|  | 18 	SType_RevDir = 4, | 
|  | 19 	SType_Off = 8, | 
|  | 20 	SType_16 = 16, | 
|  | 21 	SType_Fadeout = 32 | 
|  | 22 }; | 
|  | 23 | 
|  | 24 typedef struct | 
|  | 25 { | 
|  | 26 	const void *SBase, *SRevBase; | 
|  | 27 	uint8_t SType, SPan, SVol; | 
|  | 28 	int32_t SLVol1, SRVol1, SLVol2, SRVol2, SLVolIP, SRVolIP, SVolIPLen; | 
|  | 29 	int32_t SLen, SRepS, SRepL, SPos, SMixType; | 
|  | 30 	uint32_t SPosDec, SFrq; | 
|  | 31 } CIType; | 
|  | 32 | 
|  | 33 typedef struct | 
|  | 34 { | 
|  | 35 	const void *SBase; | 
|  | 36 	uint8_t Status, SType; | 
|  | 37 	int16_t SVol, SPan; | 
|  | 38 	int32_t SFrq, SLen, SRepS, SRepL, SStartPos; | 
|  | 39 } WaveChannelInfoType; | 
|  | 40 | 
|  | 41 extern int16_t chnReloc[32]; | 
|  | 42 extern int32_t *CDA_MixBuffer; | 
|  | 43 extern CIType CI[32 * 2]; | 
|  | 44 | 
|  | 45 void P_SetSpeed(uint16_t bpm); | 
|  | 46 void P_StartTone(sampleTyp *s, int32_t smpStartPos); | 
|  | 47 | 
|  | 48 // 8bb: added these two | 
|  | 49 bool mix_Init(int32_t audioBufferSize); | 
|  | 50 void mix_Free(void); | 
|  | 51 // ------------------- | 
|  | 52 | 
|  | 53 void mix_ClearChannels(void); | 
|  | 54 void mix_UpdateBuffer(int16_t *buffer, int32_t numSamples); | 
|  | 55 | 
|  | 56 bool dump_Init(int32_t frq, int32_t amp, int16_t songPos); | 
|  | 57 void dump_Close(void); | 
|  | 58 bool dump_EndOfTune(int32_t endSongPos); | 
|  | 59 int32_t dump_GetFrame(int16_t *p); |