/[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 1180 by persson, Sat May 12 12:39:25 2007 UTC revision 1182 by persson, Sun May 13 05:48:51 2007 UTC
# Line 344  namespace { Line 344  namespace {
344              SamplePeriod  = uint32_t(1000000000.0 / SamplesPerSecond + 0.5);              SamplePeriod  = uint32_t(1000000000.0 / SamplesPerSecond + 0.5);
345              MIDIUnityNote = 64;              MIDIUnityNote = 64;
346              FineTune      = 0;              FineTune      = 0;
347                SMPTEFormat   = smpte_format_no_offset;
348              SMPTEOffset   = 0;              SMPTEOffset   = 0;
349              Loops         = 0;              Loops         = 0;
350              LoopID        = 0;              LoopID        = 0;
351                LoopType      = loop_type_normal;
352              LoopStart     = 0;              LoopStart     = 0;
353              LoopEnd       = 0;              LoopEnd       = 0;
354              LoopFraction  = 0;              LoopFraction  = 0;
# Line 402  namespace { Line 404  namespace {
404    
405          // make sure 'smpl' chunk exists          // make sure 'smpl' chunk exists
406          pCkSmpl = pWaveList->GetSubChunk(CHUNK_ID_SMPL);          pCkSmpl = pWaveList->GetSubChunk(CHUNK_ID_SMPL);
407          if (!pCkSmpl) pCkSmpl = pWaveList->AddSubChunk(CHUNK_ID_SMPL, 60);          if (!pCkSmpl) {
408                pCkSmpl = pWaveList->AddSubChunk(CHUNK_ID_SMPL, 60);
409                memset(pCkSmpl->LoadChunkData(), 0, 60);
410            }
411          // update 'smpl' chunk          // update 'smpl' chunk
412          uint8_t* pData = (uint8_t*) pCkSmpl->LoadChunkData();          uint8_t* pData = (uint8_t*) pCkSmpl->LoadChunkData();
413          SamplePeriod = uint32_t(1000000000.0 / SamplesPerSecond + 0.5);          SamplePeriod = uint32_t(1000000000.0 / SamplesPerSecond + 0.5);
# Line 1507  namespace { Line 1512  namespace {
1512    
1513          // update '3ewa' chunk with DimensionRegion's current settings          // update '3ewa' chunk with DimensionRegion's current settings
1514    
1515          const uint32_t chunksize = _3ewa->GetSize();          const uint32_t chunksize = _3ewa->GetNewSize();
1516          store32(&pData[0], chunksize); // unknown, always chunk size?          store32(&pData[0], chunksize); // unknown, always chunk size?
1517    
1518          const int32_t lfo3freq = (int32_t) GIG_EXP_ENCODE(LFO3Frequency);          const int32_t lfo3freq = (int32_t) GIG_EXP_ENCODE(LFO3Frequency);
# Line 1991  namespace { Line 1996  namespace {
1996                      default:                      default:
1997                          throw gig::Exception("leverage controller number is not supported by the gig format");                          throw gig::Exception("leverage controller number is not supported by the gig format");
1998                  }                  }
1999                    break;
2000              default:              default:
2001                  throw gig::Exception("Unknown leverage controller type.");                  throw gig::Exception("Unknown leverage controller type.");
2002          }          }
# Line 2170  namespace { Line 2176  namespace {
2176              GetSample(); // load global region sample reference              GetSample(); // load global region sample reference
2177          } else {          } else {
2178              DimensionRegions = 0;              DimensionRegions = 0;
2179                for (int i = 0 ; i < 8 ; i++) {
2180                    pDimensionDefinitions[i].dimension  = dimension_none;
2181                    pDimensionDefinitions[i].bits       = 0;
2182                    pDimensionDefinitions[i].zones      = 0;
2183                }
2184          }          }
2185    
2186          // make sure there is at least one dimension region          // make sure there is at least one dimension region
# Line 2215  namespace { Line 2226  namespace {
2226          if (!_3lnk) {          if (!_3lnk) {
2227              const int _3lnkChunkSize = (pFile->pVersion && pFile->pVersion->major == 3) ? 1092 : 172;              const int _3lnkChunkSize = (pFile->pVersion && pFile->pVersion->major == 3) ? 1092 : 172;
2228              _3lnk = pCkRegion->AddSubChunk(CHUNK_ID_3LNK, _3lnkChunkSize);              _3lnk = pCkRegion->AddSubChunk(CHUNK_ID_3LNK, _3lnkChunkSize);
2229                memset(_3lnk->LoadChunkData(), 0, _3lnkChunkSize);
2230          }          }
2231    
2232          // update dimension definitions in '3lnk' chunk          // update dimension definitions in '3lnk' chunk
# Line 2603  namespace { Line 2615  namespace {
2615    
2616          // Initialization          // Initialization
2617          for (int i = 0; i < 128; i++) RegionKeyTable[i] = NULL;          for (int i = 0; i < 128; i++) RegionKeyTable[i] = NULL;
2618            EffectSend = 0;
2619            Attenuation = 0;
2620            FineTune = 0;
2621            PitchbendRange = 0;
2622            PianoReleaseMode = false;
2623            DimensionKeyRange.low = 0;
2624            DimensionKeyRange.high = 0;
2625    
2626          // Loading          // Loading
2627          RIFF::List* lart = insList->GetSubList(LIST_TYPE_LART);          RIFF::List* lart = insList->GetSubList(LIST_TYPE_LART);
# Line 2792  namespace { Line 2811  namespace {
2811          RIFF::List* _3gri = pFile->pRIFF->GetSubList(LIST_TYPE_3GRI);          RIFF::List* _3gri = pFile->pRIFF->GetSubList(LIST_TYPE_3GRI);
2812          if (!_3gri) _3gri = pFile->pRIFF->AddSubList(LIST_TYPE_3GRI);          if (!_3gri) _3gri = pFile->pRIFF->AddSubList(LIST_TYPE_3GRI);
2813          RIFF::List* _3gnl = _3gri->GetSubList(LIST_TYPE_3GNL);          RIFF::List* _3gnl = _3gri->GetSubList(LIST_TYPE_3GNL);
2814          if (!_3gnl) _3gnl = pFile->pRIFF->AddSubList(LIST_TYPE_3GNL);          if (!_3gnl) _3gnl = _3gri->AddSubList(LIST_TYPE_3GNL);
2815          // now store the name of this group as <3gnm> chunk as subchunk of the <3gnl> list chunk          // now store the name of this group as <3gnm> chunk as subchunk of the <3gnl> list chunk
2816          ::SaveString(CHUNK_ID_3GNM, pNameChunk, _3gnl, Name, String("Unnamed Group"), true, 64);          ::SaveString(CHUNK_ID_3GNM, pNameChunk, _3gnl, Name, String("Unnamed Group"), true, 64);
2817      }      }
# Line 2892  namespace { Line 2911  namespace {
2911      File::File() : DLS::File() {      File::File() : DLS::File() {
2912          pGroups = NULL;          pGroups = NULL;
2913          pInfo->FixedStringLengths = FixedStringLengths;          pInfo->FixedStringLengths = FixedStringLengths;
2914            pInfo->ArchivalLocation = String(256, ' ');
2915      }      }
2916    
2917      File::File(RIFF::File* pRIFF) : DLS::File(pRIFF) {      File::File(RIFF::File* pRIFF) : DLS::File(pRIFF) {
# Line 3081  namespace { Line 3101  namespace {
3101         RIFF::List* lstInstruments = pRIFF->GetSubList(LIST_TYPE_LINS);         RIFF::List* lstInstruments = pRIFF->GetSubList(LIST_TYPE_LINS);
3102         RIFF::List* lstInstr = lstInstruments->AddSubList(LIST_TYPE_INS);         RIFF::List* lstInstr = lstInstruments->AddSubList(LIST_TYPE_INS);
3103         Instrument* pInstrument = new Instrument(this, lstInstr);         Instrument* pInstrument = new Instrument(this, lstInstr);
3104    
3105           // this string is needed for the gig to be loadable in GSt:
3106           pInstrument->pInfo->Software = "Endless Wave";
3107    
3108         pInstruments->push_back(pInstrument);         pInstruments->push_back(pInstrument);
3109         return pInstrument;         return pInstrument;
3110      }      }

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

  ViewVC Help
Powered by ViewVC