Added fluid_synth_remove_sfont, moved fluid_synth_add_sfont from

fluid_ramsfont.c to fluid_synth.c
This commit is contained in:
Peter Hanappe 2004-05-07 09:53:39 +00:00
parent 89d04366c1
commit 03ec4ff354
4 changed files with 43 additions and 18 deletions

View file

@ -1,3 +1,7 @@
2004-05-07 Peter Hanappe <peter@hanappe.com>
* src/fluid_synth.c (fluid_synth_remove_sfont): Added new function
2004-05-05 Peter Hanappe <peter@hanappe.com>
* src/fluid_alsa.c (new_fluid_alsa_seq_driver): The alsa driver

View file

@ -218,6 +218,15 @@ FLUIDSYNTH_API int fluid_synth_sfunload(fluid_synth_t* synth, unsigned int id, i
*/
FLUIDSYNTH_API int fluid_synth_add_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont);
/** Remove a SoundFont that was previously added using
* fluid_synth_add_sfont(). The synthesizer does not delete the
* SoundFont; this is responsability of the caller.
\param synth The synthesizer object
\param sfont The SoundFont
*/
FLUIDSYNTH_API void fluid_synth_remove_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont);
/** Count the number of loaded SoundFonts.
\param synth The synthesizer object

View file

@ -20,7 +20,7 @@
#include "fluid_ramsfont.h"
#include "fluid_sys.h"
#include "fluid_synth.h" // for fluid_synth_add_sfont
#include "fluid_synth.h"
/* thenumber of samples before the start and after the end */
#define SAMPLE_LOOP_MARGIN 8
@ -63,23 +63,6 @@ fluid_ramsfont_create_sfont()
}
/*
* fluid_synth_add_sfont
*/
/* Could be in fluid_synth.c */
int fluid_synth_add_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont)
{
sfont->id = synth->sfont_id++;
/* insert the sfont as the first one on the list */
synth->sfont = fluid_list_prepend(synth->sfont, sfont);
/* reset the presets for all channels */
fluid_synth_program_reset(synth);
return sfont->id;
}
/***************************************************************
*
* PUBLIC INTERFACE

View file

@ -2256,6 +2256,35 @@ int fluid_synth_sfreload(fluid_synth_t* synth, unsigned int id)
}
/*
* fluid_synth_add_sfont
*/
int fluid_synth_add_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont)
{
sfont->id = synth->sfont_id++;
/* insert the sfont as the first one on the list */
synth->sfont = fluid_list_prepend(synth->sfont, sfont);
/* reset the presets for all channels */
fluid_synth_program_reset(synth);
return sfont->id;
}
/*
* fluid_synth_remove_sfont
*/
void fluid_synth_remove_sfont(fluid_synth_t* synth, fluid_sfont_t* sfont)
{
synth->sfont = fluid_list_remove(synth->sfont, sfont);
/* reset the presets for all channels */
fluid_synth_program_reset(synth);
}
/* fluid_synth_sfcount
*
* Returns the number of loaded SoundFonts