Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libinstpatch for openSUSE:Factory 
checked in at 2021-02-04 20:22:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libinstpatch (Old)
 and      /work/SRC/openSUSE:Factory/.libinstpatch.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libinstpatch"

Thu Feb  4 20:22:33 2021 rev:8 rq:868374 version:1.1.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/libinstpatch/libinstpatch.changes        
2020-06-02 14:33:35.274562533 +0200
+++ /work/SRC/openSUSE:Factory/.libinstpatch.new.28504/libinstpatch.changes     
2021-02-04 20:23:00.034728186 +0100
@@ -1,0 +2,9 @@
+Fri Jan 29 18:11:08 UTC 2021 - Tom Mbrt <[email protected]>
+
+- Update to version 1.1.6
+  * fix an access violation on Windows
+  * getter-functions for SLI have been added
+  * fix a memory corruption when saving the same DLS file several times
+  * fix compilation with MinGW
+
+-------------------------------------------------------------------

Old:
----
  libinstpatch-1.1.5.tar.gz

New:
----
  libinstpatch-1.1.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libinstpatch.spec ++++++
--- /var/tmp/diff_new_pack.q9ADXD/_old  2021-02-04 20:23:00.590729033 +0100
+++ /var/tmp/diff_new_pack.q9ADXD/_new  2021-02-04 20:23:00.594729039 +0100
@@ -19,7 +19,7 @@
 %define sover   2
 
 Name:           libinstpatch
-Version:        1.1.5
+Version:        1.1.6
 Release:        0
 Summary:        MIDI instrument patch library
 License:        LGPL-2.1-only

++++++ libinstpatch-1.1.5.tar.gz -> libinstpatch-1.1.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/CMakeLists.txt 
new/libinstpatch-1.1.6/CMakeLists.txt
--- old/libinstpatch-1.1.5/CMakeLists.txt       2020-05-26 13:09:21.000000000 
+0200
+++ new/libinstpatch-1.1.6/CMakeLists.txt       2021-01-22 21:50:51.000000000 
+0100
@@ -7,7 +7,7 @@
 #
 
 project ( libInstPatch C )
-cmake_minimum_required ( VERSION 2.6.3 )
+cmake_minimum_required ( VERSION 3.0 )
 set ( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
 
 # libInstPatch package name
@@ -16,7 +16,7 @@
 # libInstPatch package version
 set ( IPATCH_VERSION_MAJOR 1 )
 set ( IPATCH_VERSION_MINOR 1 )
-set ( IPATCH_VERSION_MICRO 5 )
+set ( IPATCH_VERSION_MICRO 6 )
 set ( VERSION 
"${IPATCH_VERSION_MAJOR}.${IPATCH_VERSION_MINOR}.${IPATCH_VERSION_MICRO}" )
 set ( IPATCH_VERSION "\"${VERSION}\"" )
 
@@ -30,7 +30,7 @@
 # if any interfaces have been removed/changed (compatibility broken): AGE=0
 # This is not exactly the same algorithm as the libtool one, but the results 
are the same.
 set ( LIB_VERSION_CURRENT 2 )
-set ( LIB_VERSION_AGE 1 )
+set ( LIB_VERSION_AGE 2 )
 set ( LIB_VERSION_REVISION 0 )
 set ( LIB_VERSION_INFO 
       "${LIB_VERSION_CURRENT}.${LIB_VERSION_AGE}.${LIB_VERSION_REVISION}" )
@@ -159,7 +159,7 @@
 
 # Check for Gtk-Doc
 if (GTKDOC_ENABLED)
-  include (FindGtkDoc)
+  find_package(GtkDoc)
 endif ()
 
 # General configuration file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/README.md 
new/libinstpatch-1.1.6/README.md
--- old/libinstpatch-1.1.5/README.md    2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/README.md    2021-01-22 21:50:51.000000000 +0100
@@ -1,5 +1,5 @@
 #      libInstPatch
-###    Copyright (C) 1999-2020 Element Green and others
+###    Copyright (C) 1999-2021 Element Green and others
 http://www.swamiproject.org
 
 [![Build 
Status](https://dev.azure.com/tommbrt/tommbrt/_apis/build/status/swami.libinstpatch?branchName=master)](https://dev.azure.com/tommbrt/tommbrt/_build/latest?definitionId=1&branchName=master)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/azure-pipelines.yml 
new/libinstpatch-1.1.6/azure-pipelines.yml
--- old/libinstpatch-1.1.5/azure-pipelines.yml  2020-05-26 13:09:21.000000000 
+0200
+++ new/libinstpatch-1.1.6/azure-pipelines.yml  2021-01-22 21:50:51.000000000 
+0100
@@ -58,9 +58,10 @@
     - script: |
         @ECHO ON
         SET "PATH=d:\deps\bin;%PATH%"
+        DEL /F C:\Strawberry\perl\bin\pkg-config.bat
         mkdir build && cd build || exit -1
-        cmake -G "Visual Studio 15 2017" -T "v141_xp" -DLIB_SUFFIX="" 
-DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) 
-DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
-        cmake --build . --config Release --target install || exit -1
+        cmake -G "Visual Studio 15 2017" -T "v141_xp" -DLIB_SUFFIX="" 
-DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) 
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
+        cmake --build . --config Debug --target install || exit -1
         del $(Build.ArtifactStagingDirectory)\bin\concrt*.dll
         del $(Build.ArtifactStagingDirectory)\bin\vcruntime*.dll
         del $(Build.ArtifactStagingDirectory)\bin\msvcp*.dll
@@ -97,9 +98,10 @@
     - script: |
         @ECHO ON
         SET "PATH=d:\deps\bin;%PATH%"
+        DEL /F C:\Strawberry\perl\bin\pkg-config.bat
         mkdir build && cd build || exit -1
-        cmake -G "Visual Studio 15 2017 Win64" -T "v141_xp" -DLIB_SUFFIX="" 
-DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) 
-DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
-        cmake --build . --config Release --target install || exit -1
+        cmake -G "Visual Studio 15 2017 Win64" -T "v141_xp" -DLIB_SUFFIX="" 
-DCMAKE_INSTALL_PREFIX=$(Build.ArtifactStagingDirectory) 
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
+        cmake --build . --config Debug --target install || exit -1
         del $(Build.ArtifactStagingDirectory)\bin\concrt*.dll
         del $(Build.ArtifactStagingDirectory)\bin\vcruntime*.dll
         del $(Build.ArtifactStagingDirectory)\bin\msvcp*.dll
@@ -136,6 +138,7 @@
     - script: |
         @ECHO ON
         SET "PATH=d:\deps\bin;%PATH%"
+        DEL /F C:\Strawberry\perl\bin\pkg-config.bat
         mkdir build && cd build || exit -1
         cmake -G "Visual Studio 16 2019" -A Win32 
-DCMAKE_INSTALL_PREFIX=$HOME/libinstpatch_install -DCMAKE_BUILD_TYPE=Release 
-DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
         cmake --build . || exit 1
@@ -163,6 +166,7 @@
     - script: |
         @ECHO ON
         SET "PATH=d:\deps\bin;%PATH%"
+        DEL /F C:\Strawberry\perl\bin\pkg-config.bat
         mkdir build && cd build || exit -1
         cmake -G "Visual Studio 16 2019" -A x64 
-DCMAKE_INSTALL_PREFIX=$HOME/libinstpatch_install -DCMAKE_BUILD_TYPE=Release 
-DCMAKE_VERBOSE_MAKEFILE=0 .. || exit -1
         cmake --build . || exit 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/cmake/FindGtkDoc.cmake 
