/[svn]/libgig/trunk/src/DLS.h
ViewVC logotype

Diff of /libgig/trunk/src/DLS.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2543 by schoenebeck, Sat May 10 02:06:58 2014 UTC revision 2682 by schoenebeck, Mon Dec 29 16:25:51 2014 UTC
# Line 104  Line 104 
104  namespace DLS {  namespace DLS {
105    
106      typedef std::string String;      typedef std::string String;
107        typedef RIFF::progress_t progress_t;
108    
109      /** Quadtuple version number ("major.minor.release.build"). */      /** Quadtuple version number ("major.minor.release.build"). */
110      struct version_t {      struct version_t {
# Line 199  namespace DLS { Line 200  namespace DLS {
200          conn_trn_convex  = 0x0002,          conn_trn_convex  = 0x0002,
201          conn_trn_switch  = 0x0003          conn_trn_switch  = 0x0003
202      } conn_trn_t;      } conn_trn_t;
203        
204      /** Lower and upper limit of a range. */      /** Lower and upper limit of a range. */
205      struct range_t {      struct range_t {
206          uint16_t low;  ///< Low value of range.          uint16_t low;  ///< Low value of range.
# Line 214  namespace DLS { Line 215  namespace DLS {
215          inline bool operator== (const range_t& other) const {          inline bool operator== (const range_t& other) const {
216              return low == other.low && high == other.high;              return low == other.low && high == other.high;
217          }          }
218    
219            inline bool overlaps(uint16_t scalar) const {
220                return low <= scalar && scalar <= high;
221            }
222    
223            inline bool overlaps(const range_t& other) const {
224                return overlaps(other.low) || overlaps(other.high) ||
225                       other.overlaps(low) || other.overlaps(high);
226            }
227      };      };
228    
229      /** Defines Sample Loop Points. */      /** Defines Sample Loop Points. */
# Line 267  namespace DLS { Line 277  namespace DLS {
277    
278              Articulation(RIFF::Chunk* artl);              Articulation(RIFF::Chunk* artl);
279              virtual ~Articulation();              virtual ~Articulation();
280              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
281          protected:          protected:
282              RIFF::Chunk* pArticulationCk;              RIFF::Chunk* pArticulationCk;
283              uint32_t     HeaderSize;              uint32_t     HeaderSize;
# Line 279  namespace DLS { Line 289  namespace DLS {
289              Articulator(RIFF::List* ParentList);              Articulator(RIFF::List* ParentList);
290              Articulation* GetFirstArticulation();              Articulation* GetFirstArticulation();
291              Articulation* GetNextArticulation();              Articulation* GetNextArticulation();
292              virtual void  UpdateChunks();              virtual void  UpdateChunks(progress_t* pProgress);
293              virtual void  CopyAssign(const Articulator* orig);              virtual void  CopyAssign(const Articulator* orig);
294          protected:          protected:
295              typedef std::list<Articulation*> ArticulationList;              typedef std::list<Articulation*> ArticulationList;
# Line 321  namespace DLS { Line 331  namespace DLS {
331              Info(RIFF::List* list);              Info(RIFF::List* list);
332              void SetFixedStringLengths(const string_length_t* lengths);              void SetFixedStringLengths(const string_length_t* lengths);
333              virtual ~Info();              virtual ~Info();
334              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
335              virtual void CopyAssign(const Info* orig);              virtual void CopyAssign(const Info* orig);
336          private:          private:
337              RIFF::List*            pResourceListChunk;              RIFF::List*            pResourceListChunk;
# Line 339  namespace DLS { Line 349  namespace DLS {
349    
350              Resource* GetParent() { return pParent; }              Resource* GetParent() { return pParent; }
351              const Resource* GetParent() const { return pParent; }              const Resource* GetParent() const { return pParent; }
352              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
353              void GenerateDLSID();              void GenerateDLSID();
354              virtual void CopyAssign(const Resource* orig);              virtual void CopyAssign(const Resource* orig);
355          protected:          protected:
# Line 364  namespace DLS { Line 374  namespace DLS {
374              void AddSampleLoop(sample_loop_t* pLoopDef);              void AddSampleLoop(sample_loop_t* pLoopDef);
375              void DeleteSampleLoop(sample_loop_t* pLoopDef);              void DeleteSampleLoop(sample_loop_t* pLoopDef);
376              virtual void SetGain(int32_t gain);              virtual void SetGain(int32_t gain);
377              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
378              virtual void CopyAssign(const Sampler* orig);              virtual void CopyAssign(const Sampler* orig);
379          protected:          protected:
380              RIFF::List*    pParentList;              RIFF::List*    pParentList;
# Line 400  namespace DLS { Line 410  namespace DLS {
410              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);
411              unsigned long Read(void* pBuffer, unsigned long SampleCount);              unsigned long Read(void* pBuffer, unsigned long SampleCount);
412              unsigned long Write(void* pBuffer, unsigned long SampleCount);              unsigned long Write(void* pBuffer, unsigned long SampleCount);
413              virtual void  UpdateChunks();              virtual void  UpdateChunks(progress_t* pProgress);
414              virtual void  CopyAssign(const Sample* orig);              virtual void  CopyAssign(const Sample* orig);
415          protected:          protected:
416              RIFF::List*   pWaveList;              RIFF::List*   pWaveList;
# Line 431  namespace DLS { Line 441  namespace DLS {
441              Sample*     GetSample();              Sample*     GetSample();
442              void        SetSample(Sample* pSample);              void        SetSample(Sample* pSample);
443              virtual void SetKeyRange(uint16_t Low, uint16_t High);              virtual void SetKeyRange(uint16_t Low, uint16_t High);
444              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
445              virtual void CopyAssign(const Region* orig);              virtual void CopyAssign(const Region* orig);
446          protected:          protected:
447              RIFF::List* pCkRegion;              RIFF::List* pCkRegion;
# Line 459  namespace DLS { Line 469  namespace DLS {
469              Region*  GetNextRegion();              Region*  GetNextRegion();
470              Region*  AddRegion();              Region*  AddRegion();
471              void     DeleteRegion(Region* pRegion);              void     DeleteRegion(Region* pRegion);
472              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
473              virtual void CopyAssign(const Instrument* orig);              virtual void CopyAssign(const Instrument* orig);
474          protected:          protected:
475              typedef std::list<Region*> RegionList;              typedef std::list<Region*> RegionList;
# Line 501  namespace DLS { Line 511  namespace DLS {
511              Instrument* AddInstrument();              Instrument* AddInstrument();
512              void        DeleteInstrument(Instrument* pInstrument);              void        DeleteInstrument(Instrument* pInstrument);
513              RIFF::File* GetExtensionFile(int index);              RIFF::File* GetExtensionFile(int index);
514              virtual void UpdateChunks();              virtual void UpdateChunks(progress_t* pProgress);
515              virtual void Save(const String& Path);              virtual void Save(const String& Path, progress_t* pProgress = NULL);
516              virtual void Save();              virtual void Save(progress_t* pProgress = NULL);
517              virtual ~File();              virtual ~File();
518          protected:          protected:
519              typedef std::list<Sample*>     SampleList;              typedef std::list<Sample*>     SampleList;
# Line 523  namespace DLS { Line 533  namespace DLS {
533    
534              virtual void LoadSamples();              virtual void LoadSamples();
535              virtual void LoadInstruments();              virtual void LoadInstruments();
536                virtual void UpdateFileOffsets();
537              void __ensureMandatoryChunksExist();              void __ensureMandatoryChunksExist();
538              friend class Region; // Region has to look in the wave pool table to get its sample              friend class Region; // Region has to look in the wave pool table to get its sample
539          private:          private:

Legend:
Removed from v.2543  
changed lines
  Added in v.2682

  ViewVC Help
Powered by ViewVC