]>
Commit | Line | Data |
---|---|---|
a372a8f0 JK |
1 | From 6e352b874ddffc6185e499cda12c1731d14a3708 Mon Sep 17 00:00:00 2001 |
2 | From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> | |
3 | Date: Wed, 17 Oct 2018 23:17:31 +0200 | |
4 | Subject: [PATCH] fluidsynth: Follow API change introduced in fluidsynth 2.0.0 | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> | |
10 | --- | |
11 | muse3/synti/fluidsynth/fluidsynti.cpp | 44 ++++++++++++++++++++++++++- | |
12 | 1 file changed, 43 insertions(+), 1 deletion(-) | |
13 | ||
14 | diff --git a/muse3/synti/fluidsynth/fluidsynti.cpp b/muse3/synti/fluidsynth/fluidsynti.cpp | |
15 | index 11f51e57..75322d7e 100644 | |
16 | --- a/muse3/synti/fluidsynth/fluidsynti.cpp | |
17 | +++ b/muse3/synti/fluidsynth/fluidsynti.cpp | |
18 | @@ -155,16 +155,22 @@ FluidSynth::~FluidSynth() | |
19 | std::cerr << DEBUG_ARGS << "Error unloading soundfont!" << fluid_synth_error(fluidsynth) << std::endl; | |
20 | } | |
21 | ||
22 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
23 | int err = delete_fluid_synth (fluidsynth); | |
24 | +#else | |
25 | + delete_fluid_synth (fluidsynth); | |
26 | +#endif | |
27 | if(gui) | |
28 | delete gui; | |
29 | ||
30 | if (initBuffer) | |
31 | delete [] initBuffer; | |
32 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
33 | if (err == -1) { | |
34 | std::cerr << DEBUG_ARGS << "error while destroying synth: " << fluid_synth_error(fluidsynth) << std::endl; | |
35 | return; | |
36 | - } | |
37 | + } | |
38 | +#endif | |
39 | } | |
40 | ||
41 | bool FluidSynth::init(const char* name) | |
42 | @@ -1368,7 +1374,11 @@ const char* FluidSynth::getPatchName(int i, int, bool /*drum*/) const | |
43 | else { | |
44 | fluid_preset_t *preset = fluid_synth_get_channel_preset(fluidsynth, i); | |
45 | if (!preset) return "<unknown>"; | |
46 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
47 | return preset->get_name(preset); | |
48 | +#else | |
49 | + return fluid_preset_get_name(preset); | |
50 | +#endif | |
51 | } | |
52 | } | |
53 | //--------------------------------------------------------- | |
54 | @@ -1414,12 +1424,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const | |
55 | if (!channels[channel].drumchannel) { | |
56 | for (unsigned bank = 0; bank < 128; ++bank) { | |
57 | for (unsigned patch = 0; patch < 128; ++patch) { | |
58 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
59 | preset = sfont->get_preset (sfont, bank, patch); | |
60 | +#else | |
61 | + preset = fluid_sfont_get_preset (sfont, bank, patch); | |
62 | +#endif | |
63 | if (preset) { | |
64 | midiPatch.hbank = bank; | |
65 | midiPatch.lbank = 0xff; // Off | |
66 | midiPatch.prog = patch; | |
67 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
68 | midiPatch.name = preset->get_name (preset); | |
69 | +#else | |
70 | + midiPatch.name = fluid_preset_get_name (preset); | |
71 | +#endif | |
72 | return &midiPatch; | |
73 | } | |
74 | } | |
75 | @@ -1429,12 +1447,20 @@ const MidiPatch* FluidSynth::getFirstPatch (int channel) const | |
76 | else { //This is a drumchannel | |
77 | int bank = 128; | |
78 | for (unsigned patch = 0; patch < 128; ++patch) { | |
79 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
80 | preset = sfont->get_preset (sfont, bank, patch); | |
81 | +#else | |
82 | + preset = fluid_sfont_get_preset (sfont, bank, patch); | |
83 | +#endif | |
84 | if (preset) { | |
85 | midiPatch.hbank = 0xff; // Off | |
86 | midiPatch.lbank = 0xff; // Off | |
87 | midiPatch.prog = patch; | |
88 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
89 | midiPatch.name = preset->get_name(preset); | |
90 | +#else | |
91 | + midiPatch.name = fluid_preset_get_name (preset); | |
92 | +#endif | |
93 | return &midiPatch; | |
94 | } | |
95 | } | |
96 | @@ -1466,13 +1492,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch) | |
97 | ||
98 | for (unsigned bank = patch->hbank; bank < 128; ++bank) { | |
99 | for ( ; prog < 128; ++prog) { | |
100 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
101 | preset = sfont->get_preset (sfont, bank, prog); | |
102 | +#else | |
103 | + preset = fluid_sfont_get_preset (sfont, bank, prog); | |
104 | +#endif | |
105 | if (preset) { | |
106 | //printf("Preset info: bank: %d prog: %d name: %s\n", bank, prog, preset->get_name(preset)); | |
107 | midiPatch.hbank = bank; | |
108 | midiPatch.lbank = 0xff; // Off | |
109 | midiPatch.prog = prog; | |
110 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
111 | midiPatch.name = preset->get_name (preset); | |
112 | +#else | |
113 | + midiPatch.name = fluid_preset_get_name (preset); | |
114 | +#endif | |
115 | return &midiPatch; | |
116 | } | |
117 | } | |
118 | @@ -1483,13 +1517,21 @@ const MidiPatch* FluidSynth::getNextPatch (int channel, const MidiPatch* patch) | |
119 | unsigned bank = 128; | |
120 | unsigned prog = patch->prog; | |
121 | for (prog = patch->prog + 1; prog < 128; ++prog) { | |
122 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
123 | preset = sfont->get_preset (sfont, bank, prog); | |
124 | +#else | |
125 | + preset = fluid_sfont_get_preset (sfont, bank, prog); | |
126 | +#endif | |
127 | if (preset) { | |
128 | //printf("Preset info: bank: %d prog: %d name: %s\n",bank, prog, preset->get_name(preset)); | |
129 | midiPatch.hbank = 0xff; // Off | |
130 | midiPatch.lbank = 0xff; // Off | |
131 | midiPatch.prog = prog; | |
132 | +#if FLUIDSYNTH_VERSION_MAJOR < 2 | |
133 | midiPatch.name = preset->get_name (preset); | |
134 | +#else | |
135 | + midiPatch.name = fluid_preset_get_name (preset); | |
136 | +#endif | |
137 | return &midiPatch; | |
138 | } | |
139 | } |