--- libgig/trunk/ChangeLog 2017/12/09 16:39:27 3398 +++ libgig/trunk/ChangeLog 2019/07/25 10:52:10 3524 @@ -1,4 +1,18 @@ -Version SVN trunk (?) +Version 4.2.0 (25 Jul 2019) + + * general changes: + - Added MSVC build support (anonymous patch from mailing list). + - Introduced CMake build support (yet constrained for building with MSVC) + (anonymous patch from mailing list). + - Fix: Don't automatically delete RIFF chunks from DLS/gig classes' + destructors. Added new virtual method DeleteChunks() to those classes + for this which must be explicitly called instead to remove their RIFF + chunks. + - Fix: Many methods of DLS/gig classes assumed a RIFF chunk read position + of zero; which is unsafe per se. + - Added C++11 "override" keyword where appropriate. + - Fixed crash in RIFF, DLS and gig classes which occurred on certain + of their actions when not passing a progress_t callback structure. * src/gig.cpp, src/gig.h: - Fixed Doxygen API comments for enum types (currently latest Doxygen @@ -6,10 +20,54 @@ not C++ comments; see lexer rules in src/pre.l of the Doxygen source code, which currently also filter out new line \n chars). + - Added new method File::CountSamples(). + - Added new method File::CountInstruments(). + - Fixed gig v4 files falsely being handled as v2 format + (patch by Ivan Maguidhir). + - Added gig v4 version identifier (File::VERSION_4). + - GIG FORMAT EXTENSION: Added attribute + DimensionRegion::SustainReleaseTrigger which allows to define whether + a sustain pedal up event shall cause a release trigger sample to be + played (default: don't play release trigger sample by sustain pedal). + - GIG FORMAT EXTENSION: Added attribute + DimensionRegion::NoNoteOffReleaseTrigger which allows to disable the + regular behaviour of playing release trigger sample on MIDI note-off + events. + - Introduced support for writing extension files (.gx01, .gx02, ...) + (original patch by Ivan Maguidhir). + - Many gig classes derive now from DLS::Storage (see DLS changes below). + - Added File::GetRiffFile() method. + + * src/DLS.cpp, src/DLS.h: + - File: Fixed implicitly allocated RIFF::File object never been freed. + - Added new abstract interface base class DLS::Storage which is derived by + the respective classes for implementing (the old) UpdateChunks() and the + new DeleteChunks() method. + - Added File::GetRiffFile() method. + + * src/sf2.cpp, src/sf2.h: + - Added Sample::GetFile() method. + - Added File::GetRiffFile() method. * src/Serialization.cpp, src/Serialization.h: - Hide pure internal declarations from header file to avoid numerous compiler warnings when building and linking against the public API. + - Fixed comparision logic bug + - Fixed memory leak in DataType::customTypeName(). + + * src/RIFF.cpp, src/RIFF.h: + - Fix: Calling File::SetMode() left an undefined file handle on Windows and + caused a resource leak + - Avoid compiler warning when building for 32 bit windows. + - Added new method progress_t::subdivide(). + - Fix: API doc comment for Chunk::GetFilePos() was completely wrong. + - progress_t: Added a 2nd (overridden) progress_t::subdivide() method which + allows a more fine graded control into which portions the subtasks are + divided to. + + * src/tools/gigdump.cpp: + - Added command line option --instrument-names which causes only + instrument names and their index numbers to be printed. Version 4.1.0 (25 Nov 2017) * general changes: @@ -74,7 +132,7 @@ larger than 4 GB). - Exception class now has a variadic constructor which allows to add textual format specifiers like with printf(). - + * src/RIFF.cpp, src/RIFF.h: - added support for RIFF files larger than 4 GB, by default the required internal RIFF file offset size is automatically detected (that is RIFF