File fluidsynth2.patch of Package csound

Index: csound-6.12.2/Opcodes/fluidOpcodes/fluidOpcodes.cpp
===================================================================
--- csound-6.12.2.orig/Opcodes/fluidOpcodes/fluidOpcodes.cpp	2018-11-07 16:05:23.000000000 +0200
+++ csound-6.12.2/Opcodes/fluidOpcodes/fluidOpcodes.cpp	2019-04-05 15:33:21.652528196 +0200
@@ -208,6 +208,7 @@ public:
     } else if (listPresets) {
       fluid_sfont_t *fluidSoundfont =
           fluid_synth_get_sfont_by_id(fluidSynth, soundFontId);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
       fluid_preset_t fluidPreset;
       fluidSoundfont->iteration_start(fluidSoundfont);
       OPARMS oparms;
@@ -218,6 +219,19 @@ public:
               soundFontId, fluidPreset.get_banknum(&fluidPreset),
               fluidPreset.get_num(&fluidPreset),
               fluidPreset.get_name(&fluidPreset));
+#else
+      fluid_preset_t *fluidPreset;
+      fluid_sfont_iteration_start(fluidSoundfont);
+      OPARMS oparms;
+      csound->GetOParms(csound, &oparms);
+      if (oparms.msglevel & 0x7)
+        while (fluidPreset = fluid_sfont_iteration_next(fluidSoundfont))
+        {
+          log(csound, "SoundFont: %3d  Bank: %3d  Preset: %3d  %s\n",
+              soundFontId, fluid_preset_get_banknum(fluidPreset),
+              fluid_preset_get_num(fluidPreset),
+              fluid_preset_get_name(fluidPreset));
+#endif
         }
     }
     return result;
@@ -279,6 +293,7 @@ public:
       toa(iFluidSynth, fluidSynth);
       fluid_sfont_t *fluidSoundfont =
         fluid_synth_get_sfont(fluidSynth, 0);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
       fluid_preset_t fluidPreset;
       fluidSoundfont->iteration_start(fluidSoundfont);
       OPARMS oparms;
@@ -290,6 +305,19 @@ public:
             ss << "Bank: " << fluidPreset.get_banknum(&fluidPreset) <<
               " Preset: " << fluidPreset.get_num(&fluidPreset) <<
                 " Name: " << fluidPreset.get_name(&fluidPreset);
+#else
+      fluid_preset_t *fluidPreset;
+      fluid_sfont_iteration_start(fluidSoundfont);
+      OPARMS oparms;
+      csound->GetOParms(csound, &oparms);
+      if (oparms.msglevel & 0x7)
+        while (fluidPreset = fluid_sfont_iteration_next(fluidSoundfont))
+          {
+            std::stringstream ss;
+            ss << "Bank: " << fluid_preset_get_banknum(fluidPreset) <<
+              " Preset: " << fluid_preset_get_num(fluidPreset) <<
+                " Name: " << fluid_preset_get_name(fluidPreset);
+#endif
           programs.push_back(ss.str());
         }
 
openSUSE Build Service is sponsored by