new/libinstpatch-1.1.6/cmake/FindGtkDoc.cmake
--- old/libinstpatch-1.1.5/cmake/FindGtkDoc.cmake       2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/cmake/FindGtkDoc.cmake       1970-01-01 
01:00:00.000000000 +0100
@@ -1,66 +0,0 @@
-# CMake macros to find the GtkDoc documentation system
-
-# Output variables:
-#
-#   GTKDOC_FOUND            ... set to 1 if GtkDoc was found
-#
-# If GTKDOC_FOUND == 1:
-#
-#   GTKDOC_SCAN_EXE         ... the location of the gtkdoc-scan executable
-#   GTKDOC_SCANGOBJ_EXE     ... the location of the gtkdoc-scangobj executable
-#   GTKDOC_MKTMPL_EXE       ... the location of the gtkdoc-mktmpl executable
-#   GTKDOC_MKDB_EXE         ... the location of the gtkdoc-mkdb executable
-#   GTKDOC_MKHTML_EXE       ... the location of the gtkdoc-mkhtml executable
-#   GTKDOC_FIXXREF_EXE      ... the location of the gtkdoc-fixxref executable
-
-set(GTKDOC_FOUND 1)
-
-find_program(GTKDOC_SCAN_EXE gtkdoc-scan PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_SCAN_EXE)
-       message(STATUS "gtkdoc-scan not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_SCAN_EXE)
-
-find_program(GTKDOC_SCANGOBJ_EXE gtkdoc-scangobj PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_SCANGOBJ_EXE)
-       message(STATUS "gtkdoc-scangobj not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_SCANGOBJ_EXE)
-
-get_filename_component(_this_dir ${CMAKE_CURRENT_LIST_FILE} PATH)
-find_file(GTKDOC_SCANGOBJ_WRAPPER GtkDocScanGObjWrapper.cmake PATH 
${_this_dir})
-if(NOT GTKDOC_SCANGOBJ_WRAPPER)
-       message(STATUS "GtkDocScanGObjWrapper.cmake not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_SCANGOBJ_WRAPPER)
-
-find_program(GTKDOC_MKTMPL_EXE gtkdoc-mktmpl PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_MKTMPL_EXE)
-       message(STATUS "gtkdoc-mktmpl not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_MKTMPL_EXE)
-
-find_program(GTKDOC_MKDB_EXE gtkdoc-mkdb PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_MKDB_EXE)
-       message(STATUS "gtkdoc-mkdb not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_MKDB_EXE)
-
-find_program(GTKDOC_MKHTML_EXE gtkdoc-mkhtml PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_MKHTML_EXE)
-       message(STATUS "gtkdoc-mkhtml not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_MKHTML_EXE)
-
-find_program(GTKDOC_FIXXREF_EXE gtkdoc-fixxref PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_FIXXREF_EXE)
-       message(STATUS "gtkdoc-fixxref not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_FIXXREF_EXE)
-
-find_program(GTKDOC_CHECK_EXE gtkdoc-check PATH "${GLIB_PREFIX}/bin")
-if(NOT GTKDOC_CHECK_EXE)
-       message(STATUS "gtkdoc-check not found")
-    set(GTKDOC_FOUND 0)
-endif(NOT GTKDOC_CHECK_EXE)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/cmake/GtkDocScanGObjWrapper.cmake 
new/libinstpatch-1.1.6/cmake/GtkDocScanGObjWrapper.cmake
--- old/libinstpatch-1.1.5/cmake/GtkDocScanGObjWrapper.cmake    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/cmake/GtkDocScanGObjWrapper.cmake    1970-01-01 
01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-if(NOT APPLE)
-    # We use pkg-config to fing glib et al
-    find_package(PkgConfig)
-    # Find glib et al
-    pkg_check_modules(GLIB REQUIRED glib-2.0 gobject-2.0)
-
-foreach(_flag ${EXTRA_CFLAGS} ${GLIB_CFLAGS})
-    set(ENV{CFLAGS} "$ENV{CFLAGS} \"${_flag}\"")
-endforeach(_flag)
-
-foreach(_flag ${EXTRA_LDFLAGS} ${GLIB_LDFLAGS})
-    set(ENV{LDFLAGS} "$ENV{LDFLAGS} \"${_flag}\"")
-endforeach(_flag)
-
-foreach(_flag ${EXTRA_LDPATH})
-    if(ENV{LD_LIBRARY_PATH})
-        set(ENV{LD_LIBRARY_PATH} "$ENV{LD_LIBRARY_PATH}:\"${_flag}\"")
-    else(ENV{LD_LIBRARY_PATH})
-        set(ENV{LD_LIBRARY_PATH} "${_flag}")
-    endif(ENV{LD_LIBRARY_PATH})
-endforeach(_flag)
-
-message(STATUS "Executing gtkdoc-scangobj with:")
-message(STATUS "   CFLAGS: $ENV{CFLAGS}")
-message(STATUS "  LDFLAGS: $ENV{LDFLAGS}")
-message(STATUS "   LDPATH: $ENV{LD_LIBRARY_PATH}")
-
-execute_process(COMMAND ${GTKDOC_SCANGOBJ_EXE}
-    "--module=${doc_prefix}"
-    "--types=${output_types}"
-    "--output-dir=${output_dir}"
-    "--type-init-func=${type_init_func}"
-    WORKING_DIRECTORY "${output_dir}"
-    RESULT_VARIABLE _scan_result)
-
-if(_scan_result EQUAL 0)
-    message(STATUS "Scan succeeded.")
-else(_scan_result EQUAL 0)
-    message(SEND_ERROR "Scan failed.")
-endif(_scan_result EQUAL 0)
-
-endif(NOT APPLE)
-
-# vim:sw=4:ts=4:et:autoindent
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/cmake/UseGtkDoc.cmake 
new/libinstpatch-1.1.6/cmake/UseGtkDoc.cmake
--- old/libinstpatch-1.1.5/cmake/UseGtkDoc.cmake        2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/cmake/UseGtkDoc.cmake        1970-01-01 
01:00:00.000000000 +0100
@@ -1,236 +0,0 @@
-# CMake macros to use the GtkDoc documentation system
-
-find_package(GtkDoc)
-
-# gtk_doc_add_module(doc_prefix sourcedir 
-#                    [XML xmlfile] 
-#                    [FIXXREFOPTS fixxrefoption1...]
-#                    [IGNOREHEADERS header1...]
-#                    [DEPENDS depend1...] )
-#
-# sourcedir must be the *full* path to the source directory.
-#
-# If omitted, sgmlfile defaults to the auto generated 
${doc_prefix}/${doc_prefix}-docs.xml.
-function(gtk_doc_add_module _doc_prefix _doc_sourcedir)
-       set (_multi_value DEPENDS XML FIXXREFOPTS IGNOREHEADERS CFLAGS LDFLAGS 
LDPATH SUFFIXES TYPEINITFUNC EXTRAHEADERS)
-       cmake_parse_arguments (ARG "" "" "${_multi_value}" ${ARGN})
-
-    list(LENGTH ARG_XML _xml_file_length)
-
-    if(ARG_SUFFIXES)
-        set(_doc_source_suffixes "")
-        foreach(_suffix ${ARG_SUFFIXES})
-            if(_doc_source_suffixes)
-                set(_doc_source_suffixes "${_doc_source_suffixes},${_suffix}")
-            else(_doc_source_suffixes)
-                set(_doc_source_suffixes "${_suffix}")
-            endif(_doc_source_suffixes)
-        endforeach(_suffix)
-    else(ARG_SUFFIXES)
-        set(_doc_source_suffixes "h")
-    endif(ARG_SUFFIXES)
-
-    set(_do_all ALL)
-
-    set(_opts_valid 1)
-    if(NOT _xml_file_length LESS 2)
-        message(SEND_ERROR "Must have at most one sgml file specified.")
-        set(_opts_valid 0)
-    endif(NOT _xml_file_length LESS 2)
-
-    if(_opts_valid)
-        # a directory to store output.
-        set(_output_dir "${CMAKE_CURRENT_BINARY_DIR}/${_doc_prefix}")
-        set(_output_dir_stamp "${_output_dir}/dir.stamp")
-        
-        # set default sgml file if not specified
-        set(_default_xml_file "${_output_dir}/${_doc_prefix}-docs.xml")
-        get_filename_component(_default_xml_file ${_default_xml_file} ABSOLUTE)
-        
-        # a directory to store html output.
-        set(_output_html_dir "${_output_dir}/html")
-        set(_output_html_dir_stamp "${_output_dir}/html_dir.stamp")
-
-        # The output files
-        set(_output_decl_list "${_output_dir}/${_doc_prefix}-decl-list.txt")
-        set(_output_decl "${_output_dir}/${_doc_prefix}-decl.txt")
-        set(_output_overrides "${_output_dir}/${_doc_prefix}-overrides.txt")
-        set(_output_sections "${_output_dir}/${_doc_prefix}-sections.txt")
-        set(_output_types "${_output_dir}/${_doc_prefix}.types")
-
-        set(_output_signals "${_output_dir}/${_doc_prefix}.signals")
-
-        set(_output_unused "${_output_dir}/${_doc_prefix}-unused.txt")
-        set(_output_undeclared "${_output_dir}/${_doc_prefix}-undeclared.txt")
-        set(_output_undocumented 
"${_output_dir}/${_doc_prefix}-undocumented.txt")
-        set(_output_tmpl_dir "${_output_dir}/tmpl")
-        set(_output_tmpl_stamp "${_output_dir}/tmpl.stamp")
-
-        set(_output_xml_dir "${_output_dir}/xml")
-        set(_output_sgml_stamp "${_output_dir}/sgml.stamp")
-
-        set(_output_html_stamp "${_output_dir}/html.stamp")
-
-        # add a command to create output directory
-        add_custom_command(
-            OUTPUT "${_output_dir_stamp}" "${_output_dir}"
-            COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_dir}"
-            COMMAND ${CMAKE_COMMAND} -E touch ${_output_dir_stamp}
-            VERBATIM)
-
-        set(_ignore_headers_opt "")
-        if(ARG_IGNOREHEADERS)
-            set(_ignore_headers_opt "--ignore-headers=")
-            foreach(_header ${ARG_IGNOREHEADERS})
-                set(_ignore_headers_opt "${_ignore_headers_opt}${_header} ")
-            endforeach(_header ${ARG_IGNOREHEADERS})
-        endif(ARG_IGNOREHEADERS)
-
-        # add a command to scan the input
-        add_custom_command(
-            OUTPUT
-                "${_output_decl_list}"
-                "${_output_decl}"
-                "${_output_decl}.bak"
-                "${_output_overrides}"
-                "${_output_sections}"
-                "${_output_types}"
-                "${_output_types}.bak"
-            DEPENDS
-                "${_output_dir}"
-                ${ARG_DEPENDS}
-            COMMAND ${GTKDOC_SCAN_EXE}
-                "--module=${_doc_prefix}"
-                "${_ignore_headers_opt}"
-                "--rebuild-sections"
-                "--rebuild-types"
-                "--source-dir=${_doc_sourcedir}"
-                ${ARG_EXTRAHEADERS}
-            WORKING_DIRECTORY "${_output_dir}"
-            VERBATIM)
-
-        # add a command to scan the input via gtkdoc-scangobj
-        # This is such a disgusting hack!
-        add_custom_command(
-            OUTPUT
-                "${_output_signals}"
-            DEPENDS
-                "${_output_types}"
-                "${ARG_DEPENDS}"
-            COMMAND ${CMAKE_COMMAND} 
-                -D "GTKDOC_SCANGOBJ_EXE:STRING=${GTKDOC_SCANGOBJ_EXE}"
-                -D "doc_prefix:STRING=${_doc_prefix}"
-                -D "output_types:STRING=${_output_types}"
-                -D "output_dir:STRING=${_output_dir}"
-                -D "type_init_func:STRING=${ARG_TYPEINITFUNC}"
-                -D "EXTRA_CFLAGS:STRING=${ARG_CFLAGS}"
-                -D "EXTRA_LDFLAGS:STRING=${ARG_LDFLAGS}"
-                -D "EXTRA_LDPATH:STRING=${ARG_LDPATH}"
-                -P ${GTKDOC_SCANGOBJ_WRAPPER}
-            WORKING_DIRECTORY "${_output_dir}"
-            VERBATIM)
-
-        # add a command to make the templates
-        add_custom_command(
-            OUTPUT
-                "${_output_unused}"
-                "${_output_undeclared}"
-                "${_output_undocumented}"
-                "${_output_tmpl_dir}"
-                "${_output_tmpl_stamp}"
-            DEPENDS
-                "${_output_types}"
-                "${_output_signals}"
-                "${_output_sections}"
-                "${_output_overrides}"
-                ${ARG_DEPENDS}
-            COMMAND ${CMAKE_COMMAND} -E remove_directory ${_output_tmpl_dir}
-            COMMAND ${GTKDOC_MKTMPL_EXE}
-                "--module=${_doc_prefix}"
-            WORKING_DIRECTORY "${_output_dir}"
-            VERBATIM)
-
-        set(_copy_xml_if_needed "")
-        if(ARG_XML)
-            get_filename_component(ARG_XML ${ARG_XML} ABSOLUTE)
-            set(_copy_xml_if_needed 
-                COMMAND ${CMAKE_COMMAND} -E copy "${ARG_XML}" 
"${_default_xml_file}")
-        endif(ARG_XML)
-
-        set(_remove_xml_if_needed "")
-        if(ARG_XML)
-            set(_remove_xml_if_needed 
-                COMMAND ${CMAKE_COMMAND} -E remove ${_default_xml_file})
-        endif(ARG_XML)
-
-        # add a command to make the database
-        add_custom_command(
-            OUTPUT
-                "${_output_sgml_stamp}"
-                "${_default_xml_file}"
-            DEPENDS
-                "${_output_tmpl_stamp}"
-                "${_output_unused}"
-                "${_output_undeclared}"
-                "${_output_undocumented}"
-                ${ARG_DEPENDS}
-                ${_remove_xml_if_needed}
-            COMMAND ${CMAKE_COMMAND} -E remove_directory ${_output_xml_dir}
-            COMMAND ${GTKDOC_MKDB_EXE}
-                "--module=${_doc_prefix}"
-                "--source-dir=${_doc_sourcedir}"
-                "--source-suffixes=${_doc_source_suffixes}"
-                "--output-format=xml"
-                "--main-sgml-file=${_default_xml_file}"
-            ${_copy_xml_if_needed}
-            WORKING_DIRECTORY "${_output_dir}"
-            VERBATIM)
-
-        # add a command to create html directory
-        add_custom_command(
-            OUTPUT "${_output_html_dir_stamp}" "${_output_html_dir}"
-            COMMAND ${CMAKE_COMMAND} -E make_directory ${_output_html_dir}
-            COMMAND ${CMAKE_COMMAND} -E touch ${_output_html_dir_stamp}
-            VERBATIM)
-
-        # add a command to output HTML
-        add_custom_command(
-            OUTPUT
-                "${_output_html_stamp}" 
-            DEPENDS
-                "${_output_html_dir_stamp}"
-                "${_output_sgml_stamp}"
-                "${_output_tmpl_stamp}"
-                "${ARG_XML}"
-                ${ARG_DEPENDS}
-            ${_copy_xml_if_needed}
-            COMMAND ${GTKDOC_MKHTML_EXE}
-                "${_doc_prefix}"
-                "${_default_xml_file}"
-            WORKING_DIRECTORY "${_output_html_dir}"
-            VERBATIM)
-
-        # fix output refs
-        add_custom_target("${_doc_prefix}-gtxdoc-fixxref" 
-            DEPENDS
-                "${_output_html_stamp}"
-                ${ARG_DEPENDS}
-            COMMAND ${GTKDOC_FIXXREF_EXE}
-                "--module=${_doc_prefix}"
-                "--module-dir=."
-                ${ARG_FIXXREFOPTS}
-            #${_remove_xml_if_needed}
-            WORKING_DIRECTORY "${_output_dir}"
-            VERBATIM)
-
-        add_custom_target(doc-${_doc_prefix} ${_do_all} 
-            DEPENDS
-                "${_doc_prefix}-gtxdoc-fixxref"
-                ${ARG_DEPENDS})
-
-        add_test(doc-${_doc_prefix}-check ${GTKDOC_CHECK_EXE})
-        set_tests_properties(doc-${_doc_prefix}-check PROPERTIES
-          ENVIRONMENT 
"DOC_MODULE=${_doc_prefix};DOC_MAIN_SGML_FILE=${_doc_prefix}-docs.xml;SRCDIR=${_doc_sourcedir};BUILDDIR=${_output_dir}"
-        )
-    endif(_opts_valid)
-endfunction(gtk_doc_add_module)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/docs/reference/CMakeLists.txt 
new/libinstpatch-1.1.6/docs/reference/CMakeLists.txt
--- old/libinstpatch-1.1.5/docs/reference/CMakeLists.txt        2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/docs/reference/CMakeLists.txt        2021-01-22 
21:50:51.000000000 +0100
@@ -29,18 +29,19 @@
 )
 
 if (GTKDOC_FOUND)
-  include (UseGtkDoc)
-
-  gtk_doc_add_module (libinstpatch ${CMAKE_SOURCE_DIR}/libinstpatch
+  gtk_doc_add_module (libinstpatch
+    SOURCE ${CMAKE_SOURCE_DIR}/libinstpatch
     XML libinstpatch-docs.xml
     SUFFIXES c h
     IGNOREHEADERS ${ignore_headers}
-    EXTRAHEADERS ${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch/version.h
-    TYPEINITFUNC ipatch_init\(\)
+    SCANOPTS ${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch/version.h
+    SCANOBJOPTS --type-init-func=ipatch_init\(\)
     CFLAGS -I${CMAKE_SOURCE_DIR}
     LDFLAGS -L${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch -linstpatch-1.0
     LDPATH ${CMAKE_CURRENT_BINARY_DIR}/../../libinstpatch
     DEPENDS instpatch-1.0
   )
+
+  add_custom_target(documentation ALL DEPENDS doc-libinstpatch)
 endif ()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/gtk-doc.make 
new/libinstpatch-1.1.6/gtk-doc.make
--- old/libinstpatch-1.1.5/gtk-doc.make 2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/gtk-doc.make 1970-01-01 01:00:00.000000000 +0100
@@ -1,177 +0,0 @@
-# -*- mode: makefile -*-
-
-####################################
-# Everything below here is generic #
-####################################
-
-if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) 
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) 
$(LDFLAGS)
-GTKDOC_RUN = $(LIBTOOL) --mode=execute
-else
-GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-GTKDOC_RUN = sh -c
-endif
-
-# We set GPATH here; this gives us semantics for GNU make
-# which are more like other make's VPATH, when it comes to
-# whether a source that is a target of one rule is then
-# searched for in VPATH/GPATH.
-#
-GPATH = $(srcdir)
-
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
-
-EXTRA_DIST =                           \
-       $(content_files)                \
-       $(HTML_IMAGES)                  \
-       $(DOC_MAIN_SGML_FILE)           \
-       $(DOC_MODULE)-sections.txt      \
-       $(DOC_MODULE)-overrides.txt
-
-DOC_STAMPS=scan-build.stamp sgml-build.stamp html-build.stamp \
-          $(srcdir)/sgml.stamp $(srcdir)/html.stamp
-
-SCANOBJ_FILES =                 \
-       $(DOC_MODULE).args       \
-       $(DOC_MODULE).hierarchy  \
-       $(DOC_MODULE).interfaces \
-       $(DOC_MODULE).prerequisites \
-       $(DOC_MODULE).signals
-
-REPORT_FILES = \
-       $(DOC_MODULE)-undocumented.txt \
-       $(DOC_MODULE)-undeclared.txt \
-       $(DOC_MODULE)-unused.txt
-
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
-
-if ENABLE_GTK_DOC
-all-local: html-build.stamp
-else
-all-local:
-endif
-
-docs: html-build.stamp
-
-$(REPORT_FILES): sgml-build.stamp
-
-#### scan ####
-
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-       @echo 'gtk-doc: Scanning header files'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-         gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) 
--ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
-       if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; 
then \
-           CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" 
CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" 
gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) 
--output-dir=$(srcdir) ; \
-       else \
-           cd $(srcdir) ; \
-           for i in $(SCANOBJ_FILES) ; do \
-               test -f $$i || touch $$i ; \
-           done \
-       fi
-       touch scan-build.stamp
-
-$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt 
$(DOC_MODULE)-overrides.txt: scan-build.stamp
-       @true
-
-#### xml ####
-
-sgml-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) 
$(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files)
-       @echo 'gtk-doc: Building XML'
-       @-chmod -R u+w $(srcdir)
-       cd $(srcdir) && \
-       gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) 
--output-format=xml --expand-content-files="$(expand_content_files)" 
--main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS)
-       touch sgml-build.stamp
-
-sgml.stamp: sgml-build.stamp
-       @true
-
-#### html ####
-
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
-       @echo 'gtk-doc: Building HTML'
-       @-chmod -R u+w $(srcdir)
-       rm -rf $(srcdir)/html
-       mkdir $(srcdir)/html
-       mkhtml_options=""; \
-       gtkdoc-mkhtml 2>&1 --help | grep  >/dev/null "\-\-path"; \
-       if test "$(?)" = "0"; then \
-         mkhtml_options=--path="$(srcdir)"; \
-       fi
-       cd $(srcdir)/html && gtkdoc-mkhtml $(mkhtml_options) $(MKHTML_OPTIONS) 
$(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
-       test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) 
html )
-       @echo 'gtk-doc: Fixing cross-references'
-       cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) 
$(FIXXREF_OPTIONS)
-       touch html-build.stamp
-
-##############
-
-clean-local:
-       rm -f *~ *.bak
-       rm -rf .libs
-
-distclean-local:
-       cd $(srcdir) && \
-         rm -rf xml $(REPORT_FILES) \
-                $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-
-maintainer-clean-local: clean
-       cd $(srcdir) && rm -rf html
-
-install-data-local:
-       installfiles=`echo $(srcdir)/html/*`; \
-       if test "$$installfiles" = '$(srcdir)/html/*'; \
-       then echo '-- Nothing to install' ; \
-       else \
-         if test -n "$(DOC_MODULE_VERSION)"; then \
-           installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
-         else \
-           installdir="$(DESTDIR)$(TARGET_DIR)"; \
-         fi; \
-         $(mkinstalldirs) $${installdir} ; \
-         for i in $$installfiles; do \
-           echo '-- Installing '$$i ; \
-           $(INSTALL_DATA) $$i $${installdir}; \
-         done; \
-         if test -n "$(DOC_MODULE_VERSION)"; then \
-           mv -f $${installdir}/$(DOC_MODULE).devhelp2 \
-             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \
-           mv -f $${installdir}/$(DOC_MODULE).devhelp \
-             $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp; \
-         fi; \
-         ! which gtkdoc-rebase >/dev/null 2>&1 || \
-           gtkdoc-rebase --relative --dest-dir=$(DESTDIR) 
--html-dir=$${installdir} ; \
-       fi
-
-uninstall-local:
-       if test -n "$(DOC_MODULE_VERSION)"; then \
-         installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \
-       else \
-         installdir="$(DESTDIR)$(TARGET_DIR)"; \
-       fi; \
-       rm -rf $${installdir}
-
-#
-# Require gtk-doc when making dist
-#
-if ENABLE_GTK_DOC
-dist-check-gtkdoc:
-else
-dist-check-gtkdoc:
-       @echo "*** gtk-doc must be installed and enabled in order to make dist"
-       @false
-endif
-
-dist-hook: dist-check-gtkdoc dist-hook-local
-       mkdir $(distdir)/html
-       cp $(srcdir)/html/* $(distdir)/html
-       -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
-       -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
-       cd $(distdir) && rm -f $(DISTCLEANFILES)
-       ! which gtkdoc-rebase >/dev/null 2>&1 || \
-         gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
-
-.PHONY : dist-hook-local docs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/CMakeLists.txt 
new/libinstpatch-1.1.6/libinstpatch/CMakeLists.txt
--- old/libinstpatch-1.1.5/libinstpatch/CMakeLists.txt  2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/CMakeLists.txt  2021-01-22 
21:50:51.000000000 +0100
@@ -372,6 +372,10 @@
   BUNDLE DESTINATION ${BUNDLE_INSTALL_DIR}
 )
 
+if ( MSVC )
+  install(FILES $<TARGET_PDB_FILE:libinstpatch> DESTINATION ${BIN_INSTALL_DIR} 
OPTIONAL)
+endif ( MSVC )
+
 macro(_list_prefix _outvar _listvar _prefix)
   set(${_outvar})
   foreach(_item IN LISTS ${_listvar})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchBase.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchBase.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchBase.c    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchBase.c    2021-01-22 
21:50:51.000000000 +0100
@@ -68,7 +68,7 @@
 static GParamSpec *file_pspec;
 static GParamSpec *file_name_pspec;
 
-G_DEFINE_ABSTRACT_TYPE(IpatchBase, ipatch_base, IPATCH_TYPE_CONTAINER);
+G_DEFINE_ABSTRACT_TYPE(IpatchBase, ipatch_base, IPATCH_TYPE_CONTAINER)
 
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_DLS2.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_DLS2.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_DLS2.c    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_DLS2.c    2021-01-22 
21:50:51.000000000 +0100
@@ -292,9 +292,9 @@
     }
 }
 
-CONVERTER_CLASS_INIT(file_to_dls2);
-CONVERTER_CLASS_INIT(file_to_dls2_sample);
+CONVERTER_CLASS_INIT(file_to_dls2)
+CONVERTER_CLASS_INIT(file_to_dls2_sample)
 
-CONVERTER_GET_TYPE(dls2_to_file, DLS2ToFile);
-CONVERTER_GET_TYPE(file_to_dls2, FileToDLS2);
-CONVERTER_GET_TYPE(file_to_dls2_sample, FileToDLS2Sample);
+CONVERTER_GET_TYPE(dls2_to_file, DLS2ToFile)
+CONVERTER_GET_TYPE(file_to_dls2, FileToDLS2)
+CONVERTER_GET_TYPE(file_to_dls2_sample, FileToDLS2Sample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_Gig.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_Gig.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_Gig.c     2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_Gig.c     2021-01-22 
21:50:51.000000000 +0100
@@ -146,11 +146,11 @@
 
 #define _file_to_gig_sample_convert _file_to_dls2_sample_convert;
 
-CONVERTER_CLASS_INIT(gig_to_file);
-CONVERTER_GET_TYPE(gig_to_file, GigToFile);
+CONVERTER_CLASS_INIT(gig_to_file)
+CONVERTER_GET_TYPE(gig_to_file, GigToFile)
 
 CONVERTER_CLASS_INIT(file_to_gig);
-CONVERTER_GET_TYPE(file_to_gig, FileToGig);
+CONVERTER_GET_TYPE(file_to_gig, FileToGig)
 
-CONVERTER_CLASS_INIT(file_to_gig_sample);
-CONVERTER_GET_TYPE(file_to_gig_sample, FileToGigSample);
+CONVERTER_CLASS_INIT(file_to_gig_sample)
+CONVERTER_GET_TYPE(file_to_gig_sample, FileToGigSample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_SF2.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_SF2.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_SF2.c     2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_SF2.c     2021-01-22 
21:50:51.000000000 +0100
@@ -422,10 +422,10 @@
     }
 }
 
-CONVERTER_CLASS_INIT(file_to_sf2);
-CONVERTER_CLASS_INIT(file_to_sf2_sample);
+CONVERTER_CLASS_INIT(file_to_sf2)
+CONVERTER_CLASS_INIT(file_to_sf2_sample)
 
-CONVERTER_GET_TYPE(sf2_to_file, SF2ToFile);
-CONVERTER_GET_TYPE(file_to_sf2, FileToSF2);
-CONVERTER_GET_TYPE(file_to_sf2_sample, FileToSF2Sample);
+CONVERTER_GET_TYPE(sf2_to_file, SF2ToFile)
+CONVERTER_GET_TYPE(file_to_sf2, FileToSF2)
+CONVERTER_GET_TYPE(file_to_sf2_sample, FileToSF2Sample)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_SLI.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_SLI.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchConvert_SLI.c     2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchConvert_SLI.c     2021-01-22 
21:50:51.000000000 +0100
@@ -304,10 +304,10 @@
     }
 }
 
-CONVERTER_CLASS_INIT(file_to_sli);
-CONVERTER_CLASS_INIT(file_to_sli_sample);
+CONVERTER_CLASS_INIT(file_to_sli)
+CONVERTER_CLASS_INIT(file_to_sli_sample)
 
 
-CONVERTER_GET_TYPE(sli_to_file, SLIToFile);
-CONVERTER_GET_TYPE(file_to_sli, FileToSLI);
-CONVERTER_GET_TYPE(file_to_sli_sample, FileToSLISample);
+CONVERTER_GET_TYPE(sli_to_file, SLIToFile)
+CONVERTER_GET_TYPE(file_to_sli, FileToSLI)
+CONVERTER_GET_TYPE(file_to_sli_sample, FileToSLISample)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Info.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Info.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Info.c        2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Info.c        2021-01-22 
21:50:51.000000000 +0100
@@ -238,7 +238,7 @@
         newbag = ipatch_dls2_info_bag_new();
         newbag->fourcc = bag->fourcc;
         newbag->value = g_strdup(bag->value);
-        newinfo = g_slist_prepend(newinfo, bag);
+        newinfo = g_slist_prepend(newinfo, newbag);
 
         p = g_slist_next(p);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Region.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Region.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Region.c      2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Region.c      2021-01-22 
21:50:51.000000000 +0100
@@ -775,7 +775,7 @@
 /**
  * ipatch_dls2_region_set_sample:
  * @region: Region to set sample of
- * @sample: Sample to set region to
+ * @sample: Sample to set region to. Should be NULL or a IpatchDLS2Sample 
object
  *
  * Sets the referenced sample of a region.
  */
