461 |
DimensionRegion(Region* pParent, RIFF::List* _3ewl); |
DimensionRegion(Region* pParent, RIFF::List* _3ewl); |
462 |
DimensionRegion(RIFF::List* _3ewl, const DimensionRegion& src); |
DimensionRegion(RIFF::List* _3ewl, const DimensionRegion& src); |
463 |
~DimensionRegion(); |
~DimensionRegion(); |
464 |
|
void CopyAssign(const DimensionRegion* orig, const std::map<Sample*,Sample*>* mSamples); |
465 |
friend class Region; |
friend class Region; |
466 |
private: |
private: |
467 |
typedef enum { ///< Used to decode attenuation, EG1 and EG2 controller |
typedef enum { ///< Used to decode attenuation, EG1 and EG2 controller |
558 |
void ReleaseSampleData(); |
void ReleaseSampleData(); |
559 |
void Resize(int iNewSize); |
void Resize(int iNewSize); |
560 |
unsigned long SetPos(unsigned long SampleCount, RIFF::stream_whence_t Whence = RIFF::stream_start); |
unsigned long SetPos(unsigned long SampleCount, RIFF::stream_whence_t Whence = RIFF::stream_start); |
561 |
unsigned long GetPos(); |
unsigned long GetPos() const; |
562 |
unsigned long Read(void* pBuffer, unsigned long SampleCount, buffer_t* pExternalDecompressionBuffer = NULL); |
unsigned long Read(void* pBuffer, unsigned long SampleCount, buffer_t* pExternalDecompressionBuffer = NULL); |
563 |
unsigned long ReadAndLoop(void* pBuffer, unsigned long SampleCount, playback_state_t* pPlaybackState, DimensionRegion* pDimRgn, buffer_t* pExternalDecompressionBuffer = NULL); |
unsigned long ReadAndLoop(void* pBuffer, unsigned long SampleCount, playback_state_t* pPlaybackState, DimensionRegion* pDimRgn, buffer_t* pExternalDecompressionBuffer = NULL); |
564 |
unsigned long Write(void* pBuffer, unsigned long SampleCount); |
unsigned long Write(void* pBuffer, unsigned long SampleCount); |
565 |
Group* GetGroup() const; |
Group* GetGroup() const; |
566 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
567 |
|
void CopyAssignMeta(const Sample* orig); |
568 |
|
void CopyAssignWave(const Sample* orig); |
569 |
protected: |
protected: |
570 |
static unsigned int Instances; ///< Number of instances of class Sample. |
static unsigned int Instances; ///< Number of instances of class Sample. |
571 |
static buffer_t InternalDecompressionBuffer; ///< Buffer used for decompression as well as for truncation of 24 Bit -> 16 Bit samples. |
static buffer_t InternalDecompressionBuffer; ///< Buffer used for decompression as well as for truncation of 24 Bit -> 16 Bit samples. |
638 |
void LoadDimensionRegions(RIFF::List* rgn); |
void LoadDimensionRegions(RIFF::List* rgn); |
639 |
void UpdateVelocityTable(); |
void UpdateVelocityTable(); |
640 |
Sample* GetSampleFromWavePool(unsigned int WavePoolTableIndex, progress_t* pProgress = NULL); |
Sample* GetSampleFromWavePool(unsigned int WavePoolTableIndex, progress_t* pProgress = NULL); |
641 |
|
void CopyAssign(const Region* orig, const std::map<Sample*,Sample*>* mSamples); |
642 |
~Region(); |
~Region(); |
643 |
friend class Instrument; |
friend class Instrument; |
644 |
}; |
}; |
787 |
|
|
788 |
Instrument(File* pFile, RIFF::List* insList, progress_t* pProgress = NULL); |
Instrument(File* pFile, RIFF::List* insList, progress_t* pProgress = NULL); |
789 |
~Instrument(); |
~Instrument(); |
790 |
|
void CopyAssign(const Instrument* orig, const std::map<Sample*,Sample*>* mSamples); |
791 |
void UpdateRegionKeyTable(); |
void UpdateRegionKeyTable(); |
792 |
friend class File; |
friend class File; |
793 |
friend class Region; // so Region can call UpdateRegionKeyTable() |
friend class Region; // so Region can call UpdateRegionKeyTable() |
846 |
// derived methods from DLS::File |
// derived methods from DLS::File |
847 |
using DLS::File::Save; |
using DLS::File::Save; |
848 |
using DLS::File::GetFileName; |
using DLS::File::GetFileName; |
849 |
|
using DLS::File::SetFileName; |
850 |
// overridden methods |
// overridden methods |
851 |
File(); |
File(); |
852 |
File(RIFF::File* pRIFF); |
File(RIFF::File* pRIFF); |
853 |
Sample* GetFirstSample(progress_t* pProgress = NULL); ///< Returns a pointer to the first <i>Sample</i> object of the file, <i>NULL</i> otherwise. |
Sample* GetFirstSample(progress_t* pProgress = NULL); ///< Returns a pointer to the first <i>Sample</i> object of the file, <i>NULL</i> otherwise. |
854 |
Sample* GetNextSample(); ///< Returns a pointer to the next <i>Sample</i> object of the file, <i>NULL</i> otherwise. |
Sample* GetNextSample(); ///< Returns a pointer to the next <i>Sample</i> object of the file, <i>NULL</i> otherwise. |
855 |
|
Sample* GetSample(uint index); |
856 |
Sample* AddSample(); |
Sample* AddSample(); |
857 |
void DeleteSample(Sample* pSample); |
void DeleteSample(Sample* pSample); |
858 |
Instrument* GetFirstInstrument(); ///< Returns a pointer to the first <i>Instrument</i> object of the file, <i>NULL</i> otherwise. |
Instrument* GetFirstInstrument(); ///< Returns a pointer to the first <i>Instrument</i> object of the file, <i>NULL</i> otherwise. |
869 |
void DeleteGroupOnly(Group* pGroup); |
void DeleteGroupOnly(Group* pGroup); |
870 |
void SetAutoLoad(bool b); |
void SetAutoLoad(bool b); |
871 |
bool GetAutoLoad(); |
bool GetAutoLoad(); |
872 |
|
void AddContentOf(File* pFile); |
873 |
virtual ~File(); |
virtual ~File(); |
874 |
virtual void UpdateChunks(); |
virtual void UpdateChunks(); |
875 |
protected: |
protected: |