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

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

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

revision 1180 by persson, Sat May 12 12:39:25 2007 UTC revision 1199 by persson, Sun May 20 10:11:39 2007 UTC
# Line 38  Line 38 
38  # define CHUNK_ID_3EWG  0x33657767  # define CHUNK_ID_3EWG  0x33657767
39  # define CHUNK_ID_EWAV  0x65776176  # define CHUNK_ID_EWAV  0x65776176
40  # define CHUNK_ID_3GNM  0x33676E6D  # define CHUNK_ID_3GNM  0x33676E6D
41    # define CHUNK_ID_EINF  0x65696E66
42    # define CHUNK_ID_3CRC  0x33637263
43  #else  // little endian  #else  // little endian
44  # define LIST_TYPE_3PRG 0x67727033  # define LIST_TYPE_3PRG 0x67727033
45  # define LIST_TYPE_3EWL 0x6C776533  # define LIST_TYPE_3EWL 0x6C776533
# Line 50  Line 52 
52  # define CHUNK_ID_3EWG  0x67776533  # define CHUNK_ID_3EWG  0x67776533
53  # define CHUNK_ID_EWAV  0x76617765  # define CHUNK_ID_EWAV  0x76617765
54  # define CHUNK_ID_3GNM  0x6D6E6733  # define CHUNK_ID_3GNM  0x6D6E6733
55    # define CHUNK_ID_EINF  0x666E6965
56    # define CHUNK_ID_3CRC  0x63726333
57  #endif // WORDS_BIGENDIAN  #endif // WORDS_BIGENDIAN
58    
59  /** Gigasampler specific classes and definitions */  /** Gigasampler specific classes and definitions */
# Line 319  namespace gig { Line 323  namespace gig {
323          progress_t();          progress_t();
324      };      };
325    
326        class CRC {
327        private:
328            uint32_t value;
329            static const uint32_t* table;
330            static uint32_t* initTable();
331        public:
332            CRC() {
333                reset();
334            }
335            void reset() {
336                value = 0xffffffff;
337            }
338            void update(unsigned char* buf, int len) {
339                for (int i = 0 ; i < len ; i++) {
340                    value = table[(value ^ buf[i]) & 0xff] ^ (value >> 8);
341                }
342            }
343            uint32_t getValue() {
344                return value ^ 0xffffffff;
345            }
346        };
347    
348      // just symbol prototyping      // just symbol prototyping
349      class File;      class File;
350      class Instrument;      class Instrument;
# Line 559  namespace gig { Line 585  namespace gig {
585              unsigned long        FileNo;                  ///< File number (> 0 when sample is stored in an extension file, 0 when it's in the gig)              unsigned long        FileNo;                  ///< File number (> 0 when sample is stored in an extension file, 0 when it's in the gig)
586              RIFF::Chunk*         pCk3gix;              RIFF::Chunk*         pCk3gix;
587              RIFF::Chunk*         pCkSmpl;              RIFF::Chunk*         pCkSmpl;
588                CRC                  crc;
589    
590              Sample(File* pFile, RIFF::List* waveList, unsigned long WavePoolOffset, unsigned long fileNo = 0);              Sample(File* pFile, RIFF::List* waveList, unsigned long WavePoolOffset, unsigned long fileNo = 0);
591             ~Sample();             ~Sample();
# Line 695  namespace gig { Line 722  namespace gig {
722      /** Parses Gigasampler files and provides abstract access to the data. */      /** Parses Gigasampler files and provides abstract access to the data. */
723      class File : protected DLS::File {      class File : protected DLS::File {
724          public:          public:
725                static const DLS::version_t VERSION_2;
726                static const DLS::version_t VERSION_3;
727    
728              // derived attributes from DLS::Resource              // derived attributes from DLS::Resource
729              DLS::Resource::pInfo;              DLS::Resource::pInfo;
730              DLS::Resource::pDLSID;              DLS::Resource::pDLSID;
# Line 734  namespace gig { Line 764  namespace gig {
764              // own protected methods              // own protected methods
765              virtual void LoadSamples(progress_t* pProgress);              virtual void LoadSamples(progress_t* pProgress);
766              virtual void LoadInstruments(progress_t* pProgress);              virtual void LoadInstruments(progress_t* pProgress);
767                void SetSampleChecksum(Sample* pSample, uint32_t crc);
768              friend class Region;              friend class Region;
769              friend class Sample;              friend class Sample;
770              friend class Group; // so Group can access protected member pRIFF              friend class Group; // so Group can access protected member pRIFF

Legend:
Removed from v.1180  
changed lines
  Added in v.1199

  ViewVC Help
Powered by ViewVC