summaryrefslogtreecommitdiff
path: root/libs/fluidsynth/src/fluid_gen.c
diff options
context:
space:
mode:
Diffstat (limited to 'libs/fluidsynth/src/fluid_gen.c')
-rw-r--r--libs/fluidsynth/src/fluid_gen.c42
1 files changed, 5 insertions, 37 deletions
diff --git a/libs/fluidsynth/src/fluid_gen.c b/libs/fluidsynth/src/fluid_gen.c
index 0d07d786c6..cf3cc48b46 100644
--- a/libs/fluidsynth/src/fluid_gen.c
+++ b/libs/fluidsynth/src/fluid_gen.c
@@ -92,54 +92,22 @@ static const fluid_gen_info_t fluid_gen_info[] =
{ GEN_CUSTOM_FILTERQ, 1, 1, 0.0f, 960.0f, 0.0f }
};
-
-/**
- * Set an array of generators to their default values.
- * @param gen Array of generators (should be #GEN_LAST in size).
- * @return Always returns #FLUID_OK
- */
-int
-fluid_gen_set_default_values(fluid_gen_t *gen)
-{
- int i;
-
- for(i = 0; i < GEN_LAST; i++)
- {
- gen[i].flags = GEN_UNUSED;
- gen[i].mod = 0.0;
- gen[i].nrpn = 0.0;
- gen[i].val = fluid_gen_info[i].def;
- }
-
- return FLUID_OK;
-}
-
-
/* fluid_gen_init
*
* Set an array of generators to their initial value
*/
-int
+void
fluid_gen_init(fluid_gen_t *gen, fluid_channel_t *channel)
{
int i;
- fluid_gen_set_default_values(gen);
-
for(i = 0; i < GEN_LAST; i++)
{
- gen[i].nrpn = fluid_channel_get_gen(channel, i);
-
- /* This is an extension to the SoundFont standard. More
- * documentation is available at the fluid_synth_set_gen2()
- * function. */
- if(fluid_channel_get_gen_abs(channel, i))
- {
- gen[i].flags = GEN_ABS_NRPN;
- }
+ gen[i].flags = GEN_UNUSED;
+ gen[i].mod = 0.0;
+ gen[i].nrpn = (channel == NULL) ? 0.0 : fluid_channel_get_gen(channel, i);
+ gen[i].val = fluid_gen_info[i].def;
}
-
- return FLUID_OK;
}
fluid_real_t fluid_gen_scale(int gen, float value)