@@ -784,7 +784,10 @@
                               IpatchDLS2Sample *sample)
 {
     g_return_if_fail(IPATCH_IS_DLS2_REGION(region));
-    g_return_if_fail(IPATCH_IS_DLS2_SAMPLE(sample));
+    if(sample != NULL)
+    {
+        g_return_if_fail (IPATCH_IS_DLS2_SAMPLE (sample));
+    }
 
     ipatch_dls2_region_real_set_sample(region, sample, TRUE);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Sample.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Sample.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLS2Sample.c      2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLS2Sample.c      2021-01-22 
21:50:51.000000000 +0100
@@ -325,16 +325,17 @@
 {
     IpatchList *list;
     IpatchIter iter;
+    IpatchItem *region;
 
     /* ++ ref new list */
     list = ipatch_dls2_get_region_references(IPATCH_DLS2_SAMPLE(item));
     ipatch_list_init_iter(list, &iter);
 
-    item = ipatch_item_first(&iter);
+    region = ipatch_item_first(&iter);
 
-    while(item)
+    while(region)
     {
-        ipatch_item_remove(item);
+        ipatch_item_remove(region);
         item = ipatch_item_next(&iter);
     }
 
@@ -423,7 +424,7 @@
 /**
  * ipatch_dls2_sample_set_data:
  * @sample: Sample to set sample data of
- * @sampledata: Sample data to set sample to
+ * @sampledata: Sample data to set sample to. Should be NULL or a 
IpatchSampleData object
  *
  * Set a sample's sample data object.
  */
@@ -444,10 +445,12 @@
     IpatchSampleData *old_sampledata;
 
     g_return_val_if_fail(IPATCH_IS_DLS2_SAMPLE(sample), FALSE);
-    g_return_val_if_fail(IPATCH_IS_SAMPLE_DATA(sampledata), FALSE);
-
-    g_object_ref(sampledata);  /* ++ ref for sample */
-    ipatch_sample_data_used(sampledata);    /* ++ inc use count */
+    if(sampledata != NULL)
+    {
+        g_return_val_if_fail (IPATCH_IS_SAMPLE_DATA (sampledata), FALSE);
+        g_object_ref (sampledata);     /* ++ ref for sample */
+        ipatch_sample_data_used (sampledata);   /* ++ inc use count */
+    }
 
     IPATCH_ITEM_WLOCK(sample);
     old_sampledata = sample->sample_data;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLSFile.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLSFile.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLSFile.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLSFile.c 2021-01-22 
21:50:51.000000000 +0100
@@ -40,7 +40,7 @@
 static gboolean ipatch_dls_file_identify(IpatchFile *file, IpatchFileHandle 
*handle,
         GError **err);
 
-G_DEFINE_TYPE(IpatchDLSFile, ipatch_dls_file, IPATCH_TYPE_FILE);
+G_DEFINE_TYPE(IpatchDLSFile, ipatch_dls_file, IPATCH_TYPE_FILE)
 
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLSReader.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLSReader.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLSReader.c       2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLSReader.c       2021-01-22 
21:50:51.000000000 +0100
@@ -530,6 +530,9 @@
     g_hash_table_destroy(fixup_hash);  /* destroy fixup hash */
     reader->needs_fixup = FALSE;
 
+    /* reset changed state (set by ipatch_dls_reader_fixup()*/
+    g_object_set (IPATCH_BASE(reader->dls), "changed", FALSE, NULL);
+
     return (TRUE);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchDLSWriter.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchDLSWriter.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchDLSWriter.c       2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchDLSWriter.c       2021-01-22 
21:50:51.000000000 +0100
@@ -106,7 +106,7 @@
 static gboolean gig_write_group_names(IpatchDLSWriter *writer, GError **err);
 
 
-G_DEFINE_TYPE(IpatchDLSWriter, ipatch_dls_writer, IPATCH_TYPE_RIFF);
+G_DEFINE_TYPE(IpatchDLSWriter, ipatch_dls_writer, IPATCH_TYPE_RIFF)
 
 
 static void
@@ -286,6 +286,11 @@
         goto err;
     }
 
+    /* reset flag "changed" to false. set flag "saved" to true */
+    g_object_set (writer->orig_dls,
+                  "changed", FALSE, /* file and object are in sync */
+                  "saved", TRUE,    /* has now been saved */
+                  NULL);
     /* </DLS > */
 
     return (TRUE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchFile.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchFile.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchFile.c    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchFile.c    2021-01-22 
21:50:51.000000000 +0100
@@ -105,7 +105,7 @@
     NULL                               /* get_size method */
 };
 
-G_DEFINE_TYPE(IpatchFile, ipatch_file, IPATCH_TYPE_ITEM);
+G_DEFINE_TYPE(IpatchFile, ipatch_file, IPATCH_TYPE_ITEM)
 
 /* Lock and hash for file pool */
 G_LOCK_DEFINE_STATIC(ipatch_file_pool);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchGigFile.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchGigFile.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchGigFile.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchGigFile.c 2021-01-22 
21:50:51.000000000 +0100
@@ -39,7 +39,7 @@
 static gboolean ipatch_gig_file_identify_method(IpatchFile *file,
         IpatchFileHandle *handle, GError **err);
 
-G_DEFINE_TYPE(IpatchGigFile, ipatch_gig_file, IPATCH_TYPE_DLS_FILE);
+G_DEFINE_TYPE(IpatchGigFile, ipatch_gig_file, IPATCH_TYPE_DLS_FILE)
 
 
 /* GigaSampler file class init function */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchItem.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchItem.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchItem.c    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchItem.c    2021-01-22 
21:50:51.000000000 +0100
@@ -1715,7 +1715,7 @@
         }
         else
         {
-            unique = unique = NULL;    /* indicate no unique properties */
+            unique = NULL;    /* indicate no unique properties */
         }
 
         g_hash_table_insert(unique_prop_cache, GUINT_TO_POINTER(type), unique);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchRiff.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchRiff.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchRiff.c    2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchRiff.c    2021-01-22 
