--- libgig/trunk/ChangeLog 2017/05/10 23:07:28 3173 +++ libgig/trunk/ChangeLog 2018/12/23 21:47:55 3447 @@ -1,4 +1,38 @@ -Version SVN trunk +Version SVN trunk (?) + + * src/gig.cpp, src/gig.h: + - Fixed Doxygen API comments for enum types (currently latest Doxygen + [v1.8.13] only supports C comments in macro arguments expansion, but + 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. + + * 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. + + * src/RIFF.cpp, src/RIFF.h: + - Fix: Calling File::SetMode() left an undefined file handle on Windows and + caused a resource leak + + * 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: - removed 2 GB limitation when loading a gig or DLS file - using now native integer size where appropriate @@ -8,6 +42,13 @@ which allows to serialize and deserialize native C++ objects in a portable, easy and flexible way. - print compiler warning if no RTTI available + - Fixed potential crash in command line tools gig2stereo, korg2gig, + korgdump and sf2extract. + - Fixed CVE-2017-12950, CVE-2017-12952, CVE-2017-12953 + (original patch by Paul Brossier, slightly modified). + - Debian: Fixed packaging error about invalid substitution variable + "Source-Version". + - Raised Debian compatibility level to Debian 9 "Stretch". * src/gig.cpp, src/gig.h: - fixed bug in Script::SetGroup: the script chunk wasn't moved @@ -33,11 +74,27 @@ - Added support for serializing & deserializing DimensionRegion objects (and crossfade_t and leverage_ctrl_t objects). - Added enum reflection API functions for retrieving enum declaration type - information at runtime (countEnum(), enumKey(), enumKeys(), enumValue()). + information at runtime (enumCount(), enumKey(), enumKeys(), enumValue()). + - Exception class now has a variadic constructor which allows to add + textual format specifiers like with printf(). + - On unknown leverage controller exception: show precise unknown leverage + controller number found. + - Ignore invalid leverage controller types and just show a warning on the + console instead of throwing an exception. + - Added new struct eg_opt_t and new class member variable + DimensionRegion::EG1Options and DimensionRegion::EG2Options as an + extension to the gig file format, which allows to override the default + behavior of the first two EGs' state machines. + - Fixed undefined behavior when loading a gig file with invalid + velocity curve parameters (fixes CVE-2017-12951). + - Fixed undefined behavior when loading a gig file with invalid wave + pool index number (fixes CVE-2017-12954). * src/DLS.cpp, src/DLS.h: - Sample: wave pool offsets are now 64 bits (to allow support for files 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 @@ -47,6 +104,8 @@ with a new option added to the RIFF File constructor though - 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 + - Exception class now has a variadic constructor which allows to add + textual format specifiers like with printf(). * src/Serialization.cpp, src/Serialization.h: - Archive: Added method isModified(). @@ -68,6 +127,15 @@ - Archive: Added methods valueAsInt(), valueAsReal() and valueAsBool(). - DataType: Implemented demangling C++ type names (for methods asLongDescr() and customTypeName(bool demangle=false)). + - Archive::setAutoValue(): Handle human readable boolean text + representations like "yes", "no", "true", "false" as expected. + - Exception class now has a variadic constructor which allows to add + textual format specifiers like with printf(). + - DataType fix: Retain backward compatibility to older versions of native + C++ classes/structs. + + * src/Akai.cpp: + - Fixed compilation error with recent, more strict compilers. * src/tools/akaidump.cpp, src/tools/akaiextract.cpp: - improved output of non-ascii characters in usage messages @@ -89,6 +157,7 @@ rebuilding the gig file's global checksum table (i.e. in case the file's checksum table was damaged) - print samples' CRC32 checksums + - Print the new EG behavior options (eg_opt_t). * src/tools/gigextract.cpp: - Fix: if sample name contains a path separator (slash or backslash) then