487 |
SamplerOptions = wsmp->ReadUint32(); |
SamplerOptions = wsmp->ReadUint32(); |
488 |
SampleLoops = wsmp->ReadUint32(); |
SampleLoops = wsmp->ReadUint32(); |
489 |
} else { // 'wsmp' chunk missing |
} else { // 'wsmp' chunk missing |
490 |
uiHeaderSize = 0; |
uiHeaderSize = 20; |
491 |
UnityNote = 60; |
UnityNote = 60; |
492 |
FineTune = 0; // +- 0 cents |
FineTune = 0; // +- 0 cents |
493 |
Gain = 0; // 0 dB |
Gain = 0; // 0 dB |
523 |
void Sampler::UpdateChunks() { |
void Sampler::UpdateChunks() { |
524 |
// make sure 'wsmp' chunk exists |
// make sure 'wsmp' chunk exists |
525 |
RIFF::Chunk* wsmp = pParentList->GetSubChunk(CHUNK_ID_WSMP); |
RIFF::Chunk* wsmp = pParentList->GetSubChunk(CHUNK_ID_WSMP); |
526 |
|
int wsmpSize = uiHeaderSize + SampleLoops * 16; |
527 |
if (!wsmp) { |
if (!wsmp) { |
528 |
uiHeaderSize = 20; |
wsmp = pParentList->AddSubChunk(CHUNK_ID_WSMP, wsmpSize); |
529 |
wsmp = pParentList->AddSubChunk(CHUNK_ID_WSMP, uiHeaderSize + SampleLoops * 16); |
} else if (wsmp->GetSize() != wsmpSize) { |
530 |
|
wsmp->Resize(wsmpSize); |
531 |
} |
} |
532 |
uint8_t* pData = (uint8_t*) wsmp->LoadChunkData(); |
uint8_t* pData = (uint8_t*) wsmp->LoadChunkData(); |
533 |
// update headers size |
// update headers size |