21:50:51.000000000 +0100
@@ -38,7 +38,7 @@
 static gboolean verify_chunk_idstr(char idstr[4]);
 
 
-G_DEFINE_TYPE(IpatchRiff, ipatch_riff, G_TYPE_OBJECT);
+G_DEFINE_TYPE(IpatchRiff, ipatch_riff, G_TYPE_OBJECT)
 
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSF2File.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2File.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2File.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2File.c 2021-01-22 
21:50:51.000000000 +0100
@@ -55,7 +55,7 @@
 static gboolean ipatch_sf2_file_real_set_sample24_pos(IpatchSF2File *file,
         guint sample24_pos);
 
-G_DEFINE_TYPE(IpatchSF2File, ipatch_sf2_file, IPATCH_TYPE_FILE);
+G_DEFINE_TYPE(IpatchSF2File, ipatch_sf2_file, IPATCH_TYPE_FILE)
 
 
 /* SoundFont file class init function */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_DLS.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_DLS.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_DLS.c       
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_DLS.c       
2021-01-22 21:50:51.000000000 +0100
@@ -246,10 +246,10 @@
     return (TRUE);
 }
 
-CONVERTER_CLASS_INIT(dls2_inst_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(dls2_region_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(dls2_sample_to_sf2_voice_cache);
+CONVERTER_CLASS_INIT(dls2_inst_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(dls2_region_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(dls2_sample_to_sf2_voice_cache)
 
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_inst_to_sf2_voice_cache, 
DLS2InstToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_region_to_sf2_voice_cache, 
DLS2RegionToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_sample_to_sf2_voice_cache, 
DLS2SampleToSF2VoiceCache);
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_inst_to_sf2_voice_cache, 
DLS2InstToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_region_to_sf2_voice_cache, 
DLS2RegionToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(dls2_sample_to_sf2_voice_cache, 
DLS2SampleToSF2VoiceCache)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_Gig.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_Gig.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_Gig.c       
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_Gig.c       
2021-01-22 21:50:51.000000000 +0100
@@ -301,8 +301,8 @@
 #define _gig_sample_to_sf2_voice_cache_convert \
   _dls2_sample_to_sf2_voice_cache_convert
 
-CONVERTER_CLASS_INIT(gig_inst_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(gig_sample_to_sf2_voice_cache);
+CONVERTER_CLASS_INIT(gig_inst_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(gig_sample_to_sf2_voice_cache)
 
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(gig_inst_to_sf2_voice_cache, 
GigInstToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(gig_sample_to_sf2_voice_cache, 
GigSampleToSF2VoiceCache);
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(gig_inst_to_sf2_voice_cache, 
GigInstToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(gig_sample_to_sf2_voice_cache, 
GigSampleToSF2VoiceCache)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_SF2.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_SF2.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_SF2.c       
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_SF2.c       
2021-01-22 21:50:51.000000000 +0100
@@ -455,14 +455,14 @@
     return (TRUE);
 }
 
-CONVERTER_CLASS_INIT(sf2_preset_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sf2_pzone_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sf2_inst_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sf2_izone_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sf2_sample_to_sf2_voice_cache);
+CONVERTER_CLASS_INIT(sf2_preset_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sf2_pzone_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sf2_inst_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sf2_izone_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sf2_sample_to_sf2_voice_cache)
 
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_preset_to_sf2_voice_cache, 
SF2PresetToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_pzone_to_sf2_voice_cache, 
SF2PZoneToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_inst_to_sf2_voice_cache, 
SF2InstToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_izone_to_sf2_voice_cache, 
SF2IZoneToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_sample_to_sf2_voice_cache, 
SF2SampleToSF2VoiceCache);
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_preset_to_sf2_voice_cache, 
SF2PresetToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_pzone_to_sf2_voice_cache, 
SF2PZoneToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_inst_to_sf2_voice_cache, 
SF2InstToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_izone_to_sf2_voice_cache, 
SF2IZoneToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sf2_sample_to_sf2_voice_cache, 
SF2SampleToSF2VoiceCache)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_SLI.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_SLI.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_SLI.c       
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_SLI.c       
2021-01-22 21:50:51.000000000 +0100
@@ -192,10 +192,10 @@
     return (TRUE);
 }
 
-CONVERTER_CLASS_INIT(sli_inst_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sli_zone_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(sli_sample_to_sf2_voice_cache);
+CONVERTER_CLASS_INIT(sli_inst_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sli_zone_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(sli_sample_to_sf2_voice_cache)
 
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_inst_to_sf2_voice_cache, 
SLIInstToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_zone_to_sf2_voice_cache, 
SLIZoneToSF2VoiceCache);
-CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_sample_to_sf2_voice_cache, 
SLISampleToSF2VoiceCache);
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_inst_to_sf2_voice_cache, 
SLIInstToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_zone_to_sf2_voice_cache, 
SLIZoneToSF2VoiceCache)
+CONVERTER_SF2_VOICE_CACHE_GET_TYPE(sli_sample_to_sf2_voice_cache, 
SLISampleToSF2VoiceCache)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_VBank.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_VBank.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSF2VoiceCache_VBank.c     
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSF2VoiceCache_VBank.c     
2021-01-22 21:50:51.000000000 +0100
@@ -236,8 +236,8 @@
   _vbank_inst_to_sf2_voice_cache_convert
 
 
-CONVERTER_CLASS_INIT(vbank_inst_to_sf2_voice_cache);
-CONVERTER_CLASS_INIT(vbank_region_to_sf2_voice_cache);
+CONVERTER_CLASS_INIT(vbank_inst_to_sf2_voice_cache)
+CONVERTER_CLASS_INIT(vbank_region_to_sf2_voice_cache)
 
-CONVERTER_GET_TYPE(vbank_inst_to_sf2_voice_cache, VBankInstToSF2VoiceCache);
-CONVERTER_GET_TYPE(vbank_region_to_sf2_voice_cache, 
VBankRegionToSF2VoiceCache);
+CONVERTER_GET_TYPE(vbank_inst_to_sf2_voice_cache, VBankInstToSF2VoiceCache)
+CONVERTER_GET_TYPE(vbank_region_to_sf2_voice_cache, VBankRegionToSF2VoiceCache)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSLIFile.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSLIFile.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSLIFile.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSLIFile.c 2021-01-22 
21:50:51.000000000 +0100
@@ -37,7 +37,7 @@
 static gboolean ipatch_sli_file_identify(IpatchFile *file,
         IpatchFileHandle *handle, GError **err);
 
-G_DEFINE_TYPE(IpatchSLIFile, ipatch_sli_file, IPATCH_TYPE_FILE);
+G_DEFINE_TYPE(IpatchSLIFile, ipatch_sli_file, IPATCH_TYPE_FILE)
 
 
 /* Spectralis file class init function */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSLIInst.h 
new/libinstpatch-1.1.6/libinstpatch/IpatchSLIInst.h
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSLIInst.h 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSLIInst.h 2021-01-22 
21:50:51.000000000 +0100
@@ -136,7 +136,11 @@
 
 /* Defined in IpatchSLIInst_CatMaps.c */
 extern const char *ipatch_sli_inst_cat_strings[];
+/* getter fonction that returns pointer on ipatch_sli_inst_cat_strings table */
+extern const gchar **ipatch_sli_inst_get_cat_strings(void);
 extern const IpatchSLIInstCatMapEntry ipatch_sli_inst_cat_map[];
+/* getter fonction that returns pointer on ipatch_sli_inst_cat_map table */
+extern const IpatchSLIInstCatMapEntry * ipatch_sli_inst_get_cat_map(void);
 
 /* SoundFont instrument item */
 struct _IpatchSLIInst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSLIInst_CatMaps.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSLIInst_CatMaps.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSLIInst_CatMaps.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSLIInst_CatMaps.c 2021-01-22 
21:50:51.000000000 +0100
@@ -160,3 +160,21 @@
     { 'D', IPATCH_SLI_INST_CAT_D_SYNTH, ipatch_sli_inst_subcat_map_dsynth },
     { '@', IPATCH_SLI_INST_CAT_OTHER, NULL }
 };
+
+/**
+ * Getter fonction to access ipatch_sli_inst_cat_map[] table
+ * @return pointer on ipatch_sli_inst_cat_map[] table
+ */
+const IpatchSLIInstCatMapEntry * ipatch_sli_inst_get_cat_map(void)
+{
+    return ipatch_sli_inst_cat_map;
+}
+
+/**
+ * Getter fonction to access ipatch_sli_inst_cat_map[] table
+ * @return pointer on ipatch_sli_inst_cat_strings[] table
+ */
+const char **ipatch_sli_inst_get_cat_strings(void)
+{
+    return ipatch_sli_inst_cat_strings;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSLIWriter.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSLIWriter.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSLIWriter.c       2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSLIWriter.c       2021-01-22 
21:50:51.000000000 +0100
@@ -87,7 +87,7 @@
         IpatchSLISample *sample,
         GError **err);
 
-G_DEFINE_TYPE(IpatchSLIWriter, ipatch_sli_writer, G_TYPE_OBJECT);
+G_DEFINE_TYPE(IpatchSLIWriter, ipatch_sli_writer, G_TYPE_OBJECT)
 
 static void
 ipatch_sli_writer_class_init(IpatchSLIWriterClass *klass)
@@ -509,7 +509,7 @@
     IpatchIter iz_iter;
     IpatchSLIInst *inst;
     IpatchSLIZone *zone;
-    IpatchSLISample *sample;
+    IpatchSLISample *sample = NULL;
     SampleHashValue *sample_info;
     GPtrArray *samples;
     IpatchSLISiIg siig;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSampleData.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSampleData.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSampleData.c      2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSampleData.c      2021-01-22 
21:50:51.000000000 +0100
@@ -1065,7 +1065,7 @@
     GSList *p, *prev = NULL;
     int src_format;
     guint32 maskval, src_channel_map;
-    CachingInfo *cinfo;   /* Silence gcc (why?) */
+    CachingInfo *cinfo = NULL;   /* Silence gcc (why?) */
     CachingInfo *new_cinfo = NULL;
     int rate;
     int i;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchSampleStoreSwap.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSampleStoreSwap.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSampleStoreSwap.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSampleStoreSwap.c 2021-01-22 
21:50:51.000000000 +0100
@@ -359,17 +359,40 @@
 }
 
 /* Opens swap file (either assigned file name or temporary file) */
