224 |
|
|
225 |
/** Defines Sample Loop Points. */ |
/** Defines Sample Loop Points. */ |
226 |
struct sample_loop_t { |
struct sample_loop_t { |
227 |
uint32_t Size; |
uint32_t Size; ///< For internal usage only: usually reflects exactly @c sizeof(sample_loop_t), otherwise if the value is larger then the DLS format was extended! |
228 |
uint32_t LoopType; |
uint32_t LoopType; ///< Defines how the waveform samples will be looped (appropriate loop types for the gig format are defined by gig::loop_type_t). |
229 |
uint32_t LoopStart; |
uint32_t LoopStart; ///< The start value specifies the offset (in sample points) in the waveform data of the first sample point to be played in the loop. |
230 |
uint32_t LoopLength; |
uint32_t LoopLength; ///< Length of the looping area (in sample points). |
231 |
}; |
}; |
232 |
|
|
233 |
// just symbol prototyping |
// just symbol prototyping |
316 |
String SourceForm; ///< <ISRF-ck>. Identifies the original form of the material that was digitized, such as record, sampling CD, TV sound track. This is not neccessarily the same as <i>Medium</i>. |
String SourceForm; ///< <ISRF-ck>. Identifies the original form of the material that was digitized, such as record, sampling CD, TV sound track. This is not neccessarily the same as <i>Medium</i>. |
317 |
String Commissioned; ///< <ICMS-ck>. Lists the name of the person or organization that commissioned the subject of the file, e.g., Pope Julian II. |
String Commissioned; ///< <ICMS-ck>. Lists the name of the person or organization that commissioned the subject of the file, e.g., Pope Julian II. |
318 |
String Subject; ///< <ISBJ-ck>. Describes the contents of the file. |
String Subject; ///< <ISBJ-ck>. Describes the contents of the file. |
|
bool UseFixedLengthStrings; ///< Set this to true if the info strings should be stored with a fixed length format. This is used for gig files, not for ordinary DLS files. |
|
319 |
|
|
320 |
|
struct FixedStringLength { |
321 |
|
uint32_t chunkId; |
322 |
|
int length; |
323 |
|
}; |
324 |
|
const FixedStringLength* FixedStringLengths; ///< List of IDs and string lengths for strings that should be stored in a fixed length format. This is used for gig files, not for ordinary DLS files. |
325 |
Info(RIFF::List* list); |
Info(RIFF::List* list); |
326 |
virtual ~Info(); |
virtual ~Info(); |
327 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
329 |
RIFF::List* pResourceListChunk; |
RIFF::List* pResourceListChunk; |
330 |
|
|
331 |
static void LoadString(uint32_t ChunkID, RIFF::List* lstINFO, String& s); |
static void LoadString(uint32_t ChunkID, RIFF::List* lstINFO, String& s); |
332 |
static void SaveString(uint32_t ChunkID, RIFF::List* lstINFO, const String& s, const String& sDefault, bool bUseFixedLengthStrings, int size); |
void SaveString(uint32_t ChunkID, RIFF::List* lstINFO, const String& s, const String& sDefault); |
333 |
}; |
}; |
334 |
|
|
335 |
/** Abstract base class which encapsulates data structures which all DLS resources are able to provide. */ |
/** Abstract base class which encapsulates data structures which all DLS resources are able to provide. */ |
359 |
uint32_t SampleLoops; ///< Reflects the number of sample loops. |
uint32_t SampleLoops; ///< Reflects the number of sample loops. |
360 |
sample_loop_t* pSampleLoops; ///< Points to the beginning of a sample loop array, or is NULL if there are no loops defined. |
sample_loop_t* pSampleLoops; ///< Points to the beginning of a sample loop array, or is NULL if there are no loops defined. |
361 |
|
|
362 |
|
void AddSampleLoop(sample_loop_t* pLoopDef); |
363 |
|
void DeleteSampleLoop(sample_loop_t* pLoopDef); |
364 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
365 |
protected: |
protected: |
366 |
RIFF::List* pParentList; |
RIFF::List* pParentList; |