--- libgig/trunk/src/DLS.h 2006/10/24 19:32:47 928 +++ libgig/trunk/src/DLS.h 2007/03/18 07:13:06 1102 @@ -1,8 +1,8 @@ /*************************************************************************** * * - * libgig - C++ cross-platform Gigasampler format file loader library * + * libgig - C++ cross-platform Gigasampler format file access library * * * - * Copyright (C) 2003-2005 by Christian Schoenebeck * + * Copyright (C) 2003-2007 by Christian Schoenebeck * * * * * * This library is free software; you can redistribute it and/or modify * @@ -112,7 +112,7 @@ # define CHUNK_ID_ART2 0x32747261 #endif // WORDS_BIGENDIAN -#define WAVE_FORMAT_PCM 0x0001 +#define DLS_WAVE_FORMAT_PCM 0x0001 //TODO: no support for conditional chunks yet @@ -324,8 +324,8 @@ private: RIFF::List* pResourceListChunk; - void LoadString(uint32_t ChunkID, RIFF::List* lstINFO, String& s); - void SaveString(uint32_t ChunkID, RIFF::List* lstINFO, const String& s, const String& sDefault, int size); + static void LoadString(uint32_t ChunkID, RIFF::List* lstINFO, String& s); + static void SaveString(uint32_t ChunkID, RIFF::List* lstINFO, const String& s, const String& sDefault, bool bUseFixedLengthStrings, int size); }; /** Abstract base class which encapsulates data structures which all DLS resources are able to provide. */ @@ -374,7 +374,7 @@ */ class Sample : public Resource { public: - uint16_t FormatTag; ///< Format ID of the waveform data (should be WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if Sample was created with Instrument::AddSample()). + uint16_t FormatTag; ///< Format ID of the waveform data (should be DLS_WAVE_FORMAT_PCM for DLS1 compliant files, this is also the default value if Sample was created with Instrument::AddSample()). uint16_t Channels; ///< Number of channels represented in the waveform data, e.g. 1 for mono, 2 for stereo (defaults to 1=mono if Sample was created with Instrument::AddSample() previously). uint32_t SamplesPerSecond; ///< Sampling rate at which each channel should be played (defaults to 44100 if Sample was created with Instrument::AddSample() previously). uint32_t AverageBytesPerSecond; ///< The average number of bytes per second at which the waveform data should be transferred (Playback software can estimate the buffer size using this value). @@ -444,6 +444,7 @@ Region* GetFirstRegion(); Region* GetNextRegion(); Region* AddRegion(); + void MoveRegion(Region* pSrc, Region* pDst); void DeleteRegion(Region* pRegion); virtual void UpdateChunks(); protected: @@ -508,7 +509,13 @@ void __UpdateWavePoolTable(); }; - /** Will be thrown whenever a DLS specific error occurs while trying to access a DLS File. */ + /** + * Will be thrown whenever a DLS specific error occurs while trying to + * access a DLS File. Note: In your application you should better catch + * for RIFF::Exception rather than this one, except you explicitly want + * to catch and handle DLS::Exception and RIFF::Exception independently, + * which usually shouldn't be necessary though. + */ class Exception : public RIFF::Exception { public: Exception(String Message);