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

Log of /libgig/trunk/src/RIFF.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 2914 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 17 19:04:56 2016 UTC (7 years, 10 months ago) by schoenebeck
File length: 95773 byte(s)
Diff to previous 2912 , to selected 1885
* Fixed compile error on Windows.


Revision 2912 - (view) (download) (annotate) - [select for diffs]
Modified Tue May 17 14:30:10 2016 UTC (7 years, 10 months ago) by schoenebeck
File length: 94849 byte(s)
Diff to previous 2703 , to selected 1885
* gig.cpp/.h: GIG FORMAT EXTENSION: Added support for saving gig file
  larger than 4 GB as one single monolithic gig file. A new custom RIFF
  chunk "FFmt" was added to distinguish such monolithic large .gig files
  from old ones which were splitted over several (.gx01, .gx02, ...)
  "extension" files before.
* DLS.cpp/.h: Sample class: wave pool offsets are now 64 bits (to allow
  support for files larger than 4 GB).
* RIFF.cpp/.h: Addded support for RIFF files larger than 4 GB, by default
  the required internal RIFF file offset size is automatically detected
  (that is RIFF files < 4 GB automatically use 32 bit offsets while
  files >= 4 GB automatically use 64 bit offsets), a particular offset
  size can be forced with a new option added to the RIFF File constructor
  though.
* RIFF.cpp/.h: When saving a modified, grown RIFF file, the temporary file
  size during Save() operation will no longer be larger than the final
  grown file size.
* Automake: Set environment variable GCC_COLORS=auto to allow GCC to auto
  detect whether it (sh/c)ould output its messages in color.
* Bumped version (4.0.0.svn3).


Revision 2703 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 13 15:28:37 2015 UTC (9 years, 2 months ago) by schoenebeck
File length: 86257 byte(s)
Diff to previous 2685 , to selected 1885
* RIFF: Cleanup of an old DLL binary backward compatibility hack.
* Bumped version (3.3.0.svn28).


Revision 2685 - (view) (download) (annotate) - [select for diffs]
Modified Sat Jan 3 21:44:42 2015 UTC (9 years, 2 months ago) by schoenebeck
File length: 86938 byte(s)
Diff to previous 2682 , to selected 1885
* RIFF: Fixed embarrassing old bug: POSIX read() errors were never detected
  on Chunk::Read() calls due to signment incompatible variable.
* Added new command line tool "gig2stereo" (and a man page for it).
* Bumped version (v3.3.0.svn23).


Revision 2682 - (view) (download) (annotate) - [select for diffs]
Modified Mon Dec 29 16:25:51 2014 UTC (9 years, 3 months ago) by schoenebeck
File length: 86781 byte(s)
Diff to previous 2675 , to selected 1885
* gig: Added support for custom progress notification while saving to
  gig file.
* DLS: Added support for custom progress notification while saving to
  DLS file.
* RIFF: Added support for custom progress notification while saving to
  RIFF file.
* Bumped version (3.3.0.svn22).


Revision 2675 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 14 16:07:34 2014 UTC (9 years, 6 months ago) by schoenebeck
File length: 83293 byte(s)
Diff to previous 2584 , to selected 1885
* RIFF.cpp, POSIX: only assume -1 result value as error on open() calls.
* RIFF.cpp, POSIX: show operating system's error reason if opening a file
  failed.
* Bumped version (3.3.0.svn21).


Revision 2584 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 31 20:54:39 2014 UTC (9 years, 9 months ago) by schoenebeck
File length: 83000 byte(s)
Diff to previous 2543 , to selected 1885
* gig.h/.cpp: GIG FORMAT EXTENSION: added support for real-time
  instrument scripts.
* RIFF.h/.cpp: added 2nd alternative method for List::MoveSubChunk(),
  the old 1st one allows to move a subchunk within the current List
  whereas the new 2nd one allows to move the subchunk from the
  current list to another list.
* Bumped version (3.3.0.svn13).


Revision 2543 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 10 02:06:58 2014 UTC (9 years, 10 months ago) by schoenebeck
File length: 81599 byte(s)
Diff to previous 2482 , to selected 1885
* Initial support for sample based instruments in KORG's file format (.KMP
  and .KSF files) -> Korg.h, Korg.cpp.
* Added new command line tool "korgdump" (and a man page for it).
* Added new command line tool "korg2gig" (and a man page for it), for
  converting KORG sounds to Giga format.
* riftree tool: Added more command line options for being able to also dump
  other kind of file formats similar but not equal to the RIFF format.
* gig.h/.cpp: Added new method File::GetGroup(String name) for retrieving
  group by name.
* RIFF.h/.cpp: Added support for loading RIFF-like files with a bit
  different layout than "real" RIFF files (used for KORG format support).
