--- libgig/trunk/src/gig.h 2016/05/18 18:04:49 2922 +++ libgig/trunk/src/gig.h 2016/09/20 22:13:37 2985 @@ -671,6 +671,7 @@ virtual void UpdateChunks(progress_t* pProgress); void CopyAssignMeta(const Sample* orig); void CopyAssignWave(const Sample* orig); + bool VerifyWaveData(); protected: static size_t Instances; ///< Number of instances of class Sample. static buffer_t InternalDecompressionBuffer; ///< Buffer used for decompression as well as for truncation of 24 Bit -> 16 Bit samples. @@ -689,6 +690,7 @@ Sample(File* pFile, RIFF::List* waveList, file_offset_t WavePoolOffset, unsigned long fileNo = 0); ~Sample(); + uint32_t CalculateWaveDataChecksum(); // Guess size (in bytes) of a compressed sample inline file_offset_t GuessSize(file_offset_t samples) { @@ -1267,6 +1269,10 @@ virtual void LoadInstruments(progress_t* pProgress); virtual void LoadScriptGroups(); void SetSampleChecksum(Sample* pSample, uint32_t crc); + uint32_t GetSampleChecksum(Sample* pSample); + bool VerifySampleChecksumTable(); + bool RebuildSampleChecksumTable(); + int GetWaveTableIndexOf(gig::Sample* pSample); friend class Region; friend class Sample; friend class Instrument;