1 /* 2 * libInstPatch 3 * Copyright (C) 1999-2014 Element Green <element@elementsofsound.org> 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Lesser General Public License 7 * as published by the Free Software Foundation; version 2.1 8 * of the License only. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18 * 02110-1301, USA or on the web at http://www.gnu.org. 19 */ 20 #ifndef __IPATCH_GIG_INST_H__ 21 #define __IPATCH_GIG_INST_H__ 22 23 #include <glib.h> 24 #include <glib-object.h> 25 26 /* forward type declarations */ 27 typedef struct _IpatchGigInst IpatchGigInst; 28 typedef struct _IpatchGigInstClass IpatchGigInstClass; 29 typedef struct _IpatchGigInstParams IpatchGigInstParams; 30 31 #include <libinstpatch/IpatchDLS2Inst.h> 32 33 #define IPATCH_TYPE_GIG_INST (ipatch_gig_inst_get_type ()) 34 #define IPATCH_GIG_INST(obj) \ 35 (G_TYPE_CHECK_INSTANCE_CAST ((obj), IPATCH_TYPE_GIG_INST, \ 36 IpatchGigInst)) 37 #define IPATCH_GIG_INST_CLASS(klass) \ 38 (G_TYPE_CHECK_CLASS_CAST ((klass), IPATCH_TYPE_GIG_INST, \ 39 IpatchGigInstClass)) 40 #define IPATCH_IS_GIG_INST(obj) \ 41 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), IPATCH_TYPE_GIG_INST)) 42 #define IPATCH_IS_GIG_INST_CLASS(klass) \ 43 (G_TYPE_CHECK_CLASS_TYPE ((klass), IPATCH_TYPE_GIG_INST)) 44 #define IPATCH_GIG_INST_GET_CLASS(obj) \ 45 (G_TYPE_INSTANCE_GET_CLASS ((obj), IPATCH_TYPE_GIG_INST, \ 46 IpatchGigInstClass)) 47 48 /* GigaSampler instrument object */ 49 struct _IpatchGigInst 50 { 51 IpatchDLS2Inst parent_instance; 52 53 guint32 attenuate; 54 guint16 effect_send; 55 guint16 fine_tune; 56 guint16 pitch_bend_range; 57 guint8 dim_key_start; /* bit 1: piano release */ 58 guint8 dim_key_end; 59 60 guint8 chunk_3ewg[12]; /* 3ewg chunk - FIXME what is it? */ 61 }; 62 63 struct _IpatchGigInstClass 64 { 65 IpatchDLS2InstClass parent_class; 66 }; 67 68 GType ipatch_gig_inst_get_type(void); 69 IpatchGigInst *ipatch_gig_inst_new(void); 70 IpatchGigInst *ipatch_gig_inst_first(IpatchIter *iter); 71 IpatchGigInst *ipatch_gig_inst_next(IpatchIter *iter); 72 73 #endif 74