* RIFF.h/.cpp: Added new method Chunk::GetFile().
* RIFF.h/.cpp: Added new method Chunk::GetLayout().
* Bumped version (3.3.0.svn9).


Revision 2482 - (view) (download) (annotate) - [select for diffs]
Modified Mon Nov 25 02:22:38 2013 UTC (10 years, 4 months ago) by schoenebeck
File length: 77672 byte(s)
Diff to previous 2450 , to selected 1885
* Added new command line tool "gigmerge" which allows to merge
  a list of gig files to one single gig file.
* Added new "man" page for new tool "gigmerge".
* src/gig.h: Added new method File::AddContentOf().
* src/DLS.h: Added new method File::SetFileName().
* src/RIFF.h: Added new method File::SetFileName().
* src/RIFF.h: Added new method File::IsNew().
* Added "const" keyword to several methods.
* Bumped version to 3.3.0.svn6.


Revision 2450 - (view) (download) (annotate) - [select for diffs]
Modified Wed May 8 17:53:07 2013 UTC (10 years, 10 months ago) by persson
File length: 77333 byte(s)
Diff to previous 2155 , to selected 1885
* added write support for CtrlTrigger midi rule
* added read and write support for Legato and Alternator midi rules


Revision 2155 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 6 11:33:40 2011 UTC (13 years, 2 months ago) by persson
File length: 76690 byte(s)
Diff to previous 2120 , to selected 1885
* fixed memory leak and memory handling errors when file loading fails


Revision 2120 - (view) (download) (annotate) - [select for diffs]
Modified Sun Aug 29 11:10:36 2010 UTC (13 years, 7 months ago) by persson
File length: 76412 byte(s)
Diff to previous 1953 , to selected 1885
* bugfix: avoid calling read() with count 0 when writing a file, as
  this may hang on some systems


Revision 1953 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jul 30 08:16:02 2009 UTC (14 years, 8 months ago) by schoenebeck
File length: 76396 byte(s)
Diff to previous 1885
* preparations for release 3.3.0