+/*
+ The application could set the swap file name calling following functions:
+ 1)ipatch_set_sample_store_swap_file_name(swap_filename)
+
+ 2)However, when multiple applications are calling libinstpatch it
+ is best for each application to call ipatch_set_application_name().
+ In this case, if the application do not call 
ipatch_set_sample_store_swap_file_name(),
+ a swap file name is build using application name as prefix of swap file name.
+ For example calling ipatch_set_sample_store_swap_file_name("swami") leads
+ to a default swap file "swami-swap_XXXXXX"
+
+ 3)If ipatch_set_sample_store_swap_file_name() or ipatch_set_application_name()
+   are not called, the default file name is "libInstPatch-swap_XXXXXX"
+
+ In case 2 and 3, the swap file directory is the one used for temporary files
+ returned by g_get_tmp_dir().
+*/
 static void
 ipatch_sample_store_swap_open_file(void)
 {
     char *template = NULL, *s;
-    GError *local_err = NULL;
 
     G_LOCK(swap);         // ++ lock swap
 
     if(swap_file_name)    // Use existing name if it was assigned
     {
-        swap_fd = g_open(swap_file_name, O_RDWR | O_CREAT, 0600);
+#ifdef G_OS_WIN32
+        /* On Windows, calling g_open leads to memory violation access on next
+           call to lseek.
+        */
+        swap_fd = _open(swap_file_name, O_RDWR | O_CREAT, _S_IREAD | 
_S_IWRITE);
+#else
+        swap_fd = g_open (swap_file_name, O_RDWR | O_CREAT, 0600);
+#endif
 
         if(swap_fd != -1)
         {
@@ -410,16 +433,39 @@
         }
     }
 
-    swap_fd = g_file_open_tmp(template ? template : "libInstPatch-swap_XXXXXX",
-                              &swap_file_name, &local_err);
-    g_free(template);           // -- free template string (if set)
+    /* Open swap file name in temporary directory */
+#ifdef G_OS_WIN32
 
-    if(swap_fd == -1)
+    /* On Windows, calling g_open leads to memory violation access on next
+       call to lseek.
+    */
+
+    /* ++ alloc swap_file_name */
+    swap_file_name = g_build_filename(g_get_tmp_dir(),
+                             template ? template : "libInstPatch-swap_XXXXXX",
+                             NULL);
+    swap_fd = _open(swap_file_name, O_RDWR | O_CREAT, _S_IREAD | _S_IWRITE);
+    g_free (template);          // -- free template string (if set)
+    if (swap_fd == -1)
     {
         g_critical(_("Failed to create temp sample store swap file: %s"),
-                   ipatch_gerror_message(local_err));
-        g_clear_error(&local_err);
+                     swap_file_name);
     }
