--- libgig/trunk/ChangeLog 2017/05/03 14:41:58 3138 +++ libgig/trunk/ChangeLog 2017/05/17 15:42:58 3185 @@ -7,6 +7,9 @@ - Added new "Serialization" framework (and equally named namespace) 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. * src/gig.cpp, src/gig.h: - fixed bug in Script::SetGroup: the script chunk wasn't moved @@ -31,6 +34,8 @@ of passed original file. - 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 (enumCount(), enumKey(), enumKeys(), enumValue()). * src/DLS.cpp, src/DLS.h: - Sample: wave pool offsets are now 64 bits (to allow support for files @@ -45,6 +50,29 @@ - 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 + * src/Serialization.cpp, src/Serialization.h: + - Archive: Added method isModified(). + - Archive: Added method setAutoValue(). + - Archive: Added method setIntValue(). + - Archive: Added method setRealValue(). + - Archive: Added method setBoolValue(). + - Archive: Added method setEnumValue(). + - Archive: Added method valueAsString(). + - Archive::rawData(): Automatically re-encode new raw data stream if + archive had been modified (i.e. by remove(), setAutoValue(), etc.). + - Object: Added method memberByUID(). + - Object: remove() method is now protected. + - Archive: Added method removeMember(). + - Archive: Added methods name() and setName(). + - Archive: Added methods comment() and setComment(). + - Archive: Added methods timeStampCreated(), timeStampModified(), + dateTimeCreated() and dateTimeModified(). + - 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. + * src/tools/akaidump.cpp, src/tools/akaiextract.cpp: - improved output of non-ascii characters in usage messages - fixed printf format strings