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

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

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

revision 2921 by schoenebeck, Tue May 17 14:30:10 2016 UTC revision 2922 by schoenebeck, Wed May 18 18:04:49 2016 UTC
# Line 882  namespace DLS { Line 882  namespace DLS {
882       * FormatTag must be DLS_WAVE_FORMAT_PCM. Trying to resize samples with       * FormatTag must be DLS_WAVE_FORMAT_PCM. Trying to resize samples with
883       * other formats will fail!       * other formats will fail!
884       *       *
885       * @param iNewSize - new sample wave data size in sample points (must be       * @param NewSize - new sample wave data size in sample points (must be
886       *                   greater than zero)       *                  greater than zero)
887       * @throws Excecption if FormatTag != DLS_WAVE_FORMAT_PCM       * @throws Exception if FormatTag != DLS_WAVE_FORMAT_PCM
888       * @throws Exception if \a iNewSize is less than 1       * @throws Exception if \a NewSize is less than 1 or unrealistic large
889       * @see File::Save(), FrameSize, FormatTag       * @see File::Save(), FrameSize, FormatTag
890       */       */
891      void Sample::Resize(int iNewSize) {      void Sample::Resize(file_offset_t NewSize) {
892          if (FormatTag != DLS_WAVE_FORMAT_PCM) throw Exception("Sample's format is not DLS_WAVE_FORMAT_PCM");          if (FormatTag != DLS_WAVE_FORMAT_PCM) throw Exception("Sample's format is not DLS_WAVE_FORMAT_PCM");
893          if (iNewSize < 1) throw Exception("Sample size must be at least one sample point");          if (NewSize < 1) throw Exception("Sample size must be at least one sample point");
894          const int iSizeInBytes = iNewSize * FrameSize;          if ((NewSize >> 48) != 0)
895                throw Exception("Unrealistic high DLS sample size detected");
896            const file_offset_t sizeInBytes = NewSize * FrameSize;
897          pCkData = pWaveList->GetSubChunk(CHUNK_ID_DATA);          pCkData = pWaveList->GetSubChunk(CHUNK_ID_DATA);
898          if (pCkData) pCkData->Resize(iSizeInBytes);          if (pCkData) pCkData->Resize(sizeInBytes);
899          else pCkData = pWaveList->AddSubChunk(CHUNK_ID_DATA, iSizeInBytes);          else pCkData = pWaveList->AddSubChunk(CHUNK_ID_DATA, sizeInBytes);
900      }      }
901    
902      /**      /**

Legend:
Removed from v.2921  
changed lines
  Added in v.2922

  ViewVC Help
Powered by ViewVC