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

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

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

revision 347 by schoenebeck, Sun Jan 23 20:47:18 2005 UTC revision 355 by schoenebeck, Fri Feb 4 00:21:30 2005 UTC
# Line 541  namespace gig { Line 541  namespace gig {
541                  // local buffer reallocation - hope this won't happen                  // local buffer reallocation - hope this won't happen
542                  if (this->pDecompressionBuffer) delete[] (int8_t*) this->pDecompressionBuffer;                  if (this->pDecompressionBuffer) delete[] (int8_t*) this->pDecompressionBuffer;
543                  this->pDecompressionBuffer    = new int8_t[assumedsize << 1]; // double of current needed size                  this->pDecompressionBuffer    = new int8_t[assumedsize << 1]; // double of current needed size
544                  this->DecompressionBufferSize = assumedsize;                  this->DecompressionBufferSize = assumedsize << 1;
545              }              }
546    
547              int16_t  compressionmode, left, dleft, right, dright;              int16_t  compressionmode, left, dleft, right, dright;
# Line 681  namespace gig { Line 681  namespace gig {
681    
682      Sample::~Sample() {      Sample::~Sample() {
683          Instances--;          Instances--;
684          if (!Instances && pDecompressionBuffer) delete[] (int8_t*) pDecompressionBuffer;          if (!Instances && pDecompressionBuffer) {
685                delete[] (int8_t*) pDecompressionBuffer;
686                pDecompressionBuffer = NULL;
687            }
688          if (FrameTable) delete[] FrameTable;          if (FrameTable) delete[] FrameTable;
689          if (RAMCache.pStart) delete[] (int8_t*) RAMCache.pStart;          if (RAMCache.pStart) delete[] (int8_t*) RAMCache.pStart;
690      }      }
# Line 1194  namespace gig { Line 1197  namespace gig {
1197          for (uint i = 0; i < Dimensions; i++) {          for (uint i = 0; i < Dimensions; i++) {
1198              if (pDimensionDefinitions[i].ranges) delete[] pDimensionDefinitions[i].ranges;              if (pDimensionDefinitions[i].ranges) delete[] pDimensionDefinitions[i].ranges;
1199          }          }
1200          for (int i = 0; i < 32; i++) {          for (int i = 0; i < 256; i++) {
1201              if (pDimensionRegions[i]) delete pDimensionRegions[i];              if (pDimensionRegions[i]) delete pDimensionRegions[i];
1202          }          }
1203      }      }
# Line 1272  namespace gig { Line 1275  namespace gig {
1275      }      }
1276    
1277      Sample* Region::GetSampleFromWavePool(unsigned int WavePoolTableIndex) {      Sample* Region::GetSampleFromWavePool(unsigned int WavePoolTableIndex) {
1278            if ((int32_t)WavePoolTableIndex == -1) return NULL;
1279          File* file = (File*) GetParent()->GetParent();          File* file = (File*) GetParent()->GetParent();
1280          unsigned long soughtoffset = file->pWavePoolTable[WavePoolTableIndex];          unsigned long soughtoffset = file->pWavePoolTable[WavePoolTableIndex];
1281          Sample* sample = file->GetFirstSample();          Sample* sample = file->GetFirstSample();
# Line 1313  namespace gig { Line 1317  namespace gig {
1317          RIFF::List* lrgn = insList->GetSubList(LIST_TYPE_LRGN);          RIFF::List* lrgn = insList->GetSubList(LIST_TYPE_LRGN);
1318          if (!lrgn) throw gig::Exception("Mandatory chunks in <ins > chunk not found.");          if (!lrgn) throw gig::Exception("Mandatory chunks in <ins > chunk not found.");
1319          pRegions = new Region*[Regions];          pRegions = new Region*[Regions];
1320            for (uint i = 0; i < Regions; i++) pRegions[i] = NULL;
1321          RIFF::List* rgn = lrgn->GetFirstSubList();          RIFF::List* rgn = lrgn->GetFirstSubList();
1322          unsigned int iRegion = 0;          unsigned int iRegion = 0;
1323          while (rgn) {          while (rgn) {
# Line 1336  namespace gig { Line 1341  namespace gig {
1341              if (pRegions) {              if (pRegions) {
1342                  if (pRegions[i]) delete (pRegions[i]);                  if (pRegions[i]) delete (pRegions[i]);
1343              }              }
             delete[] pRegions;  
1344          }          }
1345            if (pRegions) delete[] pRegions;
1346      }      }
1347    
1348      /**      /**
# Line 1393  namespace gig { Line 1398  namespace gig {
1398          pInstruments = NULL;          pInstruments = NULL;
1399      }      }
1400    
1401        File::~File() {
1402            // free samples
1403            if (pSamples) {
1404                SamplesIterator = pSamples->begin();
1405                while (SamplesIterator != pSamples->end() ) {
1406                    delete (*SamplesIterator);
1407                    SamplesIterator++;
1408                }
1409                pSamples->clear();
1410                delete pSamples;
1411    
1412            }
1413            // free instruments
1414            if (pInstruments) {
1415                InstrumentsIterator = pInstruments->begin();
1416                while (InstrumentsIterator != pInstruments->end() ) {
1417                    delete (*InstrumentsIterator);
1418                    InstrumentsIterator++;
1419                }
1420                pInstruments->clear();
1421                delete pInstruments;
1422            }
1423        }
1424    
1425      Sample* File::GetFirstSample() {      Sample* File::GetFirstSample() {
1426          if (!pSamples) LoadSamples();          if (!pSamples) LoadSamples();
1427          if (!pSamples) return NULL;          if (!pSamples) return NULL;

Legend:
Removed from v.347  
changed lines
  Added in v.355

  ViewVC Help
Powered by ViewVC