+#else
+    {
+        GError *local_err = NULL;
+        swap_fd = g_file_open_tmp(template ? template : 
"libInstPatch-swap_XXXXXX",
+                                  &swap_file_name, &local_err);
+        g_free(template);          // -- free template string (if set)
+
+        if (swap_fd == -1)
+        {
+            g_critical(_("Failed to create temp sample store swap file: %s"),
+                       ipatch_gerror_message(local_err));
+            g_clear_error (&local_err);
+        }
+    }
+#endif
 
     G_UNLOCK(swap);       // -- unlock swap
 }
@@ -706,7 +752,15 @@
 
     // Create new swap file to copy existing disk samples to
     newname = g_strconcat(swap_file_name, "_new", NULL);  // ++ alloc new file 
name (same as existing one + _new)
-    newfd = g_open(newname, O_RDWR | O_CREAT, 0600);
+
+#ifdef G_OS_WIN32
+    /* On Windows, calling g_open leads to memory violation access on next
+       call to lseek.
+    */
+    newfd = _open (newname, O_RDWR | O_CREAT, _S_IREAD | _S_IWRITE);
+#else
+    newfd = g_open (newname, O_RDWR | O_CREAT, 0600);
+#endif
 
     if(newfd == -1)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchSndFile.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchSndFile.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchSndFile.c 2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchSndFile.c 2021-01-22 
