dev123 - store sample loop mode

This commit is contained in:
tildearrow 2022-11-07 17:22:13 -05:00
parent 15df2ed6bf
commit 184a6bd6b2
4 changed files with 18 additions and 9 deletions

View file

@ -47,8 +47,8 @@
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
#define BUSY_END isBusy.unlock(); softLocked=false;
#define DIV_VERSION "dev122"
#define DIV_ENGINE_VERSION 122
#define DIV_VERSION "dev123"
#define DIV_ENGINE_VERSION 123
// for imports
#define DIV_VERSION_MOD 0xff01
#define DIV_VERSION_FC 0xff02

View file

@ -2383,11 +2383,15 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
if (isNewSample) {
sample->centerRate=reader.readI();
sample->depth=(DivSampleDepth)reader.readC();
if (ds.version>=123) {
sample->loopMode=(DivSampleLoopMode)reader.readC();
} else {
sample->loopMode=DIV_SAMPLE_LOOP_FORWARD;
}
// reserved
reader.readC();
reader.readC();
reader.readC();
sample->loopStart=reader.readI();
sample->loopEnd=reader.readI();
@ -4624,9 +4628,9 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) {
w->writeI(sample->rate);
w->writeI(sample->centerRate);
w->writeC(sample->depth);
w->writeC(sample->loopMode);
w->writeC(0); // reserved
w->writeC(0);
w->writeC(0);
w->writeI(sample->loop?sample->loopStart:-1);
w->writeI(sample->loop?sample->loopEnd:-1);

View file

@ -106,10 +106,9 @@ struct DivSample {
DivSampleDepth depth;
bool loop;
// valid values are:
// - 0: No loop
// - 1: Forward loop
// - 2: Backward loop
// - 3: Pingpong loop
// - 0: Forward loop
// - 1: Backward loop
// - 2: Pingpong loop
DivSampleLoopMode loopMode;
// these are the new data structures.