| 
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);
 |