21:50:51.000000000 +0100
@@ -40,7 +40,7 @@
 static gboolean ipatch_snd_file_identify(IpatchFile *file, IpatchFileHandle 
*handle,
         GError **err);
 
-G_DEFINE_TYPE(IpatchSndFile, ipatch_snd_file, IPATCH_TYPE_FILE);
+G_DEFINE_TYPE(IpatchSndFile, ipatch_snd_file, IPATCH_TYPE_FILE)
 
 
 /* Get type of dynamic libsndfile file format enum (register it as needed) */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchVBank.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchVBank.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchVBank.c   2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchVBank.c   2021-01-22 
21:50:51.000000000 +0100
@@ -74,7 +74,7 @@
 ipatch_vbank_base_find_item_by_locale(IpatchBase *base, int bank, int program);
 
 
-G_DEFINE_TYPE(IpatchVBank, ipatch_vbank, IPATCH_TYPE_BASE);
+G_DEFINE_TYPE(IpatchVBank, ipatch_vbank, IPATCH_TYPE_BASE)
 
 static GType vbank_child_types[2] = { 0 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchVBankInst.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchVBankInst.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchVBankInst.c       2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchVBankInst.c       2021-01-22 
21:50:51.000000000 +0100
@@ -64,7 +64,7 @@
                                       IpatchIter *iter, GType type);
 
 
