annotate win95kggui/dep/ft2play/pmp_mix.h @ 133:0d8eabdd12ab default tip

create: write H:MM:SS timestamps, add option to fill with gaussian-blur instead of black many albums are longer than one hour so writing H:MM:SS is a necessity. if anything there will just be verbose info that isn't important for my use-case. however the gaussian-blur is simply broken. It works, and it plays locally just fine, but YouTube in particular elongates the video to fit the full width. I'm not entirely sure why it does this, but it makes it useless and ugly.
author Paper <paper@tflc.us>
date Sat, 03 Jan 2026 20:25:38 -0500
parents 8e4ee43d3b81
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
126
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
1 #pragma once
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
2
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
3 #include <stdint.h>
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
4 #include <stdbool.h>
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
5 #include "pmplay.h"
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
6
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
7 enum
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
8 {
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
9 Status_SetVol = 1,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
10 Status_SetPan = 2,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
11 Status_SetFrq = 4,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
12 Status_StartTone = 8,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
13 Status_StopTone = 16,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
14 Status_QuickVol = 32,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
15
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
16 SType_Fwd = 1,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
17 SType_Rev = 2,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
18 SType_RevDir = 4,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
19 SType_Off = 8,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
20 SType_16 = 16,
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
21 SType_Fadeout = 32
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
22 };
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
23
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
24 typedef struct
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
25 {
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
26 const void *SBase, *SRevBase;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
27 uint8_t SType, SPan, SVol;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
28 int32_t SLVol1, SRVol1, SLVol2, SRVol2, SLVolIP, SRVolIP, SVolIPLen;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
29 int32_t SLen, SRepS, SRepL, SPos, SMixType;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
30 uint32_t SPosDec, SFrq;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
31 } CIType;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
32
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
33 typedef struct
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
34 {
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
35 const void *SBase;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
36 uint8_t Status, SType;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
37 int16_t SVol, SPan;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
38 int32_t SFrq, SLen, SRepS, SRepL, SStartPos;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
39 } WaveChannelInfoType;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
40
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
41 extern int16_t chnReloc[32];
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
42 extern int32_t *CDA_MixBuffer;
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
43 extern CIType CI[32 * 2];
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
44
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
45 void P_SetSpeed(uint16_t bpm);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
46 void P_StartTone(sampleTyp *s, int32_t smpStartPos);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
47
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
48 // 8bb: added these two
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
49 bool mix_Init(int32_t audioBufferSize);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
50 void mix_Free(void);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
51 // -------------------
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
52
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
53 void mix_ClearChannels(void);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
54 void mix_UpdateBuffer(int16_t *buffer, int32_t numSamples);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
55
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
56 bool dump_Init(int32_t frq, int32_t amp, int16_t songPos);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
57 void dump_Close(void);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
58 bool dump_EndOfTune(int32_t endSongPos);
8e4ee43d3b81 remove submodules
Paper <mrpapersonic@gmail.com>
parents:
diff changeset
59 int32_t dump_GetFrame(int16_t *p);