1 /* FluidSynth - A Software Synthesizer
2  *
3  * Copyright (C) 2003  Peter Hanappe and others.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public License
7  * as published by the Free Software Foundation; either version 2 of
8  * the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the Free
17  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18  * 02110-1301, USA
19  */
20 
21 
22 #ifndef _FLUID_RAMSFONT_H
23 #define _FLUID_RAMSFONT_H
24 
25 
26 #include "fluidsynth.h"
27 #include "fluidsynth_priv.h"
28 
29 #include "fluid_defsfont.h"
30 
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
37   /*
38  * fluid_ramsfont_t
39  */
40 struct _fluid_ramsfont_t
41 {
42   char name[21];                        /* the name of the soundfont */
43   fluid_list_t* sample;    /* the samples in this soundfont */
44   fluid_rampreset_t* preset;    /* the presets of this soundfont */
45 
46   fluid_preset_t iter_preset;        /* preset interface used in the iteration */
47   fluid_rampreset_t* iter_cur;       /* the current preset in the iteration */
48 };
49 
50 /*
51  * fluid_preset_t
52  */
53 struct _fluid_rampreset_t
54 {
55   fluid_rampreset_t* next;
56   fluid_ramsfont_t* sfont;                  /* the soundfont this preset belongs to */
57   char name[21];                        /* the name of the preset */
58   unsigned int bank;                    /* the bank number */
59   unsigned int num;                     /* the preset number */
60   fluid_preset_zone_t* global_zone;        /* the global zone of the preset */
61   fluid_preset_zone_t* zone;               /* the chained list of preset zones */
62   fluid_list_t *presetvoices;									/* chained list of used voices */
63 };
64 
65 
66 #ifdef __cplusplus
67 }
68 #endif
69 
70 #endif  /* _FLUID_SFONT_H */
71