-G_DEFINE_TYPE(IpatchVBankInst, ipatch_vbank_inst, IPATCH_TYPE_CONTAINER);
+G_DEFINE_TYPE(IpatchVBankInst, ipatch_vbank_inst, IPATCH_TYPE_CONTAINER)
 
 static GType inst_child_types[2] = { 0 };
 static GParamSpec *name_pspec, *bank_pspec, *program_pspec;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/IpatchVBankRegion.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchVBankRegion.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchVBankRegion.c     2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchVBankRegion.c     2021-01-22 
21:50:51.000000000 +0100
@@ -66,7 +66,7 @@
         IpatchItem *item,
         gboolean sample_notify);
 
-G_DEFINE_TYPE(IpatchVBankRegion, ipatch_vbank_region, IPATCH_TYPE_ITEM);
+G_DEFINE_TYPE(IpatchVBankRegion, ipatch_vbank_region, IPATCH_TYPE_ITEM)
 
 static GParamSpec *link_item_pspec;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libinstpatch-1.1.5/libinstpatch/IpatchVirtualContainer_types.c 
new/libinstpatch-1.1.6/libinstpatch/IpatchVirtualContainer_types.c
--- old/libinstpatch-1.1.5/libinstpatch/IpatchVirtualContainer_types.c  
2020-05-26 13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/IpatchVirtualContainer_types.c  
2021-01-22 21:50:51.000000000 +0100
@@ -41,47 +41,56 @@
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_dls2_melodic, IpatchVirtualDLS2Melodic,
  _("Melodic Instruments"), _("Non percussion instruments"),
- IPATCH_TYPE_DLS2_INST);
+ IPATCH_TYPE_DLS2_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_dls2_percussion, IpatchVirtualDLS2Percussion,
  _("Percussion Instruments"), _("Percussion Instruments"),
- IPATCH_TYPE_DLS2_INST);
+ IPATCH_TYPE_DLS2_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_dls2_samples, IpatchVirtualDLS2Samples,
  _("Samples"), _("Samples"),
- IPATCH_TYPE_DLS2_SAMPLE);
+ IPATCH_TYPE_DLS2_SAMPLE)
 
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_gig_melodic, IpatchVirtualGigMelodic,
  _("Melodic Instruments"), _("Non percussion instruments"),
- IPATCH_TYPE_GIG_INST);
+ IPATCH_TYPE_GIG_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_gig_percussion, IpatchVirtualGigPercussion,
  _("Percussion Instruments"), _("Percussion Instruments"),
- IPATCH_TYPE_GIG_INST);
+ IPATCH_TYPE_GIG_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_gig_samples, IpatchVirtualGigSamples,
- _("Samples"), _("Samples"), IPATCH_TYPE_GIG_SAMPLE);
+ _("Samples"), _("Samples"), IPATCH_TYPE_GIG_SAMPLE)
 
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sf2_inst, IpatchVirtualSF2Inst,
- _("Instruments"), _("Instruments"), IPATCH_TYPE_SF2_INST);
+ _("Instruments"), _("Instruments"), IPATCH_TYPE_SF2_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sf2_melodic, IpatchVirtualSF2Melodic,
- _("Melodic Presets"), _("Non percussion presets"), IPATCH_TYPE_SF2_PRESET);
+ _("Melodic Presets"), _("Non percussion presets"), IPATCH_TYPE_SF2_PRESET)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sf2_percussion, IpatchVirtualSF2Percussion,
- _("Percussion Presets"), _("Percussion Presets"), IPATCH_TYPE_SF2_PRESET);
+ _("Percussion Presets"), _("Percussion Presets"), IPATCH_TYPE_SF2_PRESET)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sf2_samples, IpatchVirtualSF2Samples,
- _("Samples"), _("Samples"), IPATCH_TYPE_SF2_SAMPLE);
+ _("Samples"), _("Samples"), IPATCH_TYPE_SF2_SAMPLE)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sf2_rom, IpatchVirtualSF2Rom,
- _("ROM Samples"), _("ROM Samples"), IPATCH_TYPE_SF2_SAMPLE);
+ _("ROM Samples"), _("ROM Samples"), IPATCH_TYPE_SF2_SAMPLE)
 
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sli_inst, IpatchVirtualSLIInst,
- _("Instruments"), _("Instruments"), IPATCH_TYPE_SLI_INST);
+ _("Instruments"), _("Instruments"), IPATCH_TYPE_SLI_INST)
+
 IPATCH_VIRTUAL_CONTAINER_CREATE
 (ipatch_virtual_sli_samples, IpatchVirtualSLISamples,
- _("Samples"), _("Samples"), IPATCH_TYPE_SLI_SAMPLE);
+ _("Samples"), _("Samples"), IPATCH_TYPE_SLI_SAMPLE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libinstpatch-1.1.5/libinstpatch/libinstpatch.def 
new/libinstpatch-1.1.6/libinstpatch/libinstpatch.def
--- old/libinstpatch-1.1.5/libinstpatch/libinstpatch.def        2020-05-26 
13:09:21.000000000 +0200
+++ new/libinstpatch-1.1.6/libinstpatch/libinstpatch.def        2021-01-22 
21:50:51.000000000 +0100
@@ -1,4 +1,3 @@
-LIBRARY
 EXPORTS
 
 ipatch_close
@@ -60,6 +59,7 @@
 ipatch_container_count
 ipatch_container_get_child_types
 ipatch_container_get_children
+ipatch_container_get_children_list
 ipatch_container_get_type
 ipatch_container_get_virtual_types
 ipatch_container_init_iter
@@ -365,6 +365,7 @@
 ipatch_file_write_u8
 ipatch_find_converter
 ;ipatch_find_paste_handler
+ipatch_glist_unref_free
 ipatch_gerror_message
 ;ipatch_get_conversion_dest_types
 ;ipatch_get_conversion_src_types
@@ -883,9 +884,13 @@
 ipatch_strconcat_num
 
 ipatch_sli_get_type
-ipatch_sli_inst_cat_strings
+;ipatch_sli_inst_cat_strings
+;getter fonction that returns pointer on ipatch_sli_inst_cat_strings table
+ipatch_sli_inst_get_cat_strings
 ipatch_sli_sample_get_type
-ipatch_sli_inst_cat_map
+;ipatch_sli_inst_cat_map
+;getter fonction that returns pointer on ipatch_sli_inst_cat_map table
+ipatch_sli_inst_get_cat_map
 ipatch_sli_inst_get_category_as_path
 ipatch_sli_inst_get_type
 ipatch_sli_zone_get_type

Reply via email to