00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _FLUIDSYNTH_MOD_H
00022 #define _FLUIDSYNTH_MOD_H
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028
00029
00030
00031 #define FLUID_NUM_MOD 64
00032
00033
00034
00035
00036 struct _fluid_mod_t
00037 {
00038 unsigned char dest;
00039 unsigned char src1;
00040 unsigned char flags1;
00041 unsigned char src2;
00042 unsigned char flags2;
00043 double amount;
00044
00045
00046
00047
00048
00049 fluid_mod_t * next;
00050 };
00051
00052
00053
00054
00055
00056 enum fluid_mod_flags
00057 {
00058 FLUID_MOD_POSITIVE = 0,
00059 FLUID_MOD_NEGATIVE = 1,
00060 FLUID_MOD_UNIPOLAR = 0,
00061 FLUID_MOD_BIPOLAR = 2,
00062 FLUID_MOD_LINEAR = 0,
00063 FLUID_MOD_CONCAVE = 4,
00064 FLUID_MOD_CONVEX = 8,
00065 FLUID_MOD_SWITCH = 12,
00066 FLUID_MOD_GC = 0,
00067 FLUID_MOD_CC = 16
00068 };
00069
00070
00071
00072 enum fluid_mod_src
00073 {
00074 FLUID_MOD_NONE = 0,
00075 FLUID_MOD_VELOCITY = 2,
00076 FLUID_MOD_KEY = 3,
00077 FLUID_MOD_KEYPRESSURE = 10,
00078 FLUID_MOD_CHANNELPRESSURE = 13,
00079 FLUID_MOD_PITCHWHEEL = 14,
00080 FLUID_MOD_PITCHWHEELSENS = 16
00081 };
00082
00083
00084 FLUIDSYNTH_API fluid_mod_t * fluid_mod_new(void);
00085
00086
00087 FLUIDSYNTH_API void fluid_mod_delete(fluid_mod_t * mod);
00088
00089
00090 FLUIDSYNTH_API void fluid_mod_set_source1(fluid_mod_t* mod, int src, int flags);
00091 FLUIDSYNTH_API void fluid_mod_set_source2(fluid_mod_t* mod, int src, int flags);
00092 FLUIDSYNTH_API void fluid_mod_set_dest(fluid_mod_t* mod, int dst);
00093 FLUIDSYNTH_API void fluid_mod_set_amount(fluid_mod_t* mod, double amount);
00094
00095 FLUIDSYNTH_API int fluid_mod_get_source1(fluid_mod_t* mod);
00096 FLUIDSYNTH_API int fluid_mod_get_flags1(fluid_mod_t* mod);
00097 FLUIDSYNTH_API int fluid_mod_get_source2(fluid_mod_t* mod);
00098 FLUIDSYNTH_API int fluid_mod_get_flags2(fluid_mod_t* mod);
00099 FLUIDSYNTH_API int fluid_mod_get_dest(fluid_mod_t* mod);
00100 FLUIDSYNTH_API double fluid_mod_get_amount(fluid_mod_t* mod);
00101
00102
00103
00104
00105 FLUIDSYNTH_API int fluid_mod_test_identity(fluid_mod_t * mod1, fluid_mod_t * mod2);
00106
00107
00108 #ifdef __cplusplus
00109 }
00110 #endif
00111 #endif
00112