/usr/include/libinstpatch-1.0/libinstpatch/IpatchDLS2Sample.h is in libinstpatch-dev 1.0.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /*
* libInstPatch
* Copyright (C) 1999-2010 Joshua "Element" Green <jgreen@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; version 2.1
* of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA or on the web at http://www.gnu.org.
*/
/**
* SECTION: IpatchDLS2Sample
* @short_description: DLS audio sample object
* @see_also: #IpatchDLS, #IpatchDLSRegion
* @stability: Stable
*
* Object which defines a DLS audio sample. These objects are contained in
* #IpatchDLS objects and linked (referenced) from #IpatchDLSRegion objects.
*/
#ifndef __IPATCH_DLS2_SAMPLE_H__
#define __IPATCH_DLS2_SAMPLE_H__
#include <stdarg.h>
#include <glib.h>
#include <glib-object.h>
#include <libinstpatch/IpatchDLS2Info.h>
#include <libinstpatch/IpatchItem.h>
#include <libinstpatch/IpatchSampleData.h>
/* forward type declarations */
typedef struct _IpatchDLS2Sample IpatchDLS2Sample;
typedef struct _IpatchDLS2SampleClass IpatchDLS2SampleClass;
typedef struct _IpatchDLS2SampleInfo IpatchDLS2SampleInfo;
#define IPATCH_TYPE_DLS2_SAMPLE (ipatch_dls2_sample_get_type ())
#define IPATCH_DLS2_SAMPLE(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), IPATCH_TYPE_DLS2_SAMPLE, \
IpatchDLS2Sample))
#define IPATCH_DLS2_SAMPLE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), IPATCH_TYPE_DLS2_SAMPLE, \
IpatchDLS2SampleClass))
#define IPATCH_IS_DLS2_SAMPLE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), IPATCH_TYPE_DLS2_SAMPLE))
#define IPATCH_IS_DLS2_SAMPLE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), IPATCH_TYPE_DLS2_SAMPLE))
#define IPATCH_DLS2_SAMPLE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), IPATCH_TYPE_DLS2_SAMPLE, \
IpatchDLS2SampleClass))
/* SoundFont sample item */
struct _IpatchDLS2Sample
{
IpatchItem parent_instance;
int rate; /* sample rate */
IpatchDLS2SampleInfo *sample_info; /* sample data info (optional) */
IpatchDLS2Info *info; /* info string values */
IpatchSampleData *sample_data; /* sample data object */
guint8 *dlid; /* 16 byte unique ID or NULL */
};
struct _IpatchDLS2SampleClass
{
IpatchItemClass parent_class;
};
/* DLS2 sample info, can also be defined in regions */
struct _IpatchDLS2SampleInfo
{
guint8 options; /* IpatchSampleLoopType and IpatchDLS2SampleFlags */
guint8 root_note; /* root MIDI note number */
gint16 fine_tune; /* fine tuning */
gint32 gain; /* gain to apply to sample */
guint32 loop_start; /* loop start offset (in samples) */
guint32 loop_end; /* loop end offset (in samples) */
};
/* default values to initialize static IpatchDLS2SampleInfo with */
#define IPATCH_DLS2_SAMPLE_INFO_INIT { 0, 60, 0, 0, 0, 0 }
/* since sample info is also used by regions, we define a non-conflicting
property ID here for the first sample info property */
#define IPATCH_DLS2_SAMPLE_INFO_FIRST_PROPERTY_ID 256
/* count of sample info properties */
#define IPATCH_DLS2_SAMPLE_INFO_PROPERTY_COUNT 7
/* flags crammed into sample info options field */
typedef enum
{
IPATCH_DLS2_SAMPLE_NO_TRUNCATION = 1 << 6,
IPATCH_DLS2_SAMPLE_NO_COMPRESSION = 1 << 7
} IpatchDLS2SampleFlags;
#define IPATCH_DLS2_SAMPLE_LOOP_MASK 0x03
#define IPATCH_DLS2_SAMPLE_FLAGS_MASK 0x0C0
GType ipatch_dls2_sample_get_type (void);
IpatchDLS2Sample *ipatch_dls2_sample_new (void);
IpatchDLS2Sample *ipatch_dls2_sample_first (IpatchIter *iter);
IpatchDLS2Sample *ipatch_dls2_sample_next (IpatchIter *iter);
void ipatch_dls2_sample_set_data (IpatchDLS2Sample *sample,
IpatchSampleData *sampledata);
IpatchSampleData *ipatch_dls2_sample_get_data (IpatchDLS2Sample *sample);
IpatchSampleData *ipatch_dls2_sample_peek_data (IpatchDLS2Sample *sample);
void ipatch_dls2_sample_set_blank (IpatchDLS2Sample *sample);
IpatchDLS2SampleInfo *ipatch_dls2_sample_info_new (void);
void ipatch_dls2_sample_info_free (IpatchDLS2SampleInfo *sample_info);
IpatchDLS2SampleInfo *ipatch_dls2_sample_info_duplicate
(IpatchDLS2SampleInfo *sample_info);
void ipatch_dls2_sample_info_init (IpatchDLS2SampleInfo *sample_info);
void ipatch_dls2_sample_info_install_class_properties
(GObjectClass *obj_class);
gboolean ipatch_dls2_sample_info_is_property_id_valid (guint property_id);
gboolean ipatch_dls2_sample_info_set_property
(IpatchDLS2SampleInfo **sample_info, guint property_id,
const GValue *value);
gboolean ipatch_dls2_sample_info_get_property
(IpatchDLS2SampleInfo *sample_info, guint property_id, GValue *value);
void ipatch_dls2_sample_info_notify_changes (IpatchItem *item,
IpatchDLS2SampleInfo *newinfo,
IpatchDLS2SampleInfo *oldinfo);
#endif
|