prepare for DivSongTimestamps

this will replace walkSong and findSongLength while
offering more features
This commit is contained in:
tildearrow 2025-10-28 05:31:50 -05:00
parent 25cb78b306
commit d3c85ae748
3 changed files with 60 additions and 5 deletions

View file

@ -603,13 +603,16 @@ class DivEngine {
DivFilePlayer* curFilePlayer;
bool filePlayerSync;
ssize_t filePlayerCueSeconds;
unsigned int filePlayerCueMillis;
unsigned int filePlayerCueMicros;
size_t totalProcessed;
unsigned int renderPoolThreads;
DivWorkPool* renderPool;
// song timestamps
DivSongTimestamps* songTimestamps;
// MIDI stuff
std::function<int(const TAMidiMessage&)> midiCallback=[](const TAMidiMessage&) -> int {return -3;};
@ -630,6 +633,8 @@ class DivEngine {
void runMidiTime(int totalCycles=1);
bool shallSwitchCores();
void syncFilePlayer();
void testFunction();
bool loadDMF(unsigned char* file, size_t len);
@ -874,6 +879,9 @@ class DivEngine {
// find song length in rows (up to specified loop point), and find length of every order
void findSongLength(int loopOrder, int loopRow, double fadeoutLen, int& rowsForFadeout, bool& hasFFxx, std::vector<int>& orders, int& length);
// calculate all song timestamps
void calcSongTimestamps();
// play (returns whether successful)
bool play();
@ -1573,7 +1581,7 @@ class DivEngine {
curFilePlayer(NULL),
filePlayerSync(true),
filePlayerCueSeconds(0),
filePlayerCueMillis(0),
filePlayerCueMicros(0),
totalProcessed(0),
renderPoolThreads(0),
renderPool(NULL),