Revision 1885 - (view) (download) (annotate) - [selected]
Modified Thu Apr 16 18:25:31 2009 UTC (14 years, 11 months ago) by persson
File length: 75638 byte(s)
Diff to previous 1869
* bugfix: files that contain zero length RIFF lists were not read
  correctly (fixes #127) (bug was introduced 2009-03-13)


Revision 1869 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 22 11:13:25 2009 UTC (15 years ago) by persson
File length: 75638 byte(s)
Diff to previous 1863 , to selected 1885
* bugfix: destructor for base class RIFF::Chunk accessed members of
  derived class RIFF::File, which is bad, and caused crashes when
  using Visual C++
* bugfix: EG3 depth parameter was not saved correctly
* fixes for building with Visual C++


Revision 1863 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 13 10:57:24 2009 UTC (15 years ago) by schoenebeck
File length: 75420 byte(s)
Diff to previous 1859 , to selected 1885
* src/RIFF.cpp :
    - bugfix: undefined behavior (e.g. endless loop) when opening zero
      length files, now throws a RIFF::Exception instead (fixes bug #121)


Revision 1859 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 8 12:24:56 2009 UTC (15 years ago) by persson
File length: 75125 byte(s)
Diff to previous 1851 , to selected 1885
* bugfix: saving to the same file after the file size had been
  decreased sometimes made the file corrupt


Revision 1851 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 1 22:08:32 2009 UTC (15 years, 1 month ago) by schoenebeck
File length: 75035 byte(s)
Diff to previous 1713 , to selected 1885
* bugfix: refuse RIFF::Chunk::Read() in case chunk has just been added,
  that is not written physically yet (#82)
* bugfix in gig::Sample::LoadSampleData*(): reset sample read position
  to sample start before trying to (re)load sample data from file (#82)


Revision 1713 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 6 20:42:22 2008 UTC (16 years ago) by persson
File length: 74915 byte(s)
Diff to previous 1678 , to selected 1885
* fixed compilation with gcc 4.3


Revision 1678 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 10 16:07:22 2008 UTC (16 years, 1 month ago) by persson
File length: 74894 byte(s)
Diff to previous 1459 , to selected 1885
* bugfix: saving to the same file after the file size had been
  increased made the file corrupt (#82)
* bugfix: removed another iterator invalidation in DeleteSample
* changed the functions for midi rules, to get rid of the iterator


Revision 1459 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 26 10:58:41 2007 UTC (16 years, 5 months ago) by schoenebeck
File length: 74879 byte(s)
Diff to previous 1383 , to selected 1885
* avoid Windows to perform unnecessary file stream caching which would
  decrease disk streaming performance on Windows systems otherwise


Revision 1383 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 5 09:39:12 2007 UTC (16 years, 5 months ago) by schoenebeck
File length: 74398 byte(s)
Diff to previous 1301 , to selected 1885
- internal function RIFF::__resolveChunkPath() is now static
- fixed typo in API doc of method RIFF::Chunk::GetState()
- don't expose internal static file members to the API docs


Revision 1301 - (view) (download) (annotate) - [select for diffs]
Modified Sat Aug 25 09:59:53 2007 UTC (16 years, 7 months ago) by persson
File length: 74392 byte(s)
Diff to previous 1207 , to selected 1885
* AddDimension now copies all parameters from existing dimension
  regions and also makes sure that the samplechannel dimension is
  placed first
* Windows fixes: compile error in DLSID generator, saving a new file
  didn't work


Revision 1207 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 26 13:59:40 2007 UTC (16 years, 10 months ago) by persson
File length: 74259 byte(s)
Diff to previous 1184 , to selected 1885
- added some comments for the latest changes


Revision 1184 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 13 13:24:22 2007 UTC (16 years, 10 months ago) by persson
File length: 73984 byte(s)
Diff to previous 1183 , to selected 1885
* removed the recently added RIFF::File constructor, added
  File::SetByteOrder instead


Revision 1183 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 13 10:34:29 2007 UTC (16 years, 10 months ago) by persson
File length: 74709 byte(s)
Diff to previous 1105 , to selected 1885
* added RIFF::File constructor with endianess parameter
* put pack Info::UseFixedLengthStrings, marked as deprecated, to
  ensure binary compatibility
* DLS files are always created as little-endian


Revision 1105 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 18 19:32:42 2007 UTC (17 years ago) by schoenebeck
File length: 73393 byte(s)
Diff to previous 1102 , to selected 1885
- just made one exception message more verbose


Revision 1102 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 18 07:13:06 2007 UTC (17 years ago) by persson
File length: 73334 byte(s)
Diff to previous 1095 , to selected 1885
* added MoveRegion and MoveSubChunk
* fixed initialization in AddRegion


Revision 1095 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 12 18:16:55 2007 UTC (17 years ago) by schoenebeck
File length: 72647 byte(s)
Diff to previous 1093 , to selected 1885
* fixed RIFF::Chunk destructor which did not unregister previously
  resized chunks, leading to a "zero size chunk" exception when
  File::Save() was called


Revision 1093 - (view) (download) (annotate) - [select for diffs]
Modified Sun Mar 11 17:44:31 2007 UTC (17 years ago) by schoenebeck
File length: 71833 byte(s)
Diff to previous 1063 , to selected 1885
- minor API doc update


Revision 1063 - (view) (download) (annotate) - [select for diffs]
Modified Sat Mar 3 21:45:25 2007 UTC (17 years ago) by schoenebeck
File length: 71721 byte(s)
Diff to previous 1050 , to selected 1885
* fixed libgig's Dev-C++ project file to produce an actually working
  Windows DLL file (mandatory symbols were not exported so far)
* fixed native Windows implementation of RIFF::File::__GetFileSize() to
  work with younger versions than XP as well
* added Dev-C++ project files for the demo / example applications as well
* added instructions in README for how to compile libgig and its tools for
  Windows


Revision 1050 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 2 01:04:45 2007 UTC (17 years, 1 month ago) by schoenebeck
File length: 71610 byte(s)
Diff to previous 933 , to selected 1885
* ported to Windows using native Windows functions for file IO
  (provided Dev-C++ + mingw project file)
* renamed macro WAVE_FORMAT_PCM to DLS_WAVE_FORMAT_PCM
  to avoid clash with definition in i.e. windows.h


Revision 933 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 24 12:50:05 2006 UTC (17 years, 4 months ago) by schoenebeck
File length: 63348 byte(s)
Diff to previous 833 , to selected 1885
* preparations for release 3.1.0


Revision 833 - (view) (download) (annotate) - [select for diffs]
Modified Sun Feb 5 17:30:13 2006 UTC (18 years, 1 month ago) by schoenebeck
File length: 63348 byte(s)
Diff to previous 808 , to selected 1885
* src/RIFF.cpp: bugfix in File::Save() methods which did not ensure that
  the whole RIFF tree was already built before writing which caused opening
  an existing file and saving it afterwards to write just an empty file


Revision 808 - (view) (download) (annotate) - [select for diffs]
Modified Tue Nov 22 09:11:17 2005 UTC (18 years, 4 months ago) by schoenebeck
File length: 62959 byte(s)
Diff to previous 802 , to selected 1885
* src/RIFF.cpp: compilation error fix for big endian systems
* src/gigdump.cpp: show correct amount of dimension regions instead of 32
(patch by James Wylder)


Revision 802 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 10 19:53:34 2005 UTC (18 years, 4 months ago) by schoenebeck
File length: 62952 byte(s)
Diff to previous 800 , to selected 1885
* bugfixes for the last commit batch


Revision 800 - (view) (download) (annotate) - [select for diffs]
Modified Wed Nov 9 20:04:11 2005 UTC (18 years, 4 months ago) by schoenebeck
File length: 62927 byte(s)
Diff to previous 798 , to selected 1885
* src/RIFF.cpp, src/RIFF.h:
  - Chunk::LoadChunkData() can now be called again to resize the buffer
    after a Chunk::Resize() and before the File::Save() call to allow
    placing the new data in the chunk's write buffer and perform the
    resize and write operations in one rush
* src/DLS.cpp, src/DLS.h:
  - fixed loading of Articulation Connections (<artl> list chunks were
    seeked instead of ordinary <artl> data chunks)
  - added write support (highly experimental)


Revision 798 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 3 23:49:11 2005 UTC (18 years, 4 months ago) by schoenebeck
File length: 62285 byte(s)
Diff to previous 780 , to selected 1885
* fixed write support in RIFF classes


Revision 780 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 25 13:40:37 2005 UTC (18 years, 6 months ago) by schoenebeck
File length: 60073 byte(s)
Diff to previous 666 , to selected 1885
* added write support (only to the RIFF classes yet)


Revision 666 - (view) (download) (annotate) - [select for diffs]
Modified Sun Jun 19 15:18:59 2005 UTC (18 years, 9 months ago) by persson
File length: 29993 byte(s)
Diff to previous 518 , to selected 1885
* added support for gig v3 multi-file format


Revision 518 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 8 16:19:34 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 29977 byte(s)
Diff to previous 515 , to selected 1885
* added functions libraryName() and libraryVersion() to each of the three
  library units (RIFF,DLS,gig)
* all tools now offer a command line switch -v to show the tools revision
  and the used libgig version
* man pages are now auto generated with the correct libgig version


Revision 515 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 7 20:19:10 2005 UTC (18 years, 10 months ago) by schoenebeck
File length: 29482 byte(s)
Diff to previous 384 , to selected 1885
* src/gig.h, src/gig.cpp: implemented progress indicator callback mechanism
  for loading instruments and samples
* src/DLS.cpp: fixed File constructor which caused variable
  File::Instruments always to be zero
* src/RIFF.cpp: fixed method List::LoadSubChunks() which did not restore
  the original position within the body of the given list chunk


Revision 384 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 17 02:22:26 2005 UTC (19 years, 1 month ago) by schoenebeck
File length: 29292 byte(s)
Diff to previous 55 , to selected 1885
* gig::Sample: external decompression buffers can now be used for streaming
  with Read() and ReadAndLoop() to avoid race conditions in case of
  multiple streaming threads
* fixed some memory leaks caused by non virtual base constructors


Revision 55 - (view) (download) (annotate) - [select for diffs]
Modified Tue Apr 27 09:06:07 2004 UTC (19 years, 11 months ago) by schoenebeck
File length: 29292 byte(s)
Diff to previous 24 , to selected 1885
updated copyright header for 2004


Revision 24 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 26 16:15:31 2003 UTC (20 years, 3 months ago) by schoenebeck
File length: 29292 byte(s)
Diff to previous 11 , to selected 1885
* src/gig.cpp, src/gig.h: added ReadAndLoop() method to class 'Sample'
  which is an extension to the normal Read() method to honor the sample's
  looping information while streaming from disk
* src/RIFF.cpp: minor fix in Chunk::Read() method (only a minor efficiency
  issue)
* src/gigdump.cpp: added printout of samples' looping informations


Revision 11 - (view) (download) (annotate) - [select for diffs]
Modified Sun Nov 16 17:47:00 2003 UTC (20 years, 4 months ago) by schoenebeck
File length: 29296 byte(s)
Diff to previous 2 , to selected 1885
* src/gig.cpp: fixed bug in decompression algorithm which caused it not to
  detect the end of a stream
* various endian corrections (successfully tested now on ppc)
* minor adjustments to avoid compile errors on some systems
  (using now pow() instead of powl() and --pedantic g++ compiler switch)
* src/RIFF.cpp, src/RIFF.h: added additional API documentation


Revision 2 - (view) (download) (annotate) - [select for diffs]
Added Sat Oct 25 20:15:04 2003 UTC (20 years, 5 months ago) by schoenebeck
File length: 25016 byte(s)
Diff to selected 1885
Initial revision


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC