Hello community,

here is the log from the commit of package fluidsynth for openSUSE:Factory 
checked in at 2019-10-14 12:32:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fluidsynth (Old)
 and      /work/SRC/openSUSE:Factory/.fluidsynth.new.2352 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fluidsynth"

Mon Oct 14 12:32:34 2019 rev:46 rq:737235 version:2.0.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/fluidsynth/fluidsynth.changes    2019-08-27 
15:22:06.524819049 +0200
+++ /work/SRC/openSUSE:Factory/.fluidsynth.new.2352/fluidsynth.changes  
2019-10-14 12:32:35.516098292 +0200
@@ -1,0 +2,8 @@
+Thu Oct 10 17:25:18 UTC 2019 - Tom Mbrt <[email protected]>
+
+- Update to 2.0.7
+  * fix broken audio output when reverb was active after synth creation
+  * fix debug console messages not being visible for debug builds on
+    Windows
+
+-------------------------------------------------------------------

Old:
----
  fluidsynth-2.0.6.tar.gz

New:
----
  fluidsynth-2.0.7.tar.gz

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

Other differences:
------------------
++++++ fluidsynth.spec ++++++
--- /var/tmp/diff_new_pack.mr0Z6D/_old  2019-10-14 12:32:36.376096043 +0200
+++ /var/tmp/diff_new_pack.mr0Z6D/_new  2019-10-14 12:32:36.380096032 +0200
@@ -24,7 +24,7 @@
 %endif
 
 Name:           fluidsynth
-Version:        2.0.6
+Version:        2.0.7
 Release:        0
 Summary:        A Real-Time Software Synthesizer That Uses Soundfont(tm)
 License:        LGPL-2.1-or-later

++++++ fluidsynth-2.0.6.tar.gz -> fluidsynth-2.0.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/CMakeLists.txt 
new/fluidsynth-2.0.7/CMakeLists.txt
--- old/fluidsynth-2.0.6/CMakeLists.txt 2019-08-17 18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/CMakeLists.txt 2019-09-27 16:53:27.000000000 +0200
@@ -29,7 +29,7 @@
 # FluidSynth package version
 set ( FLUIDSYNTH_VERSION_MAJOR 2 )
 set ( FLUIDSYNTH_VERSION_MINOR 0 )
-set ( FLUIDSYNTH_VERSION_MICRO 6 )
+set ( FLUIDSYNTH_VERSION_MICRO 7 )
 set ( VERSION 
"${FLUIDSYNTH_VERSION_MAJOR}.${FLUIDSYNTH_VERSION_MINOR}.${FLUIDSYNTH_VERSION_MICRO}"
 )
 set ( FLUIDSYNTH_VERSION "\"${VERSION}\"" )
 
@@ -43,8 +43,8 @@
 # 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_REVISION 3 )
+set ( LIB_VERSION_AGE 2 )
+set ( LIB_VERSION_REVISION 0 )
 set ( LIB_VERSION_INFO
       "${LIB_VERSION_CURRENT}.${LIB_VERSION_AGE}.${LIB_VERSION_REVISION}" )
 
@@ -189,7 +189,7 @@
   endif (CMAKE_C_COMPILER_ID STREQUAL "Intel" )
 
   # prepend to build type specific flags, to allow users to override
-  set ( CMAKE_C_FLAGS_DEBUG "-g -DDEBUG -fsanitize=undefined 
${CMAKE_C_FLAGS_DEBUG}" )
+  set ( CMAKE_C_FLAGS_DEBUG "-g ${CMAKE_C_FLAGS_DEBUG}" )
   
 endif ( CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang" OR 
CMAKE_C_COMPILER_ID STREQUAL "Intel" )
 
@@ -385,10 +385,9 @@
 endif ( NOT CMAKE_BUILD_TYPE )
 
 unset ( ENABLE_DEBUG CACHE )
-unset ( DEBUG CACHE )
 if ( CMAKE_BUILD_TYPE MATCHES "Debug" )
     set ( ENABLE_DEBUG 1 )
-    set ( DEBUG 1 )
+    add_definitions(-DDEBUG)
 endif ( CMAKE_BUILD_TYPE MATCHES "Debug" )
 
 # Additional targets to perform clang-format/clang-tidy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/doc/Doxyfile 
new/fluidsynth-2.0.7/doc/Doxyfile
--- old/fluidsynth-2.0.6/doc/Doxyfile   2019-08-17 18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/doc/Doxyfile   2019-09-27 16:53:27.000000000 +0200
@@ -5,7 +5,7 @@
 #---------------------------------------------------------------------------
 DOXYFILE_ENCODING = UTF-8
 PROJECT_NAME = libfluidsynth
-PROJECT_NUMBER = 2.0.6
+PROJECT_NUMBER = 2.0.7
 OUTPUT_DIRECTORY = api
 CREATE_SUBDIRS = NO
 OUTPUT_LANGUAGE = English
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth-v20-devdoc.txt 
new/fluidsynth-2.0.7/doc/fluidsynth-v20-devdoc.txt
--- old/fluidsynth-2.0.6/doc/fluidsynth-v20-devdoc.txt  2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/doc/fluidsynth-v20-devdoc.txt  2019-09-27 
16:53:27.000000000 +0200
@@ -8,8 +8,8 @@
 \author David Henningsson
 \author Tom Moebert
 \author Copyright &copy; 2003-2019 Peter Hanappe, Conrad Berhörster, Antoine 
Schmitt, Pedro López-Cabanillas, Josh Green, David Henningsson, Tom Moebert
-\version Revision 2.0.6
-\date 2019-08-17
+\version Revision 2.0.7
+\date 2019-09-25
 
 All the source code examples in this document are in the public domain; you 
can use them as you please. This document is licensed under the Creative 
Commons Attribution-Share Alike 3.0 Unported License. To view a copy of this 
license, visit http://creativecommons.org/licenses/by-sa/3.0/ . The FluidSynth 
library is distributed under the GNU Lesser General Public License. A copy of 
the GNU Lesser General Public License is contained in the FluidSynth package; 
if not, visit http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt or write to 
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 
02110-1301 USA.
 
@@ -21,6 +21,7 @@
 
 - \ref Disclaimer
 - \ref Introduction
+- \ref NewIn2_0_7
 - \ref NewIn2_0_6
 - \ref NewIn2_0_5
 - \ref NewIn2_0_3
@@ -64,6 +65,11 @@
 
 - FluidSynth is open source, in active development. For more details, take a 
look at http://www.fluidsynth.org
 
+
+\section NewIn2_0_7 Whats new in 2.0.7?
+
+- fluid_free() has been added to allow proper deallocation by programming 
languages other than C/C++
+
 \section NewIn2_0_6 Whats new in 2.0.6?
 
 - the MIDI player did not emit any audio when calling fluid_player_play() 
after fluid_player_stop()
@@ -376,7 +382,6 @@
     settings = new_fluid_settings();
     synth = new_fluid_synth(settings);
     player = new_fluid_player(synth);
-    adriver = new_fluid_audio_driver(settings, synth);
     /* process command line arguments */
     for (i = 1; i < argc; i++) {
         if (fluid_is_soundfont(argv[i])) {
@@ -386,6 +391,8 @@
             fluid_player_add(player, argv[i]);
         }
     }
+    /* start the synthesizer thread */
+    adriver = new_fluid_audio_driver(settings, synth);
     /* play the midi files, if any */
     fluid_player_play(player);
     /* wait for playback termination */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth_arpeggio.c 
new/fluidsynth-2.0.7/doc/fluidsynth_arpeggio.c
--- old/fluidsynth-2.0.6/doc/fluidsynth_arpeggio.c      2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/doc/fluidsynth_arpeggio.c      2019-09-27 
16:53:27.000000000 +0200
@@ -119,19 +119,18 @@
     {
         /* create the synth, driver and sequencer instances */
         synth = new_fluid_synth(settings);
-        audiodriver = new_fluid_audio_driver(settings, synth);
-        sequencer = new_fluid_sequencer();
-        /* register the synth with the sequencer */
-        synth_destination = fluid_sequencer_register_fluidsynth(sequencer,
-                            synth);
-        /* register the client name and callback */
-        client_destination = fluid_sequencer_register_client(sequencer,
-                             "arpeggio", sequencer_callback, NULL);
         /* load a SoundFont */
         n = fluid_synth_sfload(synth, argv[1], 1);
 
         if(n != -1)
         {
+            sequencer = new_fluid_sequencer();
+            /* register the synth with the sequencer */
+            synth_destination = fluid_sequencer_register_fluidsynth(sequencer,
+                                synth);
+            /* register the client name and callback */
+            client_destination = fluid_sequencer_register_client(sequencer,
+                             "arpeggio", sequencer_callback, NULL);
             if(argc > 2)
             {
                 n = atoi(argv[2]);
@@ -152,6 +151,8 @@
                 }
             }
 
+            audiodriver = new_fluid_audio_driver(settings, synth);
+
             /* get the current time in ticks */
             time_marker = fluid_sequencer_get_tick(sequencer);
             /* schedule patterns */
@@ -164,8 +165,8 @@
         }
 
         /* clean and exit */
-        delete_fluid_sequencer(sequencer);
         delete_fluid_audio_driver(audiodriver);
+        delete_fluid_sequencer(sequencer);
         delete_fluid_synth(synth);
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/doc/fluidsynth_metronome.c 
new/fluidsynth-2.0.7/doc/fluidsynth_metronome.c
--- old/fluidsynth-2.0.6/doc/fluidsynth_metronome.c     2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/doc/fluidsynth_metronome.c     2019-09-27 
16:53:27.000000000 +0200
@@ -105,19 +105,22 @@
     {
         /* create the synth, driver and sequencer instances */
         synth = new_fluid_synth(settings);
-        audiodriver = new_fluid_audio_driver(settings, synth);
-        sequencer = new_fluid_sequencer();
-        /* register the synth with the sequencer */
-        synth_destination = fluid_sequencer_register_fluidsynth(sequencer,
-                            synth);
-        /* register the client name and callback */
-        client_destination = fluid_sequencer_register_client(sequencer,
-                             "fluidsynth_metronome", sequencer_callback, NULL);
+
         /* load a SoundFont */
         n = fluid_synth_sfload(synth, argv[1], 1);
 
         if(n != -1)
         {
+            sequencer = new_fluid_sequencer();
+            /* register the synth with the sequencer */
+            synth_destination = fluid_sequencer_register_fluidsynth(sequencer,
+                                synth);
+            /* register the client name and callback */
+            client_destination = fluid_sequencer_register_client(sequencer,
+                                "fluidsynth_metronome", sequencer_callback, 
NULL);
+
+            audiodriver = new_fluid_audio_driver(settings, synth);
+
             if(argc > 2)
             {
                 n = atoi(argv[2]);
@@ -150,8 +153,8 @@
         }
 
         /* clean and exit */
-        delete_fluid_sequencer(sequencer);
         delete_fluid_audio_driver(audiodriver);
+        delete_fluid_sequencer(sequencer);
         delete_fluid_synth(synth);
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/include/fluidsynth/misc.h 
new/fluidsynth-2.0.7/include/fluidsynth/misc.h
--- old/fluidsynth-2.0.6/include/fluidsynth/misc.h      2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/include/fluidsynth/misc.h      2019-09-27 
16:53:27.000000000 +0200
@@ -62,6 +62,7 @@
 
 FLUIDSYNTH_API int fluid_is_soundfont(const char *filename);
 FLUIDSYNTH_API int fluid_is_midifile(const char *filename);
+FLUIDSYNTH_API void fluid_free(void* ptr);
 
 
 #ifdef __cplusplus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/src/synth/fluid_synth.c 
new/fluidsynth-2.0.7/src/synth/fluid_synth.c
--- old/fluidsynth-2.0.6/src/synth/fluid_synth.c        2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/src/synth/fluid_synth.c        2019-09-27 
16:53:27.000000000 +0200
@@ -131,11 +131,6 @@
 static void fluid_synth_reset_basic_channel_LOCAL(fluid_synth_t *synth, int 
chan, int nbr_chan);
 static int fluid_synth_check_next_basic_channel(fluid_synth_t *synth, int 
basicchan, int mode, int val);
 static void fluid_synth_set_basic_channel_LOCAL(fluid_synth_t *synth, int 
basicchan, int mode, int val);
-static int fluid_synth_set_reverb_full_LOCAL(fluid_synth_t *synth, int set, 
double roomsize,
-        double damping, double width, double level);
-
-static int fluid_synth_set_chorus_full_LOCAL(fluid_synth_t *synth, int set, 
int nr, double level,
-        double speed, double depth_ms, int type);
 
 /***************************************************************
  *
@@ -896,7 +891,7 @@
         fluid_settings_getnum(settings, "synth.reverb.width", &width);
         fluid_settings_getnum(settings, "synth.reverb.level", &level);
 
-        fluid_synth_set_reverb_full_LOCAL(synth,
+        fluid_synth_set_reverb_full(synth,
                                           FLUID_REVMODEL_SET_ALL,
                                           room,
                                           damp,
@@ -912,7 +907,7 @@
         fluid_settings_getnum(settings, "synth.chorus.speed", &speed);
         fluid_settings_getnum(settings, "synth.chorus.depth", &depth);
 
-        fluid_synth_set_chorus_full_LOCAL(synth,
+        fluid_synth_set_chorus_full(synth,
                                           FLUID_CHORUS_SET_ALL,
                                           i,
                                           level,
@@ -5044,6 +5039,7 @@
                             double damping, double width, double level)
 {
     int ret;
+    fluid_rvoice_param_t param[MAX_EVENT_PARAMS];
 
     fluid_return_val_if_fail(synth != NULL, FLUID_FAILED);
     /* if non of the flags is set, fail */
@@ -5052,16 +5048,6 @@
     /* Synth shadow values are set here so that they will be returned if 
querried */
 
     fluid_synth_api_enter(synth);
-    ret = fluid_synth_set_reverb_full_LOCAL(synth, set, roomsize, damping, 
width, level);
-    FLUID_API_RETURN(ret);
-}
-
-static int
-fluid_synth_set_reverb_full_LOCAL(fluid_synth_t *synth, int set, double 
roomsize,
-                                  double damping, double width, double level)
-{
-    int ret;
-    fluid_rvoice_param_t param[MAX_EVENT_PARAMS];
 
     if(set & FLUID_REVMODEL_SET_ROOMSIZE)
     {
@@ -5093,7 +5079,7 @@
                                          fluid_rvoice_mixer_set_reverb_params,
                                          synth->eventhandler->mixer,
                                          param);
-    return ret;
+    FLUID_API_RETURN(ret);
 }
 
 /**
@@ -5259,6 +5245,7 @@
                             double speed, double depth_ms, int type)
 {
     int ret;
+    fluid_rvoice_param_t param[MAX_EVENT_PARAMS];
 
     fluid_return_val_if_fail(synth != NULL, FLUID_FAILED);
     /* if non of the flags is set, fail */
@@ -5267,18 +5254,6 @@
     /* Synth shadow values are set here so that they will be returned if 
queried */
     fluid_synth_api_enter(synth);
 
-    ret = fluid_synth_set_chorus_full_LOCAL(synth, set, nr, level, speed, 
depth_ms, type);
-
-    FLUID_API_RETURN(ret);
-}
-
-static int
-fluid_synth_set_chorus_full_LOCAL(fluid_synth_t *synth, int set, int nr, 
double level,
-                                  double speed, double depth_ms, int type)
-{
-    int ret;
-    fluid_rvoice_param_t param[MAX_EVENT_PARAMS];
-
     if(set & FLUID_CHORUS_SET_NR)
     {
         synth->chorus_nr = nr;
@@ -5315,7 +5290,7 @@
                                          synth->eventhandler->mixer,
                                          param);
 
-    return (ret);
+    FLUID_API_RETURN(ret);
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluid_settings.c 
new/fluidsynth-2.0.7/src/utils/fluid_settings.c
--- old/fluidsynth-2.0.6/src/utils/fluid_settings.c     2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/src/utils/fluid_settings.c     2019-09-27 
16:53:27.000000000 +0200
@@ -1048,7 +1048,7 @@
  * @since 1.1.0
  *
  * Like fluid_settings_copystr() but allocates a new copy of the string.  
Caller
- * owns the string and should free it with free() when done using it.
+ * owns the string and should free it with fluid_free() when done using it.
  */
 int
 fluid_settings_dupstr(fluid_settings_t *settings, const char *name, char **str)
@@ -1117,7 +1117,7 @@
  * @param settings a settings object
  * @param name a setting's name
  * @param s a string to be tested
- * @return TRUE if the value exists and is equal to 's', FALSE otherwise
+ * @return TRUE if the value exists and is equal to \c s, FALSE otherwise
  */
 int
 fluid_settings_str_equal(fluid_settings_t *settings, const char *name, const 
char *s)
@@ -1645,7 +1645,7 @@
  * @param data any user provided pointer
  * @param func callback function to be called on each iteration
  *
- * @note Starting with FluidSynth 1.1.0 the \a func callback is called for each
+ * @note Starting with FluidSynth 1.1.0 the \p func callback is called for each
  * option in alphabetical order.  Sort order was undefined in previous 
versions.
  */
 void
@@ -1728,7 +1728,7 @@
  * @param name Settings name
  * @param separator String to use between options (NULL to use ", ")
  * @return Newly allocated string or NULL on error (out of memory, not a valid
- *   setting \a name or not a string setting).  Free the string when finished 
with it.
+ *   setting \p name or not a string setting). Free the string when finished 
with it by using fluid_free().
  * @since 1.1.0
  */
 char *
@@ -1870,7 +1870,7 @@
  * @param data any user provided pointer
  * @param func callback function to be called on each iteration
  *
- * @note Starting with FluidSynth 1.1.0 the \a func callback is called for each
+ * @note Starting with FluidSynth 1.1.0 the \p func callback is called for each
  * setting in alphabetical order.  Sort order was undefined in previous 
versions.
  */
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluid_sys.c 
new/fluidsynth-2.0.7/src/utils/fluid_sys.c
--- old/fluidsynth-2.0.6/src/utils/fluid_sys.c  2019-08-17 18:01:01.000000000 
+0200
+++ new/fluidsynth-2.0.7/src/utils/fluid_sys.c  2019-09-27 16:53:27.000000000 
+0200
@@ -196,6 +196,17 @@
 }
 
 /**
+ * Convenience wrapper for free() that satisfies at least C90 requirements.
+ * Especially useful when using fluidsynth with programming languages that do 
not provide malloc() and free().
+ * @note Only use this function when the API documentation explicitly says so. 
Otherwise use adequate \c delete_fluid_* functions.
+ * @since 2.0.7
+ */
+void fluid_free(void* ptr)
+{
+    free(ptr);
+}
+
+/**
  * An improved strtok, still trashes the input string, but is portable and
  * thread safe.  Also skips token chars at beginning of token string and never
  * returns an empty token (will return NULL if source ends in token chars 
though).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fluidsynth-2.0.6/src/utils/fluidsynth_priv.h 
new/fluidsynth-2.0.7/src/utils/fluidsynth_priv.h
--- old/fluidsynth-2.0.6/src/utils/fluidsynth_priv.h    2019-08-17 
18:01:01.000000000 +0200
+++ new/fluidsynth-2.0.7/src/utils/fluidsynth_priv.h    2019-09-27 
16:53:27.000000000 +0200
@@ -131,7 +131,7 @@
 #define FLUID_NEW(_t)                (_t*)malloc(sizeof(_t))
 #define FLUID_ARRAY_ALIGNED(_t,_n,_a) (_t*)malloc((_n)*sizeof(_t) + ((unsigned 
int)_a - 1u))
 #define FLUID_ARRAY(_t,_n)           FLUID_ARRAY_ALIGNED(_t,_n,1u)
-#define FLUID_FREE(_p)               free(_p)
+#define FLUID_FREE(_p)               fluid_free(_p)
 #define FLUID_FOPEN(_f,_m)           fopen(_f,_m)
 #define FLUID_FCLOSE(_f)             fclose(_f)
 #define FLUID_FREAD(_p,_s,_n,_f)     fread(_p,_s,_n,_f)


Reply via email to