comparison win95kggui/dep/ft2play/pmp_mix.h @ 126:8e4ee43d3b81

remove submodules
author Paper <mrpapersonic@gmail.com>
date Sun, 01 Oct 2023 03:48:43 -0400
parents
children
comparison
equal deleted inserted replaced
125:5cc85ef3a675 126:8e4ee43d3b81
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);