dev123 - store sample loop mode
This commit is contained in:
parent
15df2ed6bf
commit
184a6bd6b2
|
@ -32,6 +32,8 @@ these fields are 0 in format versions prior to 100 (0.6pre1).
|
||||||
|
|
||||||
the format versions are:
|
the format versions are:
|
||||||
|
|
||||||
|
- 123: Furnace dev123
|
||||||
|
- 122: Furnace dev122
|
||||||
- 121: Furnace dev121
|
- 121: Furnace dev121
|
||||||
- 120: Furnace dev120
|
- 120: Furnace dev120
|
||||||
- 119: Furnace dev119
|
- 119: Furnace dev119
|
||||||
|
@ -1096,7 +1098,11 @@ size | description
|
||||||
| - 9: BRR (SNES)
|
| - 9: BRR (SNES)
|
||||||
| - 10: VOX
|
| - 10: VOX
|
||||||
| - 16: 16-bit PCM
|
| - 16: 16-bit PCM
|
||||||
3 | reserved
|
1 | loop direction (>=123) or reserved
|
||||||
|
| - 0: forward
|
||||||
|
| - 0: backward
|
||||||
|
| - 0: ping-pong
|
||||||
|
2 | reserved
|
||||||
4 | loop start
|
4 | loop start
|
||||||
| - -1 means no loop
|
| - -1 means no loop
|
||||||
4 | loop end
|
4 | loop end
|
||||||
|
|
|
@ -47,8 +47,8 @@
|
||||||
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
||||||
#define BUSY_END isBusy.unlock(); softLocked=false;
|
#define BUSY_END isBusy.unlock(); softLocked=false;
|
||||||
|
|
||||||
#define DIV_VERSION "dev122"
|
#define DIV_VERSION "dev123"
|
||||||
#define DIV_ENGINE_VERSION 122
|
#define DIV_ENGINE_VERSION 123
|
||||||
// for imports
|
// for imports
|
||||||
#define DIV_VERSION_MOD 0xff01
|
#define DIV_VERSION_MOD 0xff01
|
||||||
#define DIV_VERSION_FC 0xff02
|
#define DIV_VERSION_FC 0xff02
|
||||||
|
|
|
@ -2383,11 +2383,15 @@ bool DivEngine::loadFur(unsigned char* file, size_t len) {
|
||||||
if (isNewSample) {
|
if (isNewSample) {
|
||||||
sample->centerRate=reader.readI();
|
sample->centerRate=reader.readI();
|
||||||
sample->depth=(DivSampleDepth)reader.readC();
|
sample->depth=(DivSampleDepth)reader.readC();
|
||||||
|
if (ds.version>=123) {
|
||||||
|
sample->loopMode=(DivSampleLoopMode)reader.readC();
|
||||||
|
} else {
|
||||||
|
sample->loopMode=DIV_SAMPLE_LOOP_FORWARD;
|
||||||
|
}
|
||||||
|
|
||||||
// reserved
|
// reserved
|
||||||
reader.readC();
|
reader.readC();
|
||||||
reader.readC();
|
reader.readC();
|
||||||
reader.readC();
|
|
||||||
|
|
||||||
sample->loopStart=reader.readI();
|
sample->loopStart=reader.readI();
|
||||||
sample->loopEnd=reader.readI();
|
sample->loopEnd=reader.readI();
|
||||||
|
@ -4624,9 +4628,9 @@ SafeWriter* DivEngine::saveFur(bool notPrimary) {
|
||||||
w->writeI(sample->rate);
|
w->writeI(sample->rate);
|
||||||
w->writeI(sample->centerRate);
|
w->writeI(sample->centerRate);
|
||||||
w->writeC(sample->depth);
|
w->writeC(sample->depth);
|
||||||
|
w->writeC(sample->loopMode);
|
||||||
w->writeC(0); // reserved
|
w->writeC(0); // reserved
|
||||||
w->writeC(0);
|
w->writeC(0);
|
||||||
w->writeC(0);
|
|
||||||
w->writeI(sample->loop?sample->loopStart:-1);
|
w->writeI(sample->loop?sample->loopStart:-1);
|
||||||
w->writeI(sample->loop?sample->loopEnd:-1);
|
w->writeI(sample->loop?sample->loopEnd:-1);
|
||||||
|
|
||||||
|
|
|
@ -106,10 +106,9 @@ struct DivSample {
|
||||||
DivSampleDepth depth;
|
DivSampleDepth depth;
|
||||||
bool loop;
|
bool loop;
|
||||||
// valid values are:
|
// valid values are:
|
||||||
// - 0: No loop
|
// - 0: Forward loop
|
||||||
// - 1: Forward loop
|
// - 1: Backward loop
|
||||||
// - 2: Backward loop
|
// - 2: Pingpong loop
|
||||||
// - 3: Pingpong loop
|
|
||||||
DivSampleLoopMode loopMode;
|
DivSampleLoopMode loopMode;
|
||||||
|
|
||||||
// these are the new data structures.
|
// these are the new data structures.
|
||||||
|
|
Loading…
Reference in New Issue