BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
bsebasics.genidl.hh
Go to the documentation of this file.
1 
2 /*-------- begin ../sfi/sfidl generated code --------*/
3 
4 
5 
6 #include <bse/effectbase.hh>
7 
8 
9 /* enum prototypes */
10 namespace Bse {
11 #define BSE_TYPE_MIDI_CONTROL_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiControlType)
12 #define BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiChannelEventType)
13 
14 
15 /* choice prototypes */
16 static SfiChoiceValues MidiControlType_choice_values();
17 static SfiChoiceValues MidiChannelEventType_choice_values();
18 
19 
20 /* record prototypes */
21 class MidiChannelEvent;
22 typedef Sfi::RecordHandle<MidiChannelEvent> MidiChannelEventHandle;
23 #define BSE_TYPE_MIDI_CHANNEL_EVENT BSE_CXX_DECLARED_RECORD_TYPE (Bse, MidiChannelEvent)
24 class PropertyCandidates;
25 typedef Sfi::RecordHandle<PropertyCandidates> PropertyCandidatesHandle;
26 #define BSE_TYPE_PROPERTY_CANDIDATES BSE_CXX_DECLARED_RECORD_TYPE (Bse, PropertyCandidates)
27 class NoteSequence;
28 typedef Sfi::RecordHandle<NoteSequence> NoteSequenceHandle;
29 #define BSE_TYPE_NOTE_SEQUENCE BSE_CXX_DECLARED_RECORD_TYPE (Bse, NoteSequence)
30 class Ic0n;
31 typedef Sfi::RecordHandle<Ic0n> Ic0nHandle;
32 #define BSE_TYPE_IC0N BSE_CXX_DECLARED_RECORD_TYPE (Bse, Ic0n)
33 class Category;
34 typedef Sfi::RecordHandle<Category> CategoryHandle;
35 #define BSE_TYPE_CATEGORY BSE_CXX_DECLARED_RECORD_TYPE (Bse, Category)
36 class GConfig;
37 typedef Sfi::RecordHandle<GConfig> GConfigHandle;
38 #define BSE_TYPE_GCONFIG BSE_CXX_DECLARED_RECORD_TYPE (Bse, GConfig)
39 
40 
41 /* sequence prototypes */
42 class TypeSeq;
43 #define BSE_TYPE_TYPE_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, TypeSeq)
44 class FloatSeq;
45 #define BSE_TYPE_FLOAT_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, FloatSeq)
46 class NoteSeq;
47 #define BSE_TYPE_NOTE_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, NoteSeq)
48 class It3mSeq;
49 #define BSE_TYPE_IT3M_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, It3mSeq)
50 class P1xelSeq;
51 #define BSE_TYPE_P1XEL_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, P1xelSeq)
52 class CategorySeq;
53 #define BSE_TYPE_CATEGORY_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, CategorySeq)
54 
55 
56 /* class prototypes */
57 
58 
59 /* enum definitions */
60 #ifndef SFIDL_SKIPDEF__MidiControlType
61 enum MidiControlType {
62  MIDI_CONTROL_NONE = 0,
63  MIDI_CONTROL_CONTINUOUS_0 = 64,
64  MIDI_CONTROL_CONTINUOUS_1 = 65,
65  MIDI_CONTROL_CONTINUOUS_2 = 66,
66  MIDI_CONTROL_CONTINUOUS_3 = 67,
67  MIDI_CONTROL_CONTINUOUS_4 = 68,
68  MIDI_CONTROL_CONTINUOUS_5 = 69,
69  MIDI_CONTROL_CONTINUOUS_6 = 70,
70  MIDI_CONTROL_CONTINUOUS_7 = 71,
71  MIDI_CONTROL_CONTINUOUS_8 = 72,
72  MIDI_CONTROL_CONTINUOUS_9 = 73,
73  MIDI_CONTROL_CONTINUOUS_10 = 74,
74  MIDI_CONTROL_CONTINUOUS_11 = 75,
75  MIDI_CONTROL_CONTINUOUS_12 = 76,
76  MIDI_CONTROL_CONTINUOUS_13 = 77,
77  MIDI_CONTROL_CONTINUOUS_14 = 78,
78  MIDI_CONTROL_CONTINUOUS_15 = 79,
79  MIDI_CONTROL_CONTINUOUS_16 = 80,
80  MIDI_CONTROL_CONTINUOUS_17 = 81,
81  MIDI_CONTROL_CONTINUOUS_18 = 82,
82  MIDI_CONTROL_CONTINUOUS_19 = 83,
83  MIDI_CONTROL_CONTINUOUS_20 = 84,
84  MIDI_CONTROL_CONTINUOUS_21 = 85,
85  MIDI_CONTROL_CONTINUOUS_22 = 86,
86  MIDI_CONTROL_CONTINUOUS_23 = 87,
87  MIDI_CONTROL_CONTINUOUS_24 = 88,
88  MIDI_CONTROL_CONTINUOUS_25 = 89,
89  MIDI_CONTROL_CONTINUOUS_26 = 90,
90  MIDI_CONTROL_CONTINUOUS_27 = 91,
91  MIDI_CONTROL_CONTINUOUS_28 = 92,
92  MIDI_CONTROL_CONTINUOUS_29 = 93,
93  MIDI_CONTROL_CONTINUOUS_30 = 94,
94  MIDI_CONTROL_CONTINUOUS_31 = 95,
95  MIDI_CONTROL_0 = 128,
96  MIDI_CONTROL_1 = 129,
97  MIDI_CONTROL_2 = 130,
98  MIDI_CONTROL_3 = 131,
99  MIDI_CONTROL_4 = 132,
100  MIDI_CONTROL_5 = 133,
101  MIDI_CONTROL_6 = 134,
102  MIDI_CONTROL_7 = 135,
103  MIDI_CONTROL_8 = 136,
104  MIDI_CONTROL_9 = 137,
105  MIDI_CONTROL_10 = 138,
106  MIDI_CONTROL_11 = 139,
107  MIDI_CONTROL_12 = 140,
108  MIDI_CONTROL_13 = 141,
109  MIDI_CONTROL_14 = 142,
110  MIDI_CONTROL_15 = 143,
111  MIDI_CONTROL_16 = 144,
112  MIDI_CONTROL_17 = 145,
113  MIDI_CONTROL_18 = 146,
114  MIDI_CONTROL_19 = 147,
115  MIDI_CONTROL_20 = 148,
116  MIDI_CONTROL_21 = 149,
117  MIDI_CONTROL_22 = 150,
118  MIDI_CONTROL_23 = 151,
119  MIDI_CONTROL_24 = 152,
120  MIDI_CONTROL_25 = 153,
121  MIDI_CONTROL_26 = 154,
122  MIDI_CONTROL_27 = 155,
123  MIDI_CONTROL_28 = 156,
124  MIDI_CONTROL_29 = 157,
125  MIDI_CONTROL_30 = 158,
126  MIDI_CONTROL_31 = 159,
127  MIDI_CONTROL_32 = 160,
128  MIDI_CONTROL_33 = 161,
129  MIDI_CONTROL_34 = 162,
130  MIDI_CONTROL_35 = 163,
131  MIDI_CONTROL_36 = 164,
132  MIDI_CONTROL_37 = 165,
133  MIDI_CONTROL_38 = 166,
134  MIDI_CONTROL_39 = 167,
135  MIDI_CONTROL_40 = 168,
136  MIDI_CONTROL_41 = 169,
137  MIDI_CONTROL_42 = 170,
138  MIDI_CONTROL_43 = 171,
139  MIDI_CONTROL_44 = 172,
140  MIDI_CONTROL_45 = 173,
141  MIDI_CONTROL_46 = 174,
142  MIDI_CONTROL_47 = 175,
143  MIDI_CONTROL_48 = 176,
144  MIDI_CONTROL_49 = 177,
145  MIDI_CONTROL_50 = 178,
146  MIDI_CONTROL_51 = 179,
147  MIDI_CONTROL_52 = 180,
148  MIDI_CONTROL_53 = 181,
149  MIDI_CONTROL_54 = 182,
150  MIDI_CONTROL_55 = 183,
151  MIDI_CONTROL_56 = 184,
152  MIDI_CONTROL_57 = 185,
153  MIDI_CONTROL_58 = 186,
154  MIDI_CONTROL_59 = 187,
155  MIDI_CONTROL_60 = 188,
156  MIDI_CONTROL_61 = 189,
157  MIDI_CONTROL_62 = 190,
158  MIDI_CONTROL_63 = 191,
159  MIDI_CONTROL_64 = 192,
160  MIDI_CONTROL_65 = 193,
161  MIDI_CONTROL_66 = 194,
162  MIDI_CONTROL_67 = 195,
163  MIDI_CONTROL_68 = 196,
164  MIDI_CONTROL_69 = 197,
165  MIDI_CONTROL_70 = 198,
166  MIDI_CONTROL_71 = 199,
167  MIDI_CONTROL_72 = 200,
168  MIDI_CONTROL_73 = 201,
169  MIDI_CONTROL_74 = 202,
170  MIDI_CONTROL_75 = 203,
171  MIDI_CONTROL_76 = 204,
172  MIDI_CONTROL_77 = 205,
173  MIDI_CONTROL_78 = 206,
174  MIDI_CONTROL_79 = 207,
175  MIDI_CONTROL_80 = 208,
176  MIDI_CONTROL_81 = 209,
177  MIDI_CONTROL_82 = 210,
178  MIDI_CONTROL_83 = 211,
179  MIDI_CONTROL_84 = 212,
180  MIDI_CONTROL_85 = 213,
181  MIDI_CONTROL_86 = 214,
182  MIDI_CONTROL_87 = 215,
183  MIDI_CONTROL_88 = 216,
184  MIDI_CONTROL_89 = 217,
185  MIDI_CONTROL_90 = 218,
186  MIDI_CONTROL_91 = 219,
187  MIDI_CONTROL_92 = 220,
188  MIDI_CONTROL_93 = 221,
189  MIDI_CONTROL_94 = 222,
190  MIDI_CONTROL_95 = 223,
191  MIDI_CONTROL_96 = 224,
192  MIDI_CONTROL_97 = 225,
193  MIDI_CONTROL_98 = 226,
194  MIDI_CONTROL_99 = 227,
195  MIDI_CONTROL_100 = 228,
196  MIDI_CONTROL_101 = 229,
197  MIDI_CONTROL_102 = 230,
198  MIDI_CONTROL_103 = 231,
199  MIDI_CONTROL_104 = 232,
200  MIDI_CONTROL_105 = 233,
201  MIDI_CONTROL_106 = 234,
202  MIDI_CONTROL_107 = 235,
203  MIDI_CONTROL_108 = 236,
204  MIDI_CONTROL_109 = 237,
205  MIDI_CONTROL_110 = 238,
206  MIDI_CONTROL_111 = 239,
207  MIDI_CONTROL_112 = 240,
208  MIDI_CONTROL_113 = 241,
209  MIDI_CONTROL_114 = 242,
210  MIDI_CONTROL_115 = 243,
211  MIDI_CONTROL_116 = 244,
212  MIDI_CONTROL_117 = 245,
213  MIDI_CONTROL_118 = 246,
214  MIDI_CONTROL_119 = 247,
215  MIDI_CONTROL_120 = 248,
216  MIDI_CONTROL_121 = 249,
217  MIDI_CONTROL_122 = 250,
218  MIDI_CONTROL_123 = 251,
219  MIDI_CONTROL_124 = 252,
220  MIDI_CONTROL_125 = 253,
221  MIDI_CONTROL_126 = 254,
222  MIDI_CONTROL_127 = 255,
223 };
224 #endif // SFIDL_SKIPDEF__MidiControlType
225 #ifndef SFIDL_SKIPDEF__MidiChannelEventType
226 enum MidiChannelEventType {
227  MIDI_EVENT_NONE = 0,
228  MIDI_EVENT_NOTE_OFF = 1,
229  MIDI_EVENT_NOTE_ON = 2,
230  MIDI_EVENT_KEY_PRESSURE = 3,
231  MIDI_EVENT_CONTROL_CHANGE = 4,
232  MIDI_EVENT_PROGRAM_CHANGE = 5,
233  MIDI_EVENT_CHANNEL_PRESSURE = 6,
234  MIDI_EVENT_PITCH_BEND = 7,
235  MIDI_EVENT_SYS_EX = 8,
236  MIDI_EVENT_SONG_POINTER = 9,
237  MIDI_EVENT_SONG_SELECT = 10,
238  MIDI_EVENT_TUNE = 11,
239  MIDI_EVENT_TIMING_CLOCK = 12,
240  MIDI_EVENT_SONG_START = 13,
241  MIDI_EVENT_SONG_CONTINUE = 14,
242  MIDI_EVENT_SONG_STOP = 15,
243  MIDI_EVENT_ACTIVE_SENSING = 16,
244  MIDI_EVENT_SYSTEM_RESET = 17,
245 };
246 #endif // SFIDL_SKIPDEF__MidiChannelEventType
247 
248 
249 /* sequence definitions */
250 class TypeSeq : public Sfi::Sequence< Sfi::SfiString > {
251 public:
252  TypeSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::SfiString > (n) {}
253  static inline ::Bse::TypeSeq from_seq (SfiSeq *seq);
254  static inline SfiSeq *to_seq (const ::Bse::TypeSeq & seq);
255  static inline ::Bse::TypeSeq value_get_boxed (const GValue *value);
256  static inline void value_set_boxed (GValue *value, const ::Bse::TypeSeq & self);
257  static inline const char* options () { return ""; }
258  static inline const char* blurb () { return ""; }
259  static inline const char* authors () { return ""; }
260  static inline const char* license () { return ""; }
261  static inline const char* type_name () { return "BseTypeSeq"; }
262  static inline GParamSpec* get_element ();
263 };
264 
265 class FloatSeq : public Sfi::Sequence< Sfi::Real > {
266 public:
267  FloatSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Real > (n) {}
268  static inline ::Bse::FloatSeq from_seq (SfiSeq *seq);
269  static inline SfiSeq *to_seq (const ::Bse::FloatSeq & seq);
270  static inline ::Bse::FloatSeq value_get_boxed (const GValue *value);
271  static inline void value_set_boxed (GValue *value, const ::Bse::FloatSeq & self);
272  static inline const char* options () { return ""; }
273  static inline const char* blurb () { return ""; }
274  static inline const char* authors () { return ""; }
275  static inline const char* license () { return ""; }
276  static inline const char* type_name () { return "BseFloatSeq"; }
277  static inline GParamSpec* get_element ();
278 };
279 
280 class NoteSeq : public Sfi::Sequence< Sfi::Int > {
281 public:
282  NoteSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
283  static inline ::Bse::NoteSeq from_seq (SfiSeq *seq);
284  static inline SfiSeq *to_seq (const ::Bse::NoteSeq & seq);
285  static inline ::Bse::NoteSeq value_get_boxed (const GValue *value);
286  static inline void value_set_boxed (GValue *value, const ::Bse::NoteSeq & self);
287  static inline const char* options () { return ""; }
288  static inline const char* blurb () { return ""; }
289  static inline const char* authors () { return ""; }
290  static inline const char* license () { return ""; }
291  static inline const char* type_name () { return "BseNoteSeq"; }
292  static inline GParamSpec* get_element ();
293 };
294 
295 class It3mSeq : public Sfi::Sequence< BseItem* > {
296 public:
297  It3mSeq (unsigned int n = 0) : Sfi::Sequence< BseItem* > (n) {}
298  static inline ::Bse::It3mSeq from_seq (SfiSeq *seq);
299  static inline SfiSeq *to_seq (const ::Bse::It3mSeq & seq);
300  static inline ::Bse::It3mSeq value_get_boxed (const GValue *value);
301  static inline void value_set_boxed (GValue *value, const ::Bse::It3mSeq & self);
302  static inline const char* options () { return ""; }
303  static inline const char* blurb () { return "A list of BSE items or derived types."; }
304  static inline const char* authors () { return ""; }
305  static inline const char* license () { return ""; }
306  static inline const char* type_name () { return "BseIt3mSeq"; }
307  static inline GParamSpec* get_element ();
308 };
309 
310 class P1xelSeq : public Sfi::Sequence< Sfi::Int > {
311 public:
312  P1xelSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
313  static inline ::Bse::P1xelSeq from_seq (SfiSeq *seq);
314  static inline SfiSeq *to_seq (const ::Bse::P1xelSeq & seq);
315  static inline ::Bse::P1xelSeq value_get_boxed (const GValue *value);
316  static inline void value_set_boxed (GValue *value, const ::Bse::P1xelSeq & self);
317  static inline const char* options () { return ""; }
318  static inline const char* blurb () { return ""; }
319  static inline const char* authors () { return ""; }
320  static inline const char* license () { return ""; }
321  static inline const char* type_name () { return "BseP1xelSeq"; }
322  static inline GParamSpec* get_element ();
323 };
324 
325 class CategorySeq : public Sfi::Sequence< ::Bse::CategoryHandle > {
326 public:
327  CategorySeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::CategoryHandle > (n) {}
328  static inline ::Bse::CategorySeq from_seq (SfiSeq *seq);
329  static inline SfiSeq *to_seq (const ::Bse::CategorySeq & seq);
330  static inline ::Bse::CategorySeq value_get_boxed (const GValue *value);
331  static inline void value_set_boxed (GValue *value, const ::Bse::CategorySeq & self);
332  static inline const char* options () { return ""; }
333  static inline const char* blurb () { return ""; }
334  static inline const char* authors () { return ""; }
335  static inline const char* license () { return ""; }
336  static inline const char* type_name () { return "BseCategorySeq"; }
337  static inline GParamSpec* get_element ();
338 };
339 
340 
341 
342 /* record definitions */
344 public:
345  ::Bse::MidiChannelEventType event_type;
346  Sfi::Int channel;
347  Sfi::Num tick_stamp;
348  Sfi::Real frequency;
349  Sfi::Real velocity;
350  Sfi::Int control;
351  Sfi::Real value;
352  Sfi::Int program;
353  Sfi::Real intensity;
354  Sfi::Real pitch_bend;
355  Sfi::Int song_pointer;
356  Sfi::Int song_number;
357  static inline ::Bse::MidiChannelEventHandle from_rec (SfiRec *rec);
358  static inline SfiRec *to_rec (const ::Bse::MidiChannelEventHandle & ptr);
359  static inline ::Bse::MidiChannelEventHandle value_get_boxed (const GValue *value);
360  static inline void value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self);
361  static inline const char* options () { return ""; }
362  static inline const char* blurb () { return ""; }
363  static inline const char* authors () { return ""; }
364  static inline const char* license () { return ""; }
365  static inline const char* type_name () { return "BseMidiChannelEvent"; }
366  static inline SfiRecFields get_fields ();
367 };
368 
370 public:
371  Sfi::SfiString label;
372  Sfi::SfiString tooltip;
373  ::Bse::It3mSeq items;
374  ::Bse::TypeSeq partitions;
375  static inline ::Bse::PropertyCandidatesHandle from_rec (SfiRec *rec);
376  static inline SfiRec *to_rec (const ::Bse::PropertyCandidatesHandle & ptr);
377  static inline ::Bse::PropertyCandidatesHandle value_get_boxed (const GValue *value);
378  static inline void value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self);
379  static inline const char* options () { return ""; }
380  static inline const char* blurb () { return "A structure describing tentative property values."; }
381  static inline const char* authors () { return ""; }
382  static inline const char* license () { return ""; }
383  static inline const char* type_name () { return "BsePropertyCandidates"; }
384  static inline SfiRecFields get_fields ();
385 };
386 
388 public:
389  Sfi::Int offset;
390  ::Bse::NoteSeq notes;
391  static inline ::Bse::NoteSequenceHandle from_rec (SfiRec *rec);
392  static inline SfiRec *to_rec (const ::Bse::NoteSequenceHandle & ptr);
393  static inline ::Bse::NoteSequenceHandle value_get_boxed (const GValue *value);
394  static inline void value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self);
395  static inline const char* options () { return ""; }
396  static inline const char* blurb () { return ""; }
397  static inline const char* authors () { return ""; }
398  static inline const char* license () { return ""; }
399  static inline const char* type_name () { return "BseNoteSequence"; }
400  static inline SfiRecFields get_fields ();
401 };
402 
403 class Ic0n : public ::Sfi::GNewable {
404 public:
405  Sfi::Int width;
406  Sfi::Int height;
407  ::Bse::P1xelSeq pixel_seq;
408  static inline ::Bse::Ic0nHandle from_rec (SfiRec *rec);
409  static inline SfiRec *to_rec (const ::Bse::Ic0nHandle & ptr);
410  static inline ::Bse::Ic0nHandle value_get_boxed (const GValue *value);
411  static inline void value_set_boxed (GValue *value, const ::Bse::Ic0nHandle & self);
412  static inline const char* options () { return ""; }
413  static inline const char* blurb () { return "BSE icon representation."; }
414  static inline const char* authors () { return ""; }
415  static inline const char* license () { return ""; }
416  static inline const char* type_name () { return "BseIc0n"; }
417  static inline SfiRecFields get_fields ();
418 };
419 
420 class Category : public ::Sfi::GNewable {
421 public:
422  Sfi::Int category_id;
423  Sfi::SfiString category;
424  Sfi::Int mindex;
425  Sfi::Int lindex;
426  Sfi::SfiString otype;
427  ::Bse::Ic0nHandle icon;
428  static inline ::Bse::CategoryHandle from_rec (SfiRec *rec);
429  static inline SfiRec *to_rec (const ::Bse::CategoryHandle & ptr);
430  static inline ::Bse::CategoryHandle value_get_boxed (const GValue *value);
431  static inline void value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self);
432  static inline const char* options () { return ""; }
433  static inline const char* blurb () { return ""; }
434  static inline const char* authors () { return ""; }
435  static inline const char* license () { return ""; }
436  static inline const char* type_name () { return "BseCategory"; }
437  static inline SfiRecFields get_fields ();
438 };
439 
440 class GConfig : public ::Sfi::GNewable {
441 public:
442  Sfi::Int synth_latency;
443  Sfi::Int synth_mixing_freq;
444  Sfi::Int synth_control_freq;
445  bool invert_sustain;
446  Sfi::SfiString author_default;
447  Sfi::SfiString license_default;
448  Sfi::SfiString sample_path;
449  Sfi::SfiString effect_path;
450  Sfi::SfiString instrument_path;
451  Sfi::SfiString script_path;
452  Sfi::SfiString plugin_path;
453  Sfi::SfiString ladspa_path;
454  static inline ::Bse::GConfigHandle from_rec (SfiRec *rec);
455  static inline SfiRec *to_rec (const ::Bse::GConfigHandle & ptr);
456  static inline ::Bse::GConfigHandle value_get_boxed (const GValue *value);
457  static inline void value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self);
458  static inline const char* options () { return ""; }
459  static inline const char* blurb () { return ""; }
460  static inline const char* authors () { return ""; }
461  static inline const char* license () { return ""; }
462  static inline const char* type_name () { return "BseGConfig"; }
463  static inline SfiRecFields get_fields ();
464 };
465 
466 
467 
468 /* enum declarations */
469 BSE_CXX_DECLARE_ENUM (MidiControlType, "BseMidiControlType", 161,
470  *v++ = ::Bse::EnumValue (MIDI_CONTROL_NONE, "BSE_MIDI_CONTROL_NONE", _("None") );
471  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_0, "BSE_MIDI_CONTROL_CONTINUOUS_0", _("Bank Select") );
472  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_1, "BSE_MIDI_CONTROL_CONTINUOUS_1", _("Modulation Depth") );
473  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_2, "BSE_MIDI_CONTROL_CONTINUOUS_2", _("Breath Control") );
474  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_3, "BSE_MIDI_CONTROL_CONTINUOUS_3", _("Continuous 3") );
475  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_4, "BSE_MIDI_CONTROL_CONTINUOUS_4", _("Foot Controller") );
476  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_5, "BSE_MIDI_CONTROL_CONTINUOUS_5", _("Portamento Time") );
477  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_6, "BSE_MIDI_CONTROL_CONTINUOUS_6", _("Data Entry") );
478  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_7, "BSE_MIDI_CONTROL_CONTINUOUS_7", _("Volume") );
479  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_8, "BSE_MIDI_CONTROL_CONTINUOUS_8", _("Balance") );
480  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_9, "BSE_MIDI_CONTROL_CONTINUOUS_9", _("Continuous 9") );
481  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_10, "BSE_MIDI_CONTROL_CONTINUOUS_10", _("Panorama") );
482  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_11, "BSE_MIDI_CONTROL_CONTINUOUS_11", _("Expression") );
483  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_12, "BSE_MIDI_CONTROL_CONTINUOUS_12", _("Effect Control 1") );
484  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_13, "BSE_MIDI_CONTROL_CONTINUOUS_13", _("Effect Control 2") );
485  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_14, "BSE_MIDI_CONTROL_CONTINUOUS_14", _("Continuous 14") );
486  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_15, "BSE_MIDI_CONTROL_CONTINUOUS_15", _("Continuous 15") );
487  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_16, "BSE_MIDI_CONTROL_CONTINUOUS_16", _("General Purpose Controller 1") );
488  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_17, "BSE_MIDI_CONTROL_CONTINUOUS_17", _("General Purpose Controller 2") );
489  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_18, "BSE_MIDI_CONTROL_CONTINUOUS_18", _("General Purpose Controller 3") );
490  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_19, "BSE_MIDI_CONTROL_CONTINUOUS_19", _("General Purpose Controller 4") );
491  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_20, "BSE_MIDI_CONTROL_CONTINUOUS_20", _("Continuous 20") );
492  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_21, "BSE_MIDI_CONTROL_CONTINUOUS_21", _("Continuous 21") );
493  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_22, "BSE_MIDI_CONTROL_CONTINUOUS_22", _("Continuous 22") );
494  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_23, "BSE_MIDI_CONTROL_CONTINUOUS_23", _("Continuous 23") );
495  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_24, "BSE_MIDI_CONTROL_CONTINUOUS_24", _("Continuous 24") );
496  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_25, "BSE_MIDI_CONTROL_CONTINUOUS_25", _("Continuous 25") );
497  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_26, "BSE_MIDI_CONTROL_CONTINUOUS_26", _("Continuous 26") );
498  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_27, "BSE_MIDI_CONTROL_CONTINUOUS_27", _("Continuous 27") );
499  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_28, "BSE_MIDI_CONTROL_CONTINUOUS_28", _("Continuous 28") );
500  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_29, "BSE_MIDI_CONTROL_CONTINUOUS_29", _("Continuous 29") );
501  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_30, "BSE_MIDI_CONTROL_CONTINUOUS_30", _("Continuous 30") );
502  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_31, "BSE_MIDI_CONTROL_CONTINUOUS_31", _("Continuous 31") );
503  *v++ = ::Bse::EnumValue (MIDI_CONTROL_0, "BSE_MIDI_CONTROL_0", _("Control 0 Bank Select MSB") );
504  *v++ = ::Bse::EnumValue (MIDI_CONTROL_1, "BSE_MIDI_CONTROL_1", _("Control 1 Modulation Depth MSB") );
505  *v++ = ::Bse::EnumValue (MIDI_CONTROL_2, "BSE_MIDI_CONTROL_2", _("Control 2 Breath Control MSB") );
506  *v++ = ::Bse::EnumValue (MIDI_CONTROL_3, "BSE_MIDI_CONTROL_3", _("control-3") );
507  *v++ = ::Bse::EnumValue (MIDI_CONTROL_4, "BSE_MIDI_CONTROL_4", _("Control 4 Foot Controller MSB") );
508  *v++ = ::Bse::EnumValue (MIDI_CONTROL_5, "BSE_MIDI_CONTROL_5", _("Control 5 Portamento Time MSB") );
509  *v++ = ::Bse::EnumValue (MIDI_CONTROL_6, "BSE_MIDI_CONTROL_6", _("Control 6 Data Entry MSB") );
510  *v++ = ::Bse::EnumValue (MIDI_CONTROL_7, "BSE_MIDI_CONTROL_7", _("Control 7 Volume MSB") );
511  *v++ = ::Bse::EnumValue (MIDI_CONTROL_8, "BSE_MIDI_CONTROL_8", _("Control 8 Balance MSB") );
512  *v++ = ::Bse::EnumValue (MIDI_CONTROL_9, "BSE_MIDI_CONTROL_9", _("control-9") );
513  *v++ = ::Bse::EnumValue (MIDI_CONTROL_10, "BSE_MIDI_CONTROL_10", _("Control 10 Panorama MSB") );
514  *v++ = ::Bse::EnumValue (MIDI_CONTROL_11, "BSE_MIDI_CONTROL_11", _("Control 11 Expression MSB") );
515  *v++ = ::Bse::EnumValue (MIDI_CONTROL_12, "BSE_MIDI_CONTROL_12", _("Control 12 Effect Control 1 MSB") );
516  *v++ = ::Bse::EnumValue (MIDI_CONTROL_13, "BSE_MIDI_CONTROL_13", _("Control 13 Effect Control 2 MSB") );
517  *v++ = ::Bse::EnumValue (MIDI_CONTROL_14, "BSE_MIDI_CONTROL_14", _("control-14") );
518  *v++ = ::Bse::EnumValue (MIDI_CONTROL_15, "BSE_MIDI_CONTROL_15", _("control-15") );
519  *v++ = ::Bse::EnumValue (MIDI_CONTROL_16, "BSE_MIDI_CONTROL_16", _("Control 16 General Purpose Controller 1 MSB") );
520  *v++ = ::Bse::EnumValue (MIDI_CONTROL_17, "BSE_MIDI_CONTROL_17", _("Control 17 General Purpose Controller 2 MSB") );
521  *v++ = ::Bse::EnumValue (MIDI_CONTROL_18, "BSE_MIDI_CONTROL_18", _("Control 18 General Purpose Controller 3 MSB") );
522  *v++ = ::Bse::EnumValue (MIDI_CONTROL_19, "BSE_MIDI_CONTROL_19", _("Control 19 General Purpose Controller 4 MSB") );
523  *v++ = ::Bse::EnumValue (MIDI_CONTROL_20, "BSE_MIDI_CONTROL_20", _("control-20") );
524  *v++ = ::Bse::EnumValue (MIDI_CONTROL_21, "BSE_MIDI_CONTROL_21", _("control-21") );
525  *v++ = ::Bse::EnumValue (MIDI_CONTROL_22, "BSE_MIDI_CONTROL_22", _("control-22") );
526  *v++ = ::Bse::EnumValue (MIDI_CONTROL_23, "BSE_MIDI_CONTROL_23", _("control-23") );
527  *v++ = ::Bse::EnumValue (MIDI_CONTROL_24, "BSE_MIDI_CONTROL_24", _("control-24") );
528  *v++ = ::Bse::EnumValue (MIDI_CONTROL_25, "BSE_MIDI_CONTROL_25", _("control-25") );
529  *v++ = ::Bse::EnumValue (MIDI_CONTROL_26, "BSE_MIDI_CONTROL_26", _("control-26") );
530  *v++ = ::Bse::EnumValue (MIDI_CONTROL_27, "BSE_MIDI_CONTROL_27", _("control-27") );
531  *v++ = ::Bse::EnumValue (MIDI_CONTROL_28, "BSE_MIDI_CONTROL_28", _("control-28") );
532  *v++ = ::Bse::EnumValue (MIDI_CONTROL_29, "BSE_MIDI_CONTROL_29", _("control-29") );
533  *v++ = ::Bse::EnumValue (MIDI_CONTROL_30, "BSE_MIDI_CONTROL_30", _("control-30") );
534  *v++ = ::Bse::EnumValue (MIDI_CONTROL_31, "BSE_MIDI_CONTROL_31", _("control-31") );
535  *v++ = ::Bse::EnumValue (MIDI_CONTROL_32, "BSE_MIDI_CONTROL_32", _("Control 32 Bank Select LSB") );
536  *v++ = ::Bse::EnumValue (MIDI_CONTROL_33, "BSE_MIDI_CONTROL_33", _("Control 33 Modulation Depth LSB") );
537  *v++ = ::Bse::EnumValue (MIDI_CONTROL_34, "BSE_MIDI_CONTROL_34", _("Control 34 Breath Control LSB") );
538  *v++ = ::Bse::EnumValue (MIDI_CONTROL_35, "BSE_MIDI_CONTROL_35", _("control-35") );
539  *v++ = ::Bse::EnumValue (MIDI_CONTROL_36, "BSE_MIDI_CONTROL_36", _("Control 36 Foot Controller LSB") );
540  *v++ = ::Bse::EnumValue (MIDI_CONTROL_37, "BSE_MIDI_CONTROL_37", _("Control 37 Portamento Time LSB") );
541  *v++ = ::Bse::EnumValue (MIDI_CONTROL_38, "BSE_MIDI_CONTROL_38", _("Control 38 Data Entry LSB") );
542  *v++ = ::Bse::EnumValue (MIDI_CONTROL_39, "BSE_MIDI_CONTROL_39", _("Control 39 Volume LSB") );
543  *v++ = ::Bse::EnumValue (MIDI_CONTROL_40, "BSE_MIDI_CONTROL_40", _("Control 40 Balance LSB") );
544  *v++ = ::Bse::EnumValue (MIDI_CONTROL_41, "BSE_MIDI_CONTROL_41", _("control-41") );
545  *v++ = ::Bse::EnumValue (MIDI_CONTROL_42, "BSE_MIDI_CONTROL_42", _("Control 42 Panorama LSB") );
546  *v++ = ::Bse::EnumValue (MIDI_CONTROL_43, "BSE_MIDI_CONTROL_43", _("Control 43 Expression LSB") );
547  *v++ = ::Bse::EnumValue (MIDI_CONTROL_44, "BSE_MIDI_CONTROL_44", _("Control 44 Effect Control 1 LSB") );
548  *v++ = ::Bse::EnumValue (MIDI_CONTROL_45, "BSE_MIDI_CONTROL_45", _("Control 45 Effect Control 2 LSB") );
549  *v++ = ::Bse::EnumValue (MIDI_CONTROL_46, "BSE_MIDI_CONTROL_46", _("control-46") );
550  *v++ = ::Bse::EnumValue (MIDI_CONTROL_47, "BSE_MIDI_CONTROL_47", _("control-47") );
551  *v++ = ::Bse::EnumValue (MIDI_CONTROL_48, "BSE_MIDI_CONTROL_48", _("Control 48 General Purpose Controller 1 LSB") );
552  *v++ = ::Bse::EnumValue (MIDI_CONTROL_49, "BSE_MIDI_CONTROL_49", _("Control 49 General Purpose Controller 2 LSB") );
553  *v++ = ::Bse::EnumValue (MIDI_CONTROL_50, "BSE_MIDI_CONTROL_50", _("Control 50 General Purpose Controller 3 LSB") );
554  *v++ = ::Bse::EnumValue (MIDI_CONTROL_51, "BSE_MIDI_CONTROL_51", _("Control 51 General Purpose Controller 4 LSB") );
555  *v++ = ::Bse::EnumValue (MIDI_CONTROL_52, "BSE_MIDI_CONTROL_52", _("control-52") );
556  *v++ = ::Bse::EnumValue (MIDI_CONTROL_53, "BSE_MIDI_CONTROL_53", _("control-53") );
557  *v++ = ::Bse::EnumValue (MIDI_CONTROL_54, "BSE_MIDI_CONTROL_54", _("control-54") );
558  *v++ = ::Bse::EnumValue (MIDI_CONTROL_55, "BSE_MIDI_CONTROL_55", _("control-55") );
559  *v++ = ::Bse::EnumValue (MIDI_CONTROL_56, "BSE_MIDI_CONTROL_56", _("control-56") );
560  *v++ = ::Bse::EnumValue (MIDI_CONTROL_57, "BSE_MIDI_CONTROL_57", _("control-57") );
561  *v++ = ::Bse::EnumValue (MIDI_CONTROL_58, "BSE_MIDI_CONTROL_58", _("control-58") );
562  *v++ = ::Bse::EnumValue (MIDI_CONTROL_59, "BSE_MIDI_CONTROL_59", _("control-59") );
563  *v++ = ::Bse::EnumValue (MIDI_CONTROL_60, "BSE_MIDI_CONTROL_60", _("control-60") );
564  *v++ = ::Bse::EnumValue (MIDI_CONTROL_61, "BSE_MIDI_CONTROL_61", _("control-61") );
565  *v++ = ::Bse::EnumValue (MIDI_CONTROL_62, "BSE_MIDI_CONTROL_62", _("control-62") );
566  *v++ = ::Bse::EnumValue (MIDI_CONTROL_63, "BSE_MIDI_CONTROL_63", _("control-63") );
567  *v++ = ::Bse::EnumValue (MIDI_CONTROL_64, "BSE_MIDI_CONTROL_64", _("Control 64 Damper Pedal Switch (Sustain)") );
568  *v++ = ::Bse::EnumValue (MIDI_CONTROL_65, "BSE_MIDI_CONTROL_65", _("Control 65 Portamento Switch") );
569  *v++ = ::Bse::EnumValue (MIDI_CONTROL_66, "BSE_MIDI_CONTROL_66", _("Control 66 Sustenuto Switch") );
570  *v++ = ::Bse::EnumValue (MIDI_CONTROL_67, "BSE_MIDI_CONTROL_67", _("Control 67 Soft Switch") );
571  *v++ = ::Bse::EnumValue (MIDI_CONTROL_68, "BSE_MIDI_CONTROL_68", _("Control 68 Legato Pedal Switch") );
572  *v++ = ::Bse::EnumValue (MIDI_CONTROL_69, "BSE_MIDI_CONTROL_69", _("Control 69 Hold Pedal Switch") );
573  *v++ = ::Bse::EnumValue (MIDI_CONTROL_70, "BSE_MIDI_CONTROL_70", _("Control 70 Sound Variation") );
574  *v++ = ::Bse::EnumValue (MIDI_CONTROL_71, "BSE_MIDI_CONTROL_71", _("Control 71 Filter Resonance (Timbre)") );
575  *v++ = ::Bse::EnumValue (MIDI_CONTROL_72, "BSE_MIDI_CONTROL_72", _("Control 72 Sound Release Time") );
576  *v++ = ::Bse::EnumValue (MIDI_CONTROL_73, "BSE_MIDI_CONTROL_73", _("Control 73 Sound Attack Time") );
577  *v++ = ::Bse::EnumValue (MIDI_CONTROL_74, "BSE_MIDI_CONTROL_74", _("Control 74 Sound Brightness") );
578  *v++ = ::Bse::EnumValue (MIDI_CONTROL_75, "BSE_MIDI_CONTROL_75", _("Control 75 Sound Decay Time") );
579  *v++ = ::Bse::EnumValue (MIDI_CONTROL_76, "BSE_MIDI_CONTROL_76", _("Control 76 Vibrato Rate") );
580  *v++ = ::Bse::EnumValue (MIDI_CONTROL_77, "BSE_MIDI_CONTROL_77", _("Control 77 Vibrato Depth") );
581  *v++ = ::Bse::EnumValue (MIDI_CONTROL_78, "BSE_MIDI_CONTROL_78", _("Control 78 Vibrato Delay") );
582  *v++ = ::Bse::EnumValue (MIDI_CONTROL_79, "BSE_MIDI_CONTROL_79", _("Control 79 Sound Control 10") );
583  *v++ = ::Bse::EnumValue (MIDI_CONTROL_80, "BSE_MIDI_CONTROL_80", _("Control 80 General Purpose Switch 5") );
584  *v++ = ::Bse::EnumValue (MIDI_CONTROL_81, "BSE_MIDI_CONTROL_81", _("Control 81 General Purpose Switch 6") );
585  *v++ = ::Bse::EnumValue (MIDI_CONTROL_82, "BSE_MIDI_CONTROL_82", _("Control 82 General Purpose Switch 7") );
586  *v++ = ::Bse::EnumValue (MIDI_CONTROL_83, "BSE_MIDI_CONTROL_83", _("Control 83 General Purpose Switch 8") );
587  *v++ = ::Bse::EnumValue (MIDI_CONTROL_84, "BSE_MIDI_CONTROL_84", _("Control 84 Portamento Control (Note)") );
588  *v++ = ::Bse::EnumValue (MIDI_CONTROL_85, "BSE_MIDI_CONTROL_85", _("control-85") );
589  *v++ = ::Bse::EnumValue (MIDI_CONTROL_86, "BSE_MIDI_CONTROL_86", _("control-86") );
590  *v++ = ::Bse::EnumValue (MIDI_CONTROL_87, "BSE_MIDI_CONTROL_87", _("control-87") );
591  *v++ = ::Bse::EnumValue (MIDI_CONTROL_88, "BSE_MIDI_CONTROL_88", _("control-88") );
592  *v++ = ::Bse::EnumValue (MIDI_CONTROL_89, "BSE_MIDI_CONTROL_89", _("control-89") );
593  *v++ = ::Bse::EnumValue (MIDI_CONTROL_90, "BSE_MIDI_CONTROL_90", _("control-90") );
594  *v++ = ::Bse::EnumValue (MIDI_CONTROL_91, "BSE_MIDI_CONTROL_91", _("Control 91 Reverb Depth") );
595  *v++ = ::Bse::EnumValue (MIDI_CONTROL_92, "BSE_MIDI_CONTROL_92", _("Control 92 Tremolo Depth") );
596  *v++ = ::Bse::EnumValue (MIDI_CONTROL_93, "BSE_MIDI_CONTROL_93", _("Control 93 Chorus Depth") );
597  *v++ = ::Bse::EnumValue (MIDI_CONTROL_94, "BSE_MIDI_CONTROL_94", _("Control 93 Detune Depth") );
598  *v++ = ::Bse::EnumValue (MIDI_CONTROL_95, "BSE_MIDI_CONTROL_95", _("Control 95 Phase Depth") );
599  *v++ = ::Bse::EnumValue (MIDI_CONTROL_96, "BSE_MIDI_CONTROL_96", _("Control 96 Data Increment Trigger") );
600  *v++ = ::Bse::EnumValue (MIDI_CONTROL_97, "BSE_MIDI_CONTROL_97", _("Control 97 Data Decrement Trigger") );
601  *v++ = ::Bse::EnumValue (MIDI_CONTROL_98, "BSE_MIDI_CONTROL_98", _("Control 98 Non-Registered Parameter MSB") );
602  *v++ = ::Bse::EnumValue (MIDI_CONTROL_99, "BSE_MIDI_CONTROL_99", _("Control 99 Non-Registered Parameter LSB") );
603  *v++ = ::Bse::EnumValue (MIDI_CONTROL_100, "BSE_MIDI_CONTROL_100", _("Control 100 Registered Parameter MSB") );
604  *v++ = ::Bse::EnumValue (MIDI_CONTROL_101, "BSE_MIDI_CONTROL_101", _("Control 101 Registered Parameter LSB") );
605  *v++ = ::Bse::EnumValue (MIDI_CONTROL_102, "BSE_MIDI_CONTROL_102", _("control-102") );
606  *v++ = ::Bse::EnumValue (MIDI_CONTROL_103, "BSE_MIDI_CONTROL_103", _("control-103") );
607  *v++ = ::Bse::EnumValue (MIDI_CONTROL_104, "BSE_MIDI_CONTROL_104", _("control-104") );
608  *v++ = ::Bse::EnumValue (MIDI_CONTROL_105, "BSE_MIDI_CONTROL_105", _("control-105") );
609  *v++ = ::Bse::EnumValue (MIDI_CONTROL_106, "BSE_MIDI_CONTROL_106", _("control-106") );
610  *v++ = ::Bse::EnumValue (MIDI_CONTROL_107, "BSE_MIDI_CONTROL_107", _("control-107") );
611  *v++ = ::Bse::EnumValue (MIDI_CONTROL_108, "BSE_MIDI_CONTROL_108", _("control-108") );
612  *v++ = ::Bse::EnumValue (MIDI_CONTROL_109, "BSE_MIDI_CONTROL_109", _("control-109") );
613  *v++ = ::Bse::EnumValue (MIDI_CONTROL_110, "BSE_MIDI_CONTROL_110", _("control-110") );
614  *v++ = ::Bse::EnumValue (MIDI_CONTROL_111, "BSE_MIDI_CONTROL_111", _("control-111") );
615  *v++ = ::Bse::EnumValue (MIDI_CONTROL_112, "BSE_MIDI_CONTROL_112", _("control-112") );
616  *v++ = ::Bse::EnumValue (MIDI_CONTROL_113, "BSE_MIDI_CONTROL_113", _("control-113") );
617  *v++ = ::Bse::EnumValue (MIDI_CONTROL_114, "BSE_MIDI_CONTROL_114", _("control-114") );
618  *v++ = ::Bse::EnumValue (MIDI_CONTROL_115, "BSE_MIDI_CONTROL_115", _("control-115") );
619  *v++ = ::Bse::EnumValue (MIDI_CONTROL_116, "BSE_MIDI_CONTROL_116", _("control-116") );
620  *v++ = ::Bse::EnumValue (MIDI_CONTROL_117, "BSE_MIDI_CONTROL_117", _("control-117") );
621  *v++ = ::Bse::EnumValue (MIDI_CONTROL_118, "BSE_MIDI_CONTROL_118", _("control-118") );
622  *v++ = ::Bse::EnumValue (MIDI_CONTROL_119, "BSE_MIDI_CONTROL_119", _("control-119") );
623  *v++ = ::Bse::EnumValue (MIDI_CONTROL_120, "BSE_MIDI_CONTROL_120", _("Control 120 All Sound Off ITrigger") );
624  *v++ = ::Bse::EnumValue (MIDI_CONTROL_121, "BSE_MIDI_CONTROL_121", _("Control 121 All Controllers Off ITrigger") );
625  *v++ = ::Bse::EnumValue (MIDI_CONTROL_122, "BSE_MIDI_CONTROL_122", _("Control 122 Local Control Switch") );
626  *v++ = ::Bse::EnumValue (MIDI_CONTROL_123, "BSE_MIDI_CONTROL_123", _("Control 123 All Notes Off ITrigger") );
627  *v++ = ::Bse::EnumValue (MIDI_CONTROL_124, "BSE_MIDI_CONTROL_124", _("Control 124 Omni Mode Off ITrigger") );
628  *v++ = ::Bse::EnumValue (MIDI_CONTROL_125, "BSE_MIDI_CONTROL_125", _("Control 125 Omni Mode On ITrigger") );
629  *v++ = ::Bse::EnumValue (MIDI_CONTROL_126, "BSE_MIDI_CONTROL_126", _("Control 126 Monophonic Voices Mode") );
630  *v++ = ::Bse::EnumValue (MIDI_CONTROL_127, "BSE_MIDI_CONTROL_127", _("Control 127 Polyphonic Mode On ITrigger") );
631 );
632 BSE_CXX_DECLARE_ENUM (MidiChannelEventType, "BseMidiChannelEventType", 18,
633  *v++ = ::Bse::EnumValue (MIDI_EVENT_NONE, "BSE_MIDI_EVENT_NONE", "bse-midi-event-none" );
634  *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_OFF, "BSE_MIDI_EVENT_NOTE_OFF", "bse-midi-event-note-off" );
635  *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_ON, "BSE_MIDI_EVENT_NOTE_ON", "bse-midi-event-note-on" );
636  *v++ = ::Bse::EnumValue (MIDI_EVENT_KEY_PRESSURE, "BSE_MIDI_EVENT_KEY_PRESSURE", "bse-midi-event-key-pressure" );
637  *v++ = ::Bse::EnumValue (MIDI_EVENT_CONTROL_CHANGE, "BSE_MIDI_EVENT_CONTROL_CHANGE", "bse-midi-event-control-change" );
638  *v++ = ::Bse::EnumValue (MIDI_EVENT_PROGRAM_CHANGE, "BSE_MIDI_EVENT_PROGRAM_CHANGE", "bse-midi-event-program-change" );
639  *v++ = ::Bse::EnumValue (MIDI_EVENT_CHANNEL_PRESSURE, "BSE_MIDI_EVENT_CHANNEL_PRESSURE", "bse-midi-event-channel-pressure" );
640  *v++ = ::Bse::EnumValue (MIDI_EVENT_PITCH_BEND, "BSE_MIDI_EVENT_PITCH_BEND", "bse-midi-event-pitch-bend" );
641  *v++ = ::Bse::EnumValue (MIDI_EVENT_SYS_EX, "BSE_MIDI_EVENT_SYS_EX", "bse-midi-event-sys-ex" );
642  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_POINTER, "BSE_MIDI_EVENT_SONG_POINTER", "bse-midi-event-song-pointer" );
643  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_SELECT, "BSE_MIDI_EVENT_SONG_SELECT", "bse-midi-event-song-select" );
644  *v++ = ::Bse::EnumValue (MIDI_EVENT_TUNE, "BSE_MIDI_EVENT_TUNE", "bse-midi-event-tune" );
645  *v++ = ::Bse::EnumValue (MIDI_EVENT_TIMING_CLOCK, "BSE_MIDI_EVENT_TIMING_CLOCK", "bse-midi-event-timing-clock" );
646  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_START, "BSE_MIDI_EVENT_SONG_START", "bse-midi-event-song-start" );
647  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_CONTINUE, "BSE_MIDI_EVENT_SONG_CONTINUE", "bse-midi-event-song-continue" );
648  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_STOP, "BSE_MIDI_EVENT_SONG_STOP", "bse-midi-event-song-stop" );
649  *v++ = ::Bse::EnumValue (MIDI_EVENT_ACTIVE_SENSING, "BSE_MIDI_EVENT_ACTIVE_SENSING", "bse-midi-event-active-sensing" );
650  *v++ = ::Bse::EnumValue (MIDI_EVENT_SYSTEM_RESET, "BSE_MIDI_EVENT_SYSTEM_RESET", "bse-midi-event-system-reset" );
651 );
652 
653 
654 /* sequence type declarations */
655 BSE_CXX_DECLARE_SEQUENCE (TypeSeq);
656 
657 BSE_CXX_DECLARE_SEQUENCE (FloatSeq);
658 
659 BSE_CXX_DECLARE_SEQUENCE (NoteSeq);
660 
661 BSE_CXX_DECLARE_SEQUENCE (It3mSeq);
662 
663 BSE_CXX_DECLARE_SEQUENCE (P1xelSeq);
664 
665 BSE_CXX_DECLARE_SEQUENCE (CategorySeq);
666 
667 
668 
669 /* record type declarations */
670 BSE_CXX_DECLARE_RECORD (MidiChannelEvent);
671 
672 BSE_CXX_DECLARE_RECORD (PropertyCandidates);
673 
674 BSE_CXX_DECLARE_RECORD (NoteSequence);
675 
676 BSE_CXX_DECLARE_RECORD (Ic0n);
677 
678 BSE_CXX_DECLARE_RECORD (Category);
679 
680 BSE_CXX_DECLARE_RECORD (GConfig);
681 
682 
683 
684 /* procedure prototypes */
685 
686 
687 /* class definitions */
688 
689 
690 /* choice implementations */
691 static SfiChoiceValues
692 MidiControlType_choice_values()
693 {
694  static SfiChoiceValue values[161];
695  static const SfiChoiceValues choice_values = {
696  G_N_ELEMENTS (values), values,
697  };
698  if (!values[0].choice_ident)
699  {
700  values[0].choice_ident = "BSE_MIDI_CONTROL_NONE";
701  values[0].choice_label = _("None");
702  values[0].choice_blurb = "";
703  values[1].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_0";
704  values[1].choice_label = _("Bank Select");
705  values[1].choice_blurb = _("Continuous MIDI Control #1 - Bank Select");
706  values[2].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_1";
707  values[2].choice_label = _("Modulation Depth");
708  values[2].choice_blurb = "";
709  values[3].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_2";
710  values[3].choice_label = _("Breath Control");
711  values[3].choice_blurb = "";
712  values[4].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_3";
713  values[4].choice_label = _("Continuous 3");
714  values[4].choice_blurb = "";
715  values[5].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_4";
716  values[5].choice_label = _("Foot Controller");
717  values[5].choice_blurb = "";
718  values[6].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_5";
719  values[6].choice_label = _("Portamento Time");
720  values[6].choice_blurb = "";
721  values[7].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_6";
722  values[7].choice_label = _("Data Entry");
723  values[7].choice_blurb = "";
724  values[8].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_7";
725  values[8].choice_label = _("Volume");
726  values[8].choice_blurb = "";
727  values[9].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_8";
728  values[9].choice_label = _("Balance");
729  values[9].choice_blurb = "";
730  values[10].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_9";
731  values[10].choice_label = _("Continuous 9");
732  values[10].choice_blurb = "";
733  values[11].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_10";
734  values[11].choice_label = _("Panorama");
735  values[11].choice_blurb = "";
736  values[12].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_11";
737  values[12].choice_label = _("Expression");
738  values[12].choice_blurb = "";
739  values[13].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_12";
740  values[13].choice_label = _("Effect Control 1");
741  values[13].choice_blurb = "";
742  values[14].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_13";
743  values[14].choice_label = _("Effect Control 2");
744  values[14].choice_blurb = "";
745  values[15].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_14";
746  values[15].choice_label = _("Continuous 14");
747  values[15].choice_blurb = "";
748  values[16].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_15";
749  values[16].choice_label = _("Continuous 15");
750  values[16].choice_blurb = "";
751  values[17].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_16";
752  values[17].choice_label = _("General Purpose Controller 1");
753  values[17].choice_blurb = "";
754  values[18].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_17";
755  values[18].choice_label = _("General Purpose Controller 2");
756  values[18].choice_blurb = "";
757  values[19].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_18";
758  values[19].choice_label = _("General Purpose Controller 3");
759  values[19].choice_blurb = "";
760  values[20].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_19";
761  values[20].choice_label = _("General Purpose Controller 4");
762  values[20].choice_blurb = "";
763  values[21].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_20";
764  values[21].choice_label = _("Continuous 20");
765  values[21].choice_blurb = "";
766  values[22].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_21";
767  values[22].choice_label = _("Continuous 21");
768  values[22].choice_blurb = "";
769  values[23].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_22";
770  values[23].choice_label = _("Continuous 22");
771  values[23].choice_blurb = "";
772  values[24].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_23";
773  values[24].choice_label = _("Continuous 23");
774  values[24].choice_blurb = "";
775  values[25].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_24";
776  values[25].choice_label = _("Continuous 24");
777  values[25].choice_blurb = "";
778  values[26].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_25";
779  values[26].choice_label = _("Continuous 25");
780  values[26].choice_blurb = "";
781  values[27].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_26";
782  values[27].choice_label = _("Continuous 26");
783  values[27].choice_blurb = "";
784  values[28].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_27";
785  values[28].choice_label = _("Continuous 27");
786  values[28].choice_blurb = "";
787  values[29].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_28";
788  values[29].choice_label = _("Continuous 28");
789  values[29].choice_blurb = "";
790  values[30].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_29";
791  values[30].choice_label = _("Continuous 29");
792  values[30].choice_blurb = "";
793  values[31].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_30";
794  values[31].choice_label = _("Continuous 30");
795  values[31].choice_blurb = "";
796  values[32].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_31";
797  values[32].choice_label = _("Continuous 31");
798  values[32].choice_blurb = "";
799  values[33].choice_ident = "BSE_MIDI_CONTROL_0";
800  values[33].choice_label = _("Control 0 Bank Select MSB");
801  values[33].choice_blurb = "";
802  values[34].choice_ident = "BSE_MIDI_CONTROL_1";
803  values[34].choice_label = _("Control 1 Modulation Depth MSB");
804  values[34].choice_blurb = "";
805  values[35].choice_ident = "BSE_MIDI_CONTROL_2";
806  values[35].choice_label = _("Control 2 Breath Control MSB");
807  values[35].choice_blurb = "";
808  values[36].choice_ident = "BSE_MIDI_CONTROL_3";
809  values[36].choice_label = _("control-3");
810  values[36].choice_blurb = "";
811  values[37].choice_ident = "BSE_MIDI_CONTROL_4";
812  values[37].choice_label = _("Control 4 Foot Controller MSB");
813  values[37].choice_blurb = "";
814  values[38].choice_ident = "BSE_MIDI_CONTROL_5";
815  values[38].choice_label = _("Control 5 Portamento Time MSB");
816  values[38].choice_blurb = "";
817  values[39].choice_ident = "BSE_MIDI_CONTROL_6";
818  values[39].choice_label = _("Control 6 Data Entry MSB");
819  values[39].choice_blurb = "";
820  values[40].choice_ident = "BSE_MIDI_CONTROL_7";
821  values[40].choice_label = _("Control 7 Volume MSB");
822  values[40].choice_blurb = "";
823  values[41].choice_ident = "BSE_MIDI_CONTROL_8";
824  values[41].choice_label = _("Control 8 Balance MSB");
825  values[41].choice_blurb = "";
826  values[42].choice_ident = "BSE_MIDI_CONTROL_9";
827  values[42].choice_label = _("control-9");
828  values[42].choice_blurb = "";
829  values[43].choice_ident = "BSE_MIDI_CONTROL_10";
830  values[43].choice_label = _("Control 10 Panorama MSB");
831  values[43].choice_blurb = "";
832  values[44].choice_ident = "BSE_MIDI_CONTROL_11";
833  values[44].choice_label = _("Control 11 Expression MSB");
834  values[44].choice_blurb = "";
835  values[45].choice_ident = "BSE_MIDI_CONTROL_12";
836  values[45].choice_label = _("Control 12 Effect Control 1 MSB");
837  values[45].choice_blurb = "";
838  values[46].choice_ident = "BSE_MIDI_CONTROL_13";
839  values[46].choice_label = _("Control 13 Effect Control 2 MSB");
840  values[46].choice_blurb = "";
841  values[47].choice_ident = "BSE_MIDI_CONTROL_14";
842  values[47].choice_label = _("control-14");
843  values[47].choice_blurb = "";
844  values[48].choice_ident = "BSE_MIDI_CONTROL_15";
845  values[48].choice_label = _("control-15");
846  values[48].choice_blurb = "";
847  values[49].choice_ident = "BSE_MIDI_CONTROL_16";
848  values[49].choice_label = _("Control 16 General Purpose Controller 1 MSB");
849  values[49].choice_blurb = "";
850  values[50].choice_ident = "BSE_MIDI_CONTROL_17";
851  values[50].choice_label = _("Control 17 General Purpose Controller 2 MSB");
852  values[50].choice_blurb = "";
853  values[51].choice_ident = "BSE_MIDI_CONTROL_18";
854  values[51].choice_label = _("Control 18 General Purpose Controller 3 MSB");
855  values[51].choice_blurb = "";
856  values[52].choice_ident = "BSE_MIDI_CONTROL_19";
857  values[52].choice_label = _("Control 19 General Purpose Controller 4 MSB");
858  values[52].choice_blurb = "";
859  values[53].choice_ident = "BSE_MIDI_CONTROL_20";
860  values[53].choice_label = _("control-20");
861  values[53].choice_blurb = "";
862  values[54].choice_ident = "BSE_MIDI_CONTROL_21";
863  values[54].choice_label = _("control-21");
864  values[54].choice_blurb = "";
865  values[55].choice_ident = "BSE_MIDI_CONTROL_22";
866  values[55].choice_label = _("control-22");
867  values[55].choice_blurb = "";
868  values[56].choice_ident = "BSE_MIDI_CONTROL_23";
869  values[56].choice_label = _("control-23");
870  values[56].choice_blurb = "";
871  values[57].choice_ident = "BSE_MIDI_CONTROL_24";
872  values[57].choice_label = _("control-24");
873  values[57].choice_blurb = "";
874  values[58].choice_ident = "BSE_MIDI_CONTROL_25";
875  values[58].choice_label = _("control-25");
876  values[58].choice_blurb = "";
877  values[59].choice_ident = "BSE_MIDI_CONTROL_26";
878  values[59].choice_label = _("control-26");
879  values[59].choice_blurb = "";
880  values[60].choice_ident = "BSE_MIDI_CONTROL_27";
881  values[60].choice_label = _("control-27");
882  values[60].choice_blurb = "";
883  values[61].choice_ident = "BSE_MIDI_CONTROL_28";
884  values[61].choice_label = _("control-28");
885  values[61].choice_blurb = "";
886  values[62].choice_ident = "BSE_MIDI_CONTROL_29";
887  values[62].choice_label = _("control-29");
888  values[62].choice_blurb = "";
889  values[63].choice_ident = "BSE_MIDI_CONTROL_30";
890  values[63].choice_label = _("control-30");
891  values[63].choice_blurb = "";
892  values[64].choice_ident = "BSE_MIDI_CONTROL_31";
893  values[64].choice_label = _("control-31");
894  values[64].choice_blurb = "";
895  values[65].choice_ident = "BSE_MIDI_CONTROL_32";
896  values[65].choice_label = _("Control 32 Bank Select LSB");
897  values[65].choice_blurb = "";
898  values[66].choice_ident = "BSE_MIDI_CONTROL_33";
899  values[66].choice_label = _("Control 33 Modulation Depth LSB");
900  values[66].choice_blurb = "";
901  values[67].choice_ident = "BSE_MIDI_CONTROL_34";
902  values[67].choice_label = _("Control 34 Breath Control LSB");
903  values[67].choice_blurb = "";
904  values[68].choice_ident = "BSE_MIDI_CONTROL_35";
905  values[68].choice_label = _("control-35");
906  values[68].choice_blurb = "";
907  values[69].choice_ident = "BSE_MIDI_CONTROL_36";
908  values[69].choice_label = _("Control 36 Foot Controller LSB");
909  values[69].choice_blurb = "";
910  values[70].choice_ident = "BSE_MIDI_CONTROL_37";
911  values[70].choice_label = _("Control 37 Portamento Time LSB");
912  values[70].choice_blurb = "";
913  values[71].choice_ident = "BSE_MIDI_CONTROL_38";
914  values[71].choice_label = _("Control 38 Data Entry LSB");
915  values[71].choice_blurb = "";
916  values[72].choice_ident = "BSE_MIDI_CONTROL_39";
917  values[72].choice_label = _("Control 39 Volume LSB");
918  values[72].choice_blurb = "";
919  values[73].choice_ident = "BSE_MIDI_CONTROL_40";
920  values[73].choice_label = _("Control 40 Balance LSB");
921  values[73].choice_blurb = "";
922  values[74].choice_ident = "BSE_MIDI_CONTROL_41";
923  values[74].choice_label = _("control-41");
924  values[74].choice_blurb = "";
925  values[75].choice_ident = "BSE_MIDI_CONTROL_42";
926  values[75].choice_label = _("Control 42 Panorama LSB");
927  values[75].choice_blurb = "";
928  values[76].choice_ident = "BSE_MIDI_CONTROL_43";
929  values[76].choice_label = _("Control 43 Expression LSB");
930  values[76].choice_blurb = "";
931  values[77].choice_ident = "BSE_MIDI_CONTROL_44";
932  values[77].choice_label = _("Control 44 Effect Control 1 LSB");
933  values[77].choice_blurb = "";
934  values[78].choice_ident = "BSE_MIDI_CONTROL_45";
935  values[78].choice_label = _("Control 45 Effect Control 2 LSB");
936  values[78].choice_blurb = "";
937  values[79].choice_ident = "BSE_MIDI_CONTROL_46";
938  values[79].choice_label = _("control-46");
939  values[79].choice_blurb = "";
940  values[80].choice_ident = "BSE_MIDI_CONTROL_47";
941  values[80].choice_label = _("control-47");
942  values[80].choice_blurb = "";
943  values[81].choice_ident = "BSE_MIDI_CONTROL_48";
944  values[81].choice_label = _("Control 48 General Purpose Controller 1 LSB");
945  values[81].choice_blurb = "";
946  values[82].choice_ident = "BSE_MIDI_CONTROL_49";
947  values[82].choice_label = _("Control 49 General Purpose Controller 2 LSB");
948  values[82].choice_blurb = "";
949  values[83].choice_ident = "BSE_MIDI_CONTROL_50";
950  values[83].choice_label = _("Control 50 General Purpose Controller 3 LSB");
951  values[83].choice_blurb = "";
952  values[84].choice_ident = "BSE_MIDI_CONTROL_51";
953  values[84].choice_label = _("Control 51 General Purpose Controller 4 LSB");
954  values[84].choice_blurb = "";
955  values[85].choice_ident = "BSE_MIDI_CONTROL_52";
956  values[85].choice_label = _("control-52");
957  values[85].choice_blurb = "";
958  values[86].choice_ident = "BSE_MIDI_CONTROL_53";
959  values[86].choice_label = _("control-53");
960  values[86].choice_blurb = "";
961  values[87].choice_ident = "BSE_MIDI_CONTROL_54";
962  values[87].choice_label = _("control-54");
963  values[87].choice_blurb = "";
964  values[88].choice_ident = "BSE_MIDI_CONTROL_55";
965  values[88].choice_label = _("control-55");
966  values[88].choice_blurb = "";
967  values[89].choice_ident = "BSE_MIDI_CONTROL_56";
968  values[89].choice_label = _("control-56");
969  values[89].choice_blurb = "";
970  values[90].choice_ident = "BSE_MIDI_CONTROL_57";
971  values[90].choice_label = _("control-57");
972  values[90].choice_blurb = "";
973  values[91].choice_ident = "BSE_MIDI_CONTROL_58";
974  values[91].choice_label = _("control-58");
975  values[91].choice_blurb = "";
976  values[92].choice_ident = "BSE_MIDI_CONTROL_59";
977  values[92].choice_label = _("control-59");
978  values[92].choice_blurb = "";
979  values[93].choice_ident = "BSE_MIDI_CONTROL_60";
980  values[93].choice_label = _("control-60");
981  values[93].choice_blurb = "";
982  values[94].choice_ident = "BSE_MIDI_CONTROL_61";
983  values[94].choice_label = _("control-61");
984  values[94].choice_blurb = "";
985  values[95].choice_ident = "BSE_MIDI_CONTROL_62";
986  values[95].choice_label = _("control-62");
987  values[95].choice_blurb = "";
988  values[96].choice_ident = "BSE_MIDI_CONTROL_63";
989  values[96].choice_label = _("control-63");
990  values[96].choice_blurb = "";
991  values[97].choice_ident = "BSE_MIDI_CONTROL_64";
992  values[97].choice_label = _("Control 64 Damper Pedal Switch (Sustain)");
993  values[97].choice_blurb = "";
994  values[98].choice_ident = "BSE_MIDI_CONTROL_65";
995  values[98].choice_label = _("Control 65 Portamento Switch");
996  values[98].choice_blurb = "";
997  values[99].choice_ident = "BSE_MIDI_CONTROL_66";
998  values[99].choice_label = _("Control 66 Sustenuto Switch");
999  values[99].choice_blurb = "";
1000  values[100].choice_ident = "BSE_MIDI_CONTROL_67";
1001  values[100].choice_label = _("Control 67 Soft Switch");
1002  values[100].choice_blurb = "";
1003  values[101].choice_ident = "BSE_MIDI_CONTROL_68";
1004  values[101].choice_label = _("Control 68 Legato Pedal Switch");
1005  values[101].choice_blurb = "";
1006  values[102].choice_ident = "BSE_MIDI_CONTROL_69";
1007  values[102].choice_label = _("Control 69 Hold Pedal Switch");
1008  values[102].choice_blurb = "";
1009  values[103].choice_ident = "BSE_MIDI_CONTROL_70";
1010  values[103].choice_label = _("Control 70 Sound Variation");
1011  values[103].choice_blurb = "";
1012  values[104].choice_ident = "BSE_MIDI_CONTROL_71";
1013  values[104].choice_label = _("Control 71 Filter Resonance (Timbre)");
1014  values[104].choice_blurb = "";
1015  values[105].choice_ident = "BSE_MIDI_CONTROL_72";
1016  values[105].choice_label = _("Control 72 Sound Release Time");
1017  values[105].choice_blurb = "";
1018  values[106].choice_ident = "BSE_MIDI_CONTROL_73";
1019  values[106].choice_label = _("Control 73 Sound Attack Time");
1020  values[106].choice_blurb = "";
1021  values[107].choice_ident = "BSE_MIDI_CONTROL_74";
1022  values[107].choice_label = _("Control 74 Sound Brightness");
1023  values[107].choice_blurb = "";
1024  values[108].choice_ident = "BSE_MIDI_CONTROL_75";
1025  values[108].choice_label = _("Control 75 Sound Decay Time");
1026  values[108].choice_blurb = "";
1027  values[109].choice_ident = "BSE_MIDI_CONTROL_76";
1028  values[109].choice_label = _("Control 76 Vibrato Rate");
1029  values[109].choice_blurb = "";
1030  values[110].choice_ident = "BSE_MIDI_CONTROL_77";
1031  values[110].choice_label = _("Control 77 Vibrato Depth");
1032  values[110].choice_blurb = "";
1033  values[111].choice_ident = "BSE_MIDI_CONTROL_78";
1034  values[111].choice_label = _("Control 78 Vibrato Delay");
1035  values[111].choice_blurb = "";
1036  values[112].choice_ident = "BSE_MIDI_CONTROL_79";
1037  values[112].choice_label = _("Control 79 Sound Control 10");
1038  values[112].choice_blurb = "";
1039  values[113].choice_ident = "BSE_MIDI_CONTROL_80";
1040  values[113].choice_label = _("Control 80 General Purpose Switch 5");
1041  values[113].choice_blurb = "";
1042  values[114].choice_ident = "BSE_MIDI_CONTROL_81";
1043  values[114].choice_label = _("Control 81 General Purpose Switch 6");
1044  values[114].choice_blurb = "";
1045  values[115].choice_ident = "BSE_MIDI_CONTROL_82";
1046  values[115].choice_label = _("Control 82 General Purpose Switch 7");
1047  values[115].choice_blurb = "";
1048  values[116].choice_ident = "BSE_MIDI_CONTROL_83";
1049  values[116].choice_label = _("Control 83 General Purpose Switch 8");
1050  values[116].choice_blurb = "";
1051  values[117].choice_ident = "BSE_MIDI_CONTROL_84";
1052  values[117].choice_label = _("Control 84 Portamento Control (Note)");
1053  values[117].choice_blurb = "";
1054  values[118].choice_ident = "BSE_MIDI_CONTROL_85";
1055  values[118].choice_label = _("control-85");
1056  values[118].choice_blurb = "";
1057  values[119].choice_ident = "BSE_MIDI_CONTROL_86";
1058  values[119].choice_label = _("control-86");
1059  values[119].choice_blurb = "";
1060  values[120].choice_ident = "BSE_MIDI_CONTROL_87";
1061  values[120].choice_label = _("control-87");
1062  values[120].choice_blurb = "";
1063  values[121].choice_ident = "BSE_MIDI_CONTROL_88";
1064  values[121].choice_label = _("control-88");
1065  values[121].choice_blurb = "";
1066  values[122].choice_ident = "BSE_MIDI_CONTROL_89";
1067  values[122].choice_label = _("control-89");
1068  values[122].choice_blurb = "";
1069  values[123].choice_ident = "BSE_MIDI_CONTROL_90";
1070  values[123].choice_label = _("control-90");
1071  values[123].choice_blurb = "";
1072  values[124].choice_ident = "BSE_MIDI_CONTROL_91";
1073  values[124].choice_label = _("Control 91 Reverb Depth");
1074  values[124].choice_blurb = "";
1075  values[125].choice_ident = "BSE_MIDI_CONTROL_92";
1076  values[125].choice_label = _("Control 92 Tremolo Depth");
1077  values[125].choice_blurb = "";
1078  values[126].choice_ident = "BSE_MIDI_CONTROL_93";
1079  values[126].choice_label = _("Control 93 Chorus Depth");
1080  values[126].choice_blurb = "";
1081  values[127].choice_ident = "BSE_MIDI_CONTROL_94";
1082  values[127].choice_label = _("Control 93 Detune Depth");
1083  values[127].choice_blurb = "";
1084  values[128].choice_ident = "BSE_MIDI_CONTROL_95";
1085  values[128].choice_label = _("Control 95 Phase Depth");
1086  values[128].choice_blurb = "";
1087  values[129].choice_ident = "BSE_MIDI_CONTROL_96";
1088  values[129].choice_label = _("Control 96 Data Increment Trigger");
1089  values[129].choice_blurb = "";
1090  values[130].choice_ident = "BSE_MIDI_CONTROL_97";
1091  values[130].choice_label = _("Control 97 Data Decrement Trigger");
1092  values[130].choice_blurb = "";
1093  values[131].choice_ident = "BSE_MIDI_CONTROL_98";
1094  values[131].choice_label = _("Control 98 Non-Registered Parameter MSB");
1095  values[131].choice_blurb = "";
1096  values[132].choice_ident = "BSE_MIDI_CONTROL_99";
1097  values[132].choice_label = _("Control 99 Non-Registered Parameter LSB");
1098  values[132].choice_blurb = "";
1099  values[133].choice_ident = "BSE_MIDI_CONTROL_100";
1100  values[133].choice_label = _("Control 100 Registered Parameter MSB");
1101  values[133].choice_blurb = "";
1102  values[134].choice_ident = "BSE_MIDI_CONTROL_101";
1103  values[134].choice_label = _("Control 101 Registered Parameter LSB");
1104  values[134].choice_blurb = "";
1105  values[135].choice_ident = "BSE_MIDI_CONTROL_102";
1106  values[135].choice_label = _("control-102");
1107  values[135].choice_blurb = "";
1108  values[136].choice_ident = "BSE_MIDI_CONTROL_103";
1109  values[136].choice_label = _("control-103");
1110  values[136].choice_blurb = "";
1111  values[137].choice_ident = "BSE_MIDI_CONTROL_104";
1112  values[137].choice_label = _("control-104");
1113  values[137].choice_blurb = "";
1114  values[138].choice_ident = "BSE_MIDI_CONTROL_105";
1115  values[138].choice_label = _("control-105");
1116  values[138].choice_blurb = "";
1117  values[139].choice_ident = "BSE_MIDI_CONTROL_106";
1118  values[139].choice_label = _("control-106");
1119  values[139].choice_blurb = "";
1120  values[140].choice_ident = "BSE_MIDI_CONTROL_107";
1121  values[140].choice_label = _("control-107");
1122  values[140].choice_blurb = "";
1123  values[141].choice_ident = "BSE_MIDI_CONTROL_108";
1124  values[141].choice_label = _("control-108");
1125  values[141].choice_blurb = "";
1126  values[142].choice_ident = "BSE_MIDI_CONTROL_109";
1127  values[142].choice_label = _("control-109");
1128  values[142].choice_blurb = "";
1129  values[143].choice_ident = "BSE_MIDI_CONTROL_110";
1130  values[143].choice_label = _("control-110");
1131  values[143].choice_blurb = "";
1132  values[144].choice_ident = "BSE_MIDI_CONTROL_111";
1133  values[144].choice_label = _("control-111");
1134  values[144].choice_blurb = "";
1135  values[145].choice_ident = "BSE_MIDI_CONTROL_112";
1136  values[145].choice_label = _("control-112");
1137  values[145].choice_blurb = "";
1138  values[146].choice_ident = "BSE_MIDI_CONTROL_113";
1139  values[146].choice_label = _("control-113");
1140  values[146].choice_blurb = "";
1141  values[147].choice_ident = "BSE_MIDI_CONTROL_114";
1142  values[147].choice_label = _("control-114");
1143  values[147].choice_blurb = "";
1144  values[148].choice_ident = "BSE_MIDI_CONTROL_115";
1145  values[148].choice_label = _("control-115");
1146  values[148].choice_blurb = "";
1147  values[149].choice_ident = "BSE_MIDI_CONTROL_116";
1148  values[149].choice_label = _("control-116");
1149  values[149].choice_blurb = "";
1150  values[150].choice_ident = "BSE_MIDI_CONTROL_117";
1151  values[150].choice_label = _("control-117");
1152  values[150].choice_blurb = "";
1153  values[151].choice_ident = "BSE_MIDI_CONTROL_118";
1154  values[151].choice_label = _("control-118");
1155  values[151].choice_blurb = "";
1156  values[152].choice_ident = "BSE_MIDI_CONTROL_119";
1157  values[152].choice_label = _("control-119");
1158  values[152].choice_blurb = "";
1159  values[153].choice_ident = "BSE_MIDI_CONTROL_120";
1160  values[153].choice_label = _("Control 120 All Sound Off ITrigger");
1161  values[153].choice_blurb = "";
1162  values[154].choice_ident = "BSE_MIDI_CONTROL_121";
1163  values[154].choice_label = _("Control 121 All Controllers Off ITrigger");
1164  values[154].choice_blurb = "";
1165  values[155].choice_ident = "BSE_MIDI_CONTROL_122";
1166  values[155].choice_label = _("Control 122 Local Control Switch");
1167  values[155].choice_blurb = "";
1168  values[156].choice_ident = "BSE_MIDI_CONTROL_123";
1169  values[156].choice_label = _("Control 123 All Notes Off ITrigger");
1170  values[156].choice_blurb = "";
1171  values[157].choice_ident = "BSE_MIDI_CONTROL_124";
1172  values[157].choice_label = _("Control 124 Omni Mode Off ITrigger");
1173  values[157].choice_blurb = "";
1174  values[158].choice_ident = "BSE_MIDI_CONTROL_125";
1175  values[158].choice_label = _("Control 125 Omni Mode On ITrigger");
1176  values[158].choice_blurb = "";
1177  values[159].choice_ident = "BSE_MIDI_CONTROL_126";
1178  values[159].choice_label = _("Control 126 Monophonic Voices Mode");
1179  values[159].choice_blurb = "";
1180  values[160].choice_ident = "BSE_MIDI_CONTROL_127";
1181  values[160].choice_label = _("Control 127 Polyphonic Mode On ITrigger");
1182  values[160].choice_blurb = "";
1183  }
1184  return choice_values;
1185 }
1186 
1187 static SfiChoiceValues
1188 MidiChannelEventType_choice_values()
1189 {
1190  static SfiChoiceValue values[18];
1191  static const SfiChoiceValues choice_values = {
1192  G_N_ELEMENTS (values), values,
1193  };
1194  if (!values[0].choice_ident)
1195  {
1196  values[0].choice_ident = "BSE_MIDI_EVENT_NONE";
1197  values[0].choice_label = "bse-midi-event-none";
1198  values[0].choice_blurb = "";
1199  values[1].choice_ident = "BSE_MIDI_EVENT_NOTE_OFF";
1200  values[1].choice_label = "bse-midi-event-note-off";
1201  values[1].choice_blurb = "";
1202  values[2].choice_ident = "BSE_MIDI_EVENT_NOTE_ON";
1203  values[2].choice_label = "bse-midi-event-note-on";
1204  values[2].choice_blurb = "";
1205  values[3].choice_ident = "BSE_MIDI_EVENT_KEY_PRESSURE";
1206  values[3].choice_label = "bse-midi-event-key-pressure";
1207  values[3].choice_blurb = "";
1208  values[4].choice_ident = "BSE_MIDI_EVENT_CONTROL_CHANGE";
1209  values[4].choice_label = "bse-midi-event-control-change";
1210  values[4].choice_blurb = "";
1211  values[5].choice_ident = "BSE_MIDI_EVENT_PROGRAM_CHANGE";
1212  values[5].choice_label = "bse-midi-event-program-change";
1213  values[5].choice_blurb = "";
1214  values[6].choice_ident = "BSE_MIDI_EVENT_CHANNEL_PRESSURE";
1215  values[6].choice_label = "bse-midi-event-channel-pressure";
1216  values[6].choice_blurb = "";
1217  values[7].choice_ident = "BSE_MIDI_EVENT_PITCH_BEND";
1218  values[7].choice_label = "bse-midi-event-pitch-bend";
1219  values[7].choice_blurb = "";
1220  values[8].choice_ident = "BSE_MIDI_EVENT_SYS_EX";
1221  values[8].choice_label = "bse-midi-event-sys-ex";
1222  values[8].choice_blurb = "";
1223  values[9].choice_ident = "BSE_MIDI_EVENT_SONG_POINTER";
1224  values[9].choice_label = "bse-midi-event-song-pointer";
1225  values[9].choice_blurb = "";
1226  values[10].choice_ident = "BSE_MIDI_EVENT_SONG_SELECT";
1227  values[10].choice_label = "bse-midi-event-song-select";
1228  values[10].choice_blurb = "";
1229  values[11].choice_ident = "BSE_MIDI_EVENT_TUNE";
1230  values[11].choice_label = "bse-midi-event-tune";
1231  values[11].choice_blurb = "";
1232  values[12].choice_ident = "BSE_MIDI_EVENT_TIMING_CLOCK";
1233  values[12].choice_label = "bse-midi-event-timing-clock";
1234  values[12].choice_blurb = "";
1235  values[13].choice_ident = "BSE_MIDI_EVENT_SONG_START";
1236  values[13].choice_label = "bse-midi-event-song-start";
1237  values[13].choice_blurb = "";
1238  values[14].choice_ident = "BSE_MIDI_EVENT_SONG_CONTINUE";
1239  values[14].choice_label = "bse-midi-event-song-continue";
1240  values[14].choice_blurb = "";
1241  values[15].choice_ident = "BSE_MIDI_EVENT_SONG_STOP";
1242  values[15].choice_label = "bse-midi-event-song-stop";
1243  values[15].choice_blurb = "";
1244  values[16].choice_ident = "BSE_MIDI_EVENT_ACTIVE_SENSING";
1245  values[16].choice_label = "bse-midi-event-active-sensing";
1246  values[16].choice_blurb = "";
1247  values[17].choice_ident = "BSE_MIDI_EVENT_SYSTEM_RESET";
1248  values[17].choice_label = "bse-midi-event-system-reset";
1249  values[17].choice_blurb = "";
1250  }
1251  return choice_values;
1252 }
1253 
1254 
1255 
1256 /* record implementations */
1258 MidiChannelEvent::from_rec (SfiRec *sfi_rec)
1259 {
1260  GValue *element;
1261 
1262  if (!sfi_rec)
1263  return Sfi::INIT_NULL;
1264 
1265  ::Bse::MidiChannelEventHandle rec = Sfi::INIT_DEFAULT;
1266  element = sfi_rec_get (sfi_rec, "event_type");
1267  if (element)
1268  rec->event_type = (::Bse::MidiChannelEventType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS1 (element);
1269  element = sfi_rec_get (sfi_rec, "channel");
1270  if (element)
1271  rec->channel = sfi_value_get_int (element);
1272  element = sfi_rec_get (sfi_rec, "tick_stamp");
1273  if (element)
1274  rec->tick_stamp = sfi_value_get_num (element);
1275  element = sfi_rec_get (sfi_rec, "frequency");
1276  if (element)
1277  rec->frequency = sfi_value_get_real (element);
1278  element = sfi_rec_get (sfi_rec, "velocity");
1279  if (element)
1280  rec->velocity = sfi_value_get_real (element);
1281  element = sfi_rec_get (sfi_rec, "control");
1282  if (element)
1283  rec->control = sfi_value_get_int (element);
1284  element = sfi_rec_get (sfi_rec, "value");
1285  if (element)
1286  rec->value = sfi_value_get_real (element);
1287  element = sfi_rec_get (sfi_rec, "program");
1288  if (element)
1289  rec->program = sfi_value_get_int (element);
1290  element = sfi_rec_get (sfi_rec, "intensity");
1291  if (element)
1292  rec->intensity = sfi_value_get_real (element);
1293  element = sfi_rec_get (sfi_rec, "pitch_bend");
1294  if (element)
1295  rec->pitch_bend = sfi_value_get_real (element);
1296  element = sfi_rec_get (sfi_rec, "song_pointer");
1297  if (element)
1298  rec->song_pointer = sfi_value_get_int (element);
1299  element = sfi_rec_get (sfi_rec, "song_number");
1300  if (element)
1301  rec->song_number = sfi_value_get_int (element);
1302  return rec;
1303 }
1304 
1305 SfiRec *
1306 MidiChannelEvent::to_rec (const ::Bse::MidiChannelEventHandle & rec)
1307 {
1308  SfiRec *sfi_rec;
1309  GValue *element;
1310 
1311  if (!rec)
1312  return NULL;
1313 
1314  sfi_rec = sfi_rec_new ();
1315  element = sfi_rec_forced_get (sfi_rec, "event_type", SFI_TYPE_CHOICE);
1316  sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS2 (element, rec->event_type);
1317  element = sfi_rec_forced_get (sfi_rec, "channel", SFI_TYPE_INT);
1318  sfi_value_set_int (element, rec->channel);
1319  element = sfi_rec_forced_get (sfi_rec, "tick_stamp", SFI_TYPE_NUM);
1320  sfi_value_set_num (element, rec->tick_stamp);
1321  element = sfi_rec_forced_get (sfi_rec, "frequency", SFI_TYPE_REAL);
1322  sfi_value_set_real (element, rec->frequency);
1323  element = sfi_rec_forced_get (sfi_rec, "velocity", SFI_TYPE_REAL);
1324  sfi_value_set_real (element, rec->velocity);
1325  element = sfi_rec_forced_get (sfi_rec, "control", SFI_TYPE_INT);
1326  sfi_value_set_int (element, rec->control);
1327  element = sfi_rec_forced_get (sfi_rec, "value", SFI_TYPE_REAL);
1328  sfi_value_set_real (element, rec->value);
1329  element = sfi_rec_forced_get (sfi_rec, "program", SFI_TYPE_INT);
1330  sfi_value_set_int (element, rec->program);
1331  element = sfi_rec_forced_get (sfi_rec, "intensity", SFI_TYPE_REAL);
1332  sfi_value_set_real (element, rec->intensity);
1333  element = sfi_rec_forced_get (sfi_rec, "pitch_bend", SFI_TYPE_REAL);
1334  sfi_value_set_real (element, rec->pitch_bend);
1335  element = sfi_rec_forced_get (sfi_rec, "song_pointer", SFI_TYPE_INT);
1336  sfi_value_set_int (element, rec->song_pointer);
1337  element = sfi_rec_forced_get (sfi_rec, "song_number", SFI_TYPE_INT);
1338  sfi_value_set_int (element, rec->song_number);
1339  return sfi_rec;
1340 }
1341 
1342 ::Bse::MidiChannelEventHandle
1343 MidiChannelEvent::value_get_boxed (const GValue *value)
1344 {
1345  return ::Bse::MidiChannelEventHandle::value_get_boxed (value);
1346 }
1347 
1348 void
1349 MidiChannelEvent::value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self)
1350 {
1351  ::Bse::MidiChannelEventHandle::value_set_boxed (value, self);
1352 }
1353 
1355 MidiChannelEvent::get_fields()
1356 {
1357  static SfiRecFields rfields = { 0, NULL };
1358  if (!rfields.n_fields)
1359  {
1360  static GParamSpec *fields[12 + 1];
1361  rfields.n_fields = 12;
1362  fields[0] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",222, "event_type", Bse::MidiChannelEventType_choice_values());
1363  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",223,"channel","Channel" , "" , 0LL , 0LL , 99LL , 1LL , ":readwrite");
1364  fields[2] = sfidl_pspec_SfiNum (NULL,"/opt/src/beast/bse/bsebasics.idl",224,"tick_stamp","Time Stamp" , "" , 0LL , 0LL , SFI_MAXNUM , 0LL , ":r:w:S:G:");
1365  fields[3] = sfidl_pspec_Freq (NULL,"/opt/src/beast/bse/bsebasics.idl",226,"frequency","Frequency" , "" , KAMMER_FREQ , ":readwrite");
1366  fields[4] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",227,"velocity","Velocity" , "" , 1LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
1367  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",229,"control","Control Number" , "" , 0LL , 0LL , 1024LL , 8LL , ":readwrite");
1368  fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",230,"value","Value" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
1369  fields[7] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",232,"program","Program" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
1370  fields[8] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",234,"intensity","Intensity" , "" , 0LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
1371  fields[9] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",236,"pitch_bend","Pitch Bend" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
1372  fields[10] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",238,"song_pointer","Song Pointer" , "" , 0LL , 0LL , 16383LL , 128LL , ":readwrite");
1373  fields[11] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",240,"song_number","Song Number" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
1374  rfields.fields = fields;
1375  }
1376  return rfields;
1377 }
1379 PropertyCandidates::from_rec (SfiRec *sfi_rec)
1380 {
1381  GValue *element;
1382 
1383  if (!sfi_rec)
1384  return Sfi::INIT_NULL;
1385 
1386  ::Bse::PropertyCandidatesHandle rec = Sfi::INIT_DEFAULT;
1387  element = sfi_rec_get (sfi_rec, "label");
1388  if (element)
1389  rec->label = ::Sfi::SfiString::value_get_string (element);
1390  element = sfi_rec_get (sfi_rec, "tooltip");
1391  if (element)
1392  rec->tooltip = ::Sfi::SfiString::value_get_string (element);
1393  element = sfi_rec_get (sfi_rec, "items");
1394  if (element)
1395  rec->items = ::Bse::It3mSeq::value_get_boxed (element);
1396  element = sfi_rec_get (sfi_rec, "partitions");
1397  if (element)
1398  rec->partitions = ::Bse::TypeSeq::value_get_boxed (element);
1399  return rec;
1400 }
1401 
1402 SfiRec *
1403 PropertyCandidates::to_rec (const ::Bse::PropertyCandidatesHandle & rec)
1404 {
1405  SfiRec *sfi_rec;
1406  GValue *element;
1407 
1408  if (!rec)
1409  return NULL;
1410 
1411  sfi_rec = sfi_rec_new ();
1412  element = sfi_rec_forced_get (sfi_rec, "label", SFI_TYPE_SFI_STRING);
1413  ::Sfi::SfiString::value_set_string (element, rec->label);
1414  element = sfi_rec_forced_get (sfi_rec, "tooltip", SFI_TYPE_SFI_STRING);
1415  ::Sfi::SfiString::value_set_string (element, rec->tooltip);
1416  element = sfi_rec_forced_get (sfi_rec, "items", SFI_TYPE_SEQ);
1417  ::Bse::It3mSeq::value_set_boxed (element, rec->items);
1418  element = sfi_rec_forced_get (sfi_rec, "partitions", SFI_TYPE_SEQ);
1419  ::Bse::TypeSeq::value_set_boxed (element, rec->partitions);
1420  return sfi_rec;
1421 }
1422 
1424 PropertyCandidates::value_get_boxed (const GValue *value)
1425 {
1426  return ::Bse::PropertyCandidatesHandle::value_get_boxed (value);
1427 }
1428 
1429 void
1430 PropertyCandidates::value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self)
1431 {
1432  ::Bse::PropertyCandidatesHandle::value_set_boxed (value, self);
1433 }
1434 
1436 PropertyCandidates::get_fields()
1437 {
1438  static SfiRecFields rfields = { 0, NULL };
1439  if (!rfields.n_fields)
1440  {
1441  static GParamSpec *fields[4 + 1];
1442  rfields.n_fields = 4;
1443  fields[0] = sfidl_pspec_SfiString_default (NULL,"/opt/src/beast/bse/bsebasics.idl",252,"label");
1444  fields[1] = sfidl_pspec_SfiString_default (NULL,"/opt/src/beast/bse/bsebasics.idl",253,"tooltip");
1445  fields[2] = sfidl_pspec_Sequence_default (NULL,"/opt/src/beast/bse/bsebasics.idl",254, "items", Bse::It3mSeq::get_element());
1446  fields[3] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",255, "partitions", "Type Partitions" , "List of types which may logically partition the list of items by type discrimination" , ":r:w:S:G:", Bse::TypeSeq::get_element());
1447  rfields.fields = fields;
1448  }
1449  return rfields;
1450 }
1452 NoteSequence::from_rec (SfiRec *sfi_rec)
1453 {
1454  GValue *element;
1455 
1456  if (!sfi_rec)
1457  return Sfi::INIT_NULL;
1458 
1459  ::Bse::NoteSequenceHandle rec = Sfi::INIT_DEFAULT;
1460  element = sfi_rec_get (sfi_rec, "offset");
1461  if (element)
1462  rec->offset = sfi_value_get_int (element);
1463  element = sfi_rec_get (sfi_rec, "notes");
1464  if (element)
1465  rec->notes = ::Bse::NoteSeq::value_get_boxed (element);
1466  return rec;
1467 }
1468 
1469 SfiRec *
1470 NoteSequence::to_rec (const ::Bse::NoteSequenceHandle & rec)
1471 {
1472  SfiRec *sfi_rec;
1473  GValue *element;
1474 
1475  if (!rec)
1476  return NULL;
1477 
1478  sfi_rec = sfi_rec_new ();
1479  element = sfi_rec_forced_get (sfi_rec, "offset", SFI_TYPE_INT);
1480  sfi_value_set_int (element, rec->offset);
1481  element = sfi_rec_forced_get (sfi_rec, "notes", SFI_TYPE_SEQ);
1482  ::Bse::NoteSeq::value_set_boxed (element, rec->notes);
1483  return sfi_rec;
1484 }
1485 
1487 NoteSequence::value_get_boxed (const GValue *value)
1488 {
1489  return ::Bse::NoteSequenceHandle::value_get_boxed (value);
1490 }
1491 
1492 void
1493 NoteSequence::value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self)
1494 {
1495  ::Bse::NoteSequenceHandle::value_set_boxed (value, self);
1496 }
1497 
1499 NoteSequence::get_fields()
1500 {
1501  static SfiRecFields rfields = { 0, NULL };
1502  if (!rfields.n_fields)
1503  {
1504  static GParamSpec *fields[2 + 1];
1505  rfields.n_fields = 2;
1506  fields[0] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",259,"offset","Note Offset" , "Center/base note" , KAMMER_NOTE , ":readwrite");
1507  fields[1] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",260, "notes", "Notes" , "Sequence of notes" , ":readwrite", Bse::NoteSeq::get_element());
1508  rfields.fields = fields;
1509  }
1510  return rfields;
1511 }
1513 Ic0n::from_rec (SfiRec *sfi_rec)
1514 {
1515  GValue *element;
1516 
1517  if (!sfi_rec)
1518  return Sfi::INIT_NULL;
1519 
1520  ::Bse::Ic0nHandle rec = Sfi::INIT_DEFAULT;
1521  element = sfi_rec_get (sfi_rec, "width");
1522  if (element)
1523  rec->width = sfi_value_get_int (element);
1524  element = sfi_rec_get (sfi_rec, "height");
1525  if (element)
1526  rec->height = sfi_value_get_int (element);
1527  element = sfi_rec_get (sfi_rec, "pixel_seq");
1528  if (element)
1529  rec->pixel_seq = ::Bse::P1xelSeq::value_get_boxed (element);
1530  return rec;
1531 }
1532 
1533 SfiRec *
1534 Ic0n::to_rec (const ::Bse::Ic0nHandle & rec)
1535 {
1536  SfiRec *sfi_rec;
1537  GValue *element;
1538 
1539  if (!rec)
1540  return NULL;
1541 
1542  sfi_rec = sfi_rec_new ();
1543  element = sfi_rec_forced_get (sfi_rec, "width", SFI_TYPE_INT);
1544  sfi_value_set_int (element, rec->width);
1545  element = sfi_rec_forced_get (sfi_rec, "height", SFI_TYPE_INT);
1546  sfi_value_set_int (element, rec->height);
1547  element = sfi_rec_forced_get (sfi_rec, "pixel_seq", SFI_TYPE_SEQ);
1548  ::Bse::P1xelSeq::value_set_boxed (element, rec->pixel_seq);
1549  return sfi_rec;
1550 }
1551 
1553 Ic0n::value_get_boxed (const GValue *value)
1554 {
1555  return ::Bse::Ic0nHandle::value_get_boxed (value);
1556 }
1557 
1558 void
1559 Ic0n::value_set_boxed (GValue *value, const ::Bse::Ic0nHandle & self)
1560 {
1561  ::Bse::Ic0nHandle::value_set_boxed (value, self);
1562 }
1563 
1565 Ic0n::get_fields()
1566 {
1567  static SfiRecFields rfields = { 0, NULL };
1568  if (!rfields.n_fields)
1569  {
1570  static GParamSpec *fields[3 + 1];
1571  rfields.n_fields = 3;
1572  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",268,"width","Width" , "Width in pixels or 0 for no icon" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
1573  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",269,"height","Height" , "Height in pixels or 0 for no icon" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
1574  fields[2] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",270, "pixel_seq", "Pixels" , "Pixel array of width*height ARGB pixels" , ":readwrite", Bse::P1xelSeq::get_element());
1575  rfields.fields = fields;
1576  }
1577  return rfields;
1578 }
1580 Category::from_rec (SfiRec *sfi_rec)
1581 {
1582  GValue *element;
1583 
1584  if (!sfi_rec)
1585  return Sfi::INIT_NULL;
1586 
1587  ::Bse::CategoryHandle rec = Sfi::INIT_DEFAULT;
1588  element = sfi_rec_get (sfi_rec, "category_id");
1589  if (element)
1590  rec->category_id = sfi_value_get_int (element);
1591  element = sfi_rec_get (sfi_rec, "category");
1592  if (element)
1593  rec->category = ::Sfi::SfiString::value_get_string (element);
1594  element = sfi_rec_get (sfi_rec, "mindex");
1595  if (element)
1596  rec->mindex = sfi_value_get_int (element);
1597  element = sfi_rec_get (sfi_rec, "lindex");
1598  if (element)
1599  rec->lindex = sfi_value_get_int (element);
1600  element = sfi_rec_get (sfi_rec, "otype");
1601  if (element)
1602  rec->otype = ::Sfi::SfiString::value_get_string (element);
1603  element = sfi_rec_get (sfi_rec, "icon");
1604  if (element)
1605  rec->icon = ::Bse::Ic0n::value_get_boxed (element);
1606  return rec;
1607 }
1608 
1609 SfiRec *
1610 Category::to_rec (const ::Bse::CategoryHandle & rec)
1611 {
1612  SfiRec *sfi_rec;
1613  GValue *element;
1614 
1615  if (!rec)
1616  return NULL;
1617 
1618  sfi_rec = sfi_rec_new ();
1619  element = sfi_rec_forced_get (sfi_rec, "category_id", SFI_TYPE_INT);
1620  sfi_value_set_int (element, rec->category_id);
1621  element = sfi_rec_forced_get (sfi_rec, "category", SFI_TYPE_SFI_STRING);
1622  ::Sfi::SfiString::value_set_string (element, rec->category);
1623  element = sfi_rec_forced_get (sfi_rec, "mindex", SFI_TYPE_INT);
1624  sfi_value_set_int (element, rec->mindex);
1625  element = sfi_rec_forced_get (sfi_rec, "lindex", SFI_TYPE_INT);
1626  sfi_value_set_int (element, rec->lindex);
1627  element = sfi_rec_forced_get (sfi_rec, "otype", SFI_TYPE_SFI_STRING);
1628  ::Sfi::SfiString::value_set_string (element, rec->otype);
1629  element = sfi_rec_forced_get (sfi_rec, "icon", SFI_TYPE_REC);
1630  ::Bse::Ic0n::value_set_boxed (element, rec->icon);
1631  return sfi_rec;
1632 }
1633 
1635 Category::value_get_boxed (const GValue *value)
1636 {
1637  return ::Bse::CategoryHandle::value_get_boxed (value);
1638 }
1639 
1640 void
1641 Category::value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self)
1642 {
1643  ::Bse::CategoryHandle::value_set_boxed (value, self);
1644 }
1645 
1647 Category::get_fields()
1648 {
1649  static SfiRecFields rfields = { 0, NULL };
1650  if (!rfields.n_fields)
1651  {
1652  static GParamSpec *fields[6 + 1];
1653  rfields.n_fields = 6;
1654  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",274,"category_id","Category ID" , "" , 1LL , 1LL , G_MAXINT , 1LL , ":readwrite");
1655  fields[1] = sfidl_pspec_SfiString_default (NULL,"/opt/src/beast/bse/bsebasics.idl",275,"category");
1656  fields[2] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",276,"mindex");
1657  fields[3] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",277,"lindex");
1658  fields[4] = sfidl_pspec_SfiString_default (NULL,"/opt/src/beast/bse/bsebasics.idl",278,"otype");
1659  fields[5] = sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",279, "icon", Bse::Ic0n::get_fields());
1660  rfields.fields = fields;
1661  }
1662  return rfields;
1663 }
1665 GConfig::from_rec (SfiRec *sfi_rec)
1666 {
1667  GValue *element;
1668 
1669  if (!sfi_rec)
1670  return Sfi::INIT_NULL;
1671 
1672  ::Bse::GConfigHandle rec = Sfi::INIT_DEFAULT;
1673  element = sfi_rec_get (sfi_rec, "synth_latency");
1674  if (element)
1675  rec->synth_latency = sfi_value_get_int (element);
1676  element = sfi_rec_get (sfi_rec, "synth_mixing_freq");
1677  if (element)
1678  rec->synth_mixing_freq = sfi_value_get_int (element);
1679  element = sfi_rec_get (sfi_rec, "synth_control_freq");
1680  if (element)
1681  rec->synth_control_freq = sfi_value_get_int (element);
1682  element = sfi_rec_get (sfi_rec, "invert_sustain");
1683  if (element)
1684  rec->invert_sustain = sfi_value_get_bool (element);
1685  element = sfi_rec_get (sfi_rec, "author_default");
1686  if (element)
1687  rec->author_default = ::Sfi::SfiString::value_get_string (element);
1688  element = sfi_rec_get (sfi_rec, "license_default");
1689  if (element)
1690  rec->license_default = ::Sfi::SfiString::value_get_string (element);
1691  element = sfi_rec_get (sfi_rec, "sample_path");
1692  if (element)
1693  rec->sample_path = ::Sfi::SfiString::value_get_string (element);
1694  element = sfi_rec_get (sfi_rec, "effect_path");
1695  if (element)
1696  rec->effect_path = ::Sfi::SfiString::value_get_string (element);
1697  element = sfi_rec_get (sfi_rec, "instrument_path");
1698  if (element)
1699  rec->instrument_path = ::Sfi::SfiString::value_get_string (element);
1700  element = sfi_rec_get (sfi_rec, "script_path");
1701  if (element)
1702  rec->script_path = ::Sfi::SfiString::value_get_string (element);
1703  element = sfi_rec_get (sfi_rec, "plugin_path");
1704  if (element)
1705  rec->plugin_path = ::Sfi::SfiString::value_get_string (element);
1706  element = sfi_rec_get (sfi_rec, "ladspa_path");
1707  if (element)
1708  rec->ladspa_path = ::Sfi::SfiString::value_get_string (element);
1709  return rec;
1710 }
1711 
1712 SfiRec *
1713 GConfig::to_rec (const ::Bse::GConfigHandle & rec)
1714 {
1715  SfiRec *sfi_rec;
1716  GValue *element;
1717 
1718  if (!rec)
1719  return NULL;
1720 
1721  sfi_rec = sfi_rec_new ();
1722  element = sfi_rec_forced_get (sfi_rec, "synth_latency", SFI_TYPE_INT);
1723  sfi_value_set_int (element, rec->synth_latency);
1724  element = sfi_rec_forced_get (sfi_rec, "synth_mixing_freq", SFI_TYPE_INT);
1725  sfi_value_set_int (element, rec->synth_mixing_freq);
1726  element = sfi_rec_forced_get (sfi_rec, "synth_control_freq", SFI_TYPE_INT);
1727  sfi_value_set_int (element, rec->synth_control_freq);
1728  element = sfi_rec_forced_get (sfi_rec, "invert_sustain", SFI_TYPE_BOOL);
1729  sfi_value_set_bool (element, rec->invert_sustain);
1730  element = sfi_rec_forced_get (sfi_rec, "author_default", SFI_TYPE_SFI_STRING);
1731  ::Sfi::SfiString::value_set_string (element, rec->author_default);
1732  element = sfi_rec_forced_get (sfi_rec, "license_default", SFI_TYPE_SFI_STRING);
1733  ::Sfi::SfiString::value_set_string (element, rec->license_default);
1734  element = sfi_rec_forced_get (sfi_rec, "sample_path", SFI_TYPE_SFI_STRING);
1735  ::Sfi::SfiString::value_set_string (element, rec->sample_path);
1736  element = sfi_rec_forced_get (sfi_rec, "effect_path", SFI_TYPE_SFI_STRING);
1737  ::Sfi::SfiString::value_set_string (element, rec->effect_path);
1738  element = sfi_rec_forced_get (sfi_rec, "instrument_path", SFI_TYPE_SFI_STRING);
1739  ::Sfi::SfiString::value_set_string (element, rec->instrument_path);
1740  element = sfi_rec_forced_get (sfi_rec, "script_path", SFI_TYPE_SFI_STRING);
1741  ::Sfi::SfiString::value_set_string (element, rec->script_path);
1742  element = sfi_rec_forced_get (sfi_rec, "plugin_path", SFI_TYPE_SFI_STRING);
1743  ::Sfi::SfiString::value_set_string (element, rec->plugin_path);
1744  element = sfi_rec_forced_get (sfi_rec, "ladspa_path", SFI_TYPE_SFI_STRING);
1745  ::Sfi::SfiString::value_set_string (element, rec->ladspa_path);
1746  return sfi_rec;
1747 }
1748 
1750 GConfig::value_get_boxed (const GValue *value)
1751 {
1752  return ::Bse::GConfigHandle::value_get_boxed (value);
1753 }
1754 
1755 void
1756 GConfig::value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self)
1757 {
1758  ::Bse::GConfigHandle::value_set_boxed (value, self);
1759 }
1760 
1762 GConfig::get_fields()
1763 {
1764  static SfiRecFields rfields = { 0, NULL };
1765  if (!rfields.n_fields)
1766  {
1767  static GParamSpec *fields[12 + 1];
1768  rfields.n_fields = 12;
1769  fields[0] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",301,"synth_latency",_ ( "Latency [ms]" ) , _ ( "Processing duration between input and output of a single sample, smaller values increase CPU load" ) , 50LL , 1LL , 2000LL , 5LL , ":r:w:S:G:");
1770  fields[1] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",305,"synth_mixing_freq",_ ( "Synth Mixing Frequency" ) , _ ( "Synthesis mixing frequency, common values are: 22050, 44100, 48000" ) , 44100LL , 8000LL , 192000LL , 0LL , ":r:w:S:G:");
1771  fields[2] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",309,"synth_control_freq",_ ( "Synth Control Frequency" ) , _ ( "Frequency at which control values are evaluated, " "should be much smaller than Synth Mixing Frequency to reduce CPU load" ) , 1000LL , 1LL , 192000LL , 0LL , ":r:w:S:G:");
1772  fields[3] = sfidl_pspec_SfiBool (_("MIDI"),"/opt/src/beast/bse/bsebasics.idl",316,"invert_sustain",_ ( "Invert Sustain Pedal" ) , _ ( "Invert the state of sustain (damper) pedal so on/off meanings are reversed" ) , FALSE , ":r:w:S:G:");
1773  fields[4] = sfidl_pspec_SfiString (_("Default Values"),"/opt/src/beast/bse/bsebasics.idl",321,"author_default",_ ( "Default Author" ) , _ ( "Default value for 'Author' fields" ) , "\357\277\271\357\277\272{{bse.idl/default-author}}\357\277\273" , ":r:w:S:G:");
1774  fields[5] = sfidl_pspec_SfiString (_("Default Values"),"/opt/src/beast/bse/bsebasics.idl",323,"license_default",_ ( "Default License" ) , _ ( "Default value for 'License' fields" ) , "\357\277\271\357\277\272{{bse.idl/default-license}}\357\277\273" , ":r:w:S:G:");
1775  fields[6] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",327,"sample_path",_ ( "Sample Path" ) , _ ( "Search path of directories, seperated by \";\", used to find audio samples." ) , "\357\277\271\357\277\272{{bse.idl/user-data-path}}\357\277\273samples" , ":r:w:S:G:" ":searchpath");
1776  fields[7] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",330,"effect_path",_ ( "Effect Path" ) , _ ( "Search path of directories, seperated by \";\", used to find BSE effect files." ) , "\357\277\271\357\277\272{{bse.idl/user-data-path}}\357\277\273effects" , ":r:w:S:G:" ":searchpath");
1777  fields[8] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",333,"instrument_path",_ ( "Instrument Path" ) , _ ( "Search path of directories, seperated by \";\", used to find BSE instrument files." ) , "\357\277\271\357\277\272{{bse.idl/user-data-path}}\357\277\273instruments" , ":r:w:S:G:" ":searchpath");
1778  fields[9] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",336,"script_path",_ ( "Script Path" ) , _ ( "Search path of directories, seperated by \";\", used to find BSE scheme scripts." ) , "\357\277\271\357\277\272{{bse.idl/user-data-path}}\357\277\273scripts" , ":r:w:S:G:" ":searchpath");
1779  fields[10] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",339,"plugin_path",_ ( "Plugin Path" ) , _ ( "Search path of directories, seperated by \";\", used to find BSE plugins. This path " "is searched for in addition to the standard BSE plugin location on this system." ) , "\357\277\271\357\277\272{{bse.idl/user-data-path}}\357\277\273plugins" , ":r:w:S:G:" ":searchpath");
1780  fields[11] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",343,"ladspa_path",_ ( "LADSPA Path" ) , _ ( "Search path of directories, seperated by \";\", used to find LADSPA plugins. This " "path is searched for in addition to the standard LADSPA location on this system. " "LADSPA is the Linux Audio Developer's Simple Plugin API, more informations about " "LADSPA plugins can be found at http://www.ladspa.org/." ) , "" , ":r:w:S:G:" ":searchpath");
1781  rfields.fields = fields;
1782  }
1783  return rfields;
1784 }
1785 
1786 
1787 /* sequence implementations */
1789 TypeSeq::from_seq (SfiSeq *sfi_seq)
1790 {
1791  ::Bse::TypeSeq cseq;
1792  guint i, length;
1793 
1794  if (!sfi_seq)
1795  return cseq;
1796 
1797  length = sfi_seq_length (sfi_seq);
1798  cseq.resize (length);
1799  for (i = 0; i < length; i++)
1800  {
1801  GValue *element = sfi_seq_get (sfi_seq, i);
1802  cseq[i] = ::Sfi::SfiString::value_get_string (element);
1803  }
1804  return cseq;
1805 }
1806 
1807 SfiSeq *
1808 TypeSeq::to_seq (const ::Bse::TypeSeq & cseq)
1809 {
1810  SfiSeq *sfi_seq = sfi_seq_new ();
1811  for (guint i = 0; i < cseq.length(); i++)
1812  {
1813  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_SFI_STRING);
1814  ::Sfi::SfiString::value_set_string (element, cseq[i]);
1815  }
1816  return sfi_seq;
1817 }
1818 
1820 TypeSeq::value_get_boxed (const GValue *value)
1821 {
1822  return ::Sfi::cxx_value_get_boxed_sequence< TypeSeq> (value);
1823 }
1824 
1825 void
1826 TypeSeq::value_set_boxed (GValue *value, const ::Bse::TypeSeq & self)
1827 {
1828  ::Sfi::cxx_value_set_boxed_sequence< TypeSeq> (value, self);
1829 }
1830 
1831 GParamSpec*
1832 TypeSeq::get_element()
1833 {
1834  static GParamSpec *element = NULL;
1835  if (!element) {
1836  element = g_param_spec_ref (sfidl_pspec_SfiString_default (NULL,"/opt/src/beast/bse/bsebasics.idl",24,"types"));
1837  g_param_spec_sink (element);
1838  }
1839  return element;
1840 }
1841 
1843 FloatSeq::from_seq (SfiSeq *sfi_seq)
1844 {
1845  ::Bse::FloatSeq cseq;
1846  guint i, length;
1847 
1848  if (!sfi_seq)
1849  return cseq;
1850 
1851  length = sfi_seq_length (sfi_seq);
1852  cseq.resize (length);
1853  for (i = 0; i < length; i++)
1854  {
1855  GValue *element = sfi_seq_get (sfi_seq, i);
1856  cseq[i] = sfi_value_get_real (element);
1857  }
1858  return cseq;
1859 }
1860 
1861 SfiSeq *
1862 FloatSeq::to_seq (const ::Bse::FloatSeq & cseq)
1863 {
1864  SfiSeq *sfi_seq = sfi_seq_new ();
1865  for (guint i = 0; i < cseq.length(); i++)
1866  {
1867  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REAL);
1868  sfi_value_set_real (element, cseq[i]);
1869  }
1870  return sfi_seq;
1871 }
1872 
1874 FloatSeq::value_get_boxed (const GValue *value)
1875 {
1876  return ::Sfi::cxx_value_get_boxed_sequence< FloatSeq> (value);
1877 }
1878 
1879 void
1880 FloatSeq::value_set_boxed (GValue *value, const ::Bse::FloatSeq & self)
1881 {
1882  ::Sfi::cxx_value_set_boxed_sequence< FloatSeq> (value, self);
1883 }
1884 
1885 GParamSpec*
1886 FloatSeq::get_element()
1887 {
1888  static GParamSpec *element = NULL;
1889  if (!element) {
1890  element = g_param_spec_ref (sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",27,"values"));
1891  g_param_spec_sink (element);
1892  }
1893  return element;
1894 }
1895 
1897 NoteSeq::from_seq (SfiSeq *sfi_seq)
1898 {
1899  ::Bse::NoteSeq cseq;
1900  guint i, length;
1901 
1902  if (!sfi_seq)
1903  return cseq;
1904 
1905  length = sfi_seq_length (sfi_seq);
1906  cseq.resize (length);
1907  for (i = 0; i < length; i++)
1908  {
1909  GValue *element = sfi_seq_get (sfi_seq, i);
1910  cseq[i] = sfi_value_get_int (element);
1911  }
1912  return cseq;
1913 }
1914 
1915 SfiSeq *
1916 NoteSeq::to_seq (const ::Bse::NoteSeq & cseq)
1917 {
1918  SfiSeq *sfi_seq = sfi_seq_new ();
1919  for (guint i = 0; i < cseq.length(); i++)
1920  {
1921  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
1922  sfi_value_set_int (element, cseq[i]);
1923  }
1924  return sfi_seq;
1925 }
1926 
1928 NoteSeq::value_get_boxed (const GValue *value)
1929 {
1930  return ::Sfi::cxx_value_get_boxed_sequence< NoteSeq> (value);
1931 }
1932 
1933 void
1934 NoteSeq::value_set_boxed (GValue *value, const ::Bse::NoteSeq & self)
1935 {
1936  ::Sfi::cxx_value_set_boxed_sequence< NoteSeq> (value, self);
1937 }
1938 
1939 GParamSpec*
1940 NoteSeq::get_element()
1941 {
1942  static GParamSpec *element = NULL;
1943  if (!element) {
1944  element = g_param_spec_ref (sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",243,"notes","Note" , "" , KAMMER_NOTE , ":readwrite"));
1945  g_param_spec_sink (element);
1946  }
1947  return element;
1948 }
1949 
1951 It3mSeq::from_seq (SfiSeq *sfi_seq)
1952 {
1953  ::Bse::It3mSeq cseq;
1954  guint i, length;
1955 
1956  if (!sfi_seq)
1957  return cseq;
1958 
1959  length = sfi_seq_length (sfi_seq);
1960  cseq.resize (length);
1961  for (i = 0; i < length; i++)
1962  {
1963  GValue *element = sfi_seq_get (sfi_seq, i);
1964  cseq[i] = ::Bse::CxxBase::value_get_gobject< BseItem> (element);
1965  }
1966  return cseq;
1967 }
1968 
1969 SfiSeq *
1970 It3mSeq::to_seq (const ::Bse::It3mSeq & cseq)
1971 {
1972  SfiSeq *sfi_seq = sfi_seq_new ();
1973  for (guint i = 0; i < cseq.length(); i++)
1974  {
1975  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_PROXY);
1976  ::Bse::CxxBase::value_set_gobject (element, cseq[i]);
1977  }
1978  return sfi_seq;
1979 }
1980 
1982 It3mSeq::value_get_boxed (const GValue *value)
1983 {
1984  return ::Sfi::cxx_value_get_boxed_sequence< It3mSeq> (value);
1985 }
1986 
1987 void
1988 It3mSeq::value_set_boxed (GValue *value, const ::Bse::It3mSeq & self)
1989 {
1990  ::Sfi::cxx_value_set_boxed_sequence< It3mSeq> (value, self);
1991 }
1992 
1993 GParamSpec*
1994 It3mSeq::get_element()
1995 {
1996  static GParamSpec *element = NULL;
1997  if (!element) {
1998  element = g_param_spec_ref (sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",248,"items"));
1999  g_param_spec_sink (element);
2000  }
2001  return element;
2002 }
2003 
2005 P1xelSeq::from_seq (SfiSeq *sfi_seq)
2006 {
2007  ::Bse::P1xelSeq cseq;
2008  guint i, length;
2009 
2010  if (!sfi_seq)
2011  return cseq;
2012 
2013  length = sfi_seq_length (sfi_seq);
2014  cseq.resize (length);
2015  for (i = 0; i < length; i++)
2016  {
2017  GValue *element = sfi_seq_get (sfi_seq, i);
2018  cseq[i] = sfi_value_get_int (element);
2019  }
2020  return cseq;
2021 }
2022 
2023 SfiSeq *
2024 P1xelSeq::to_seq (const ::Bse::P1xelSeq & cseq)
2025 {
2026  SfiSeq *sfi_seq = sfi_seq_new ();
2027  for (guint i = 0; i < cseq.length(); i++)
2028  {
2029  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
2030  sfi_value_set_int (element, cseq[i]);
2031  }
2032  return sfi_seq;
2033 }
2034 
2036 P1xelSeq::value_get_boxed (const GValue *value)
2037 {
2038  return ::Sfi::cxx_value_get_boxed_sequence< P1xelSeq> (value);
2039 }
2040 
2041 void
2042 P1xelSeq::value_set_boxed (GValue *value, const ::Bse::P1xelSeq & self)
2043 {
2044  ::Sfi::cxx_value_set_boxed_sequence< P1xelSeq> (value, self);
2045 }
2046 
2047 GParamSpec*
2048 P1xelSeq::get_element()
2049 {
2050  static GParamSpec *element = NULL;
2051  if (!element) {
2052  element = g_param_spec_ref (sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",263,"pixels"));
2053  g_param_spec_sink (element);
2054  }
2055  return element;
2056 }
2057 
2059 CategorySeq::from_seq (SfiSeq *sfi_seq)
2060 {
2061  ::Bse::CategorySeq cseq;
2062  guint i, length;
2063 
2064  if (!sfi_seq)
2065  return cseq;
2066 
2067  length = sfi_seq_length (sfi_seq);
2068  cseq.resize (length);
2069  for (i = 0; i < length; i++)
2070  {
2071  GValue *element = sfi_seq_get (sfi_seq, i);
2072  cseq[i] = ::Bse::Category::value_get_boxed (element);
2073  }
2074  return cseq;
2075 }
2076 
2077 SfiSeq *
2078 CategorySeq::to_seq (const ::Bse::CategorySeq & cseq)
2079 {
2080  SfiSeq *sfi_seq = sfi_seq_new ();
2081  for (guint i = 0; i < cseq.length(); i++)
2082  {
2083  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
2084  ::Bse::Category::value_set_boxed (element, cseq[i]);
2085  }
2086  return sfi_seq;
2087 }
2088 
2090 CategorySeq::value_get_boxed (const GValue *value)
2091 {
2092  return ::Sfi::cxx_value_get_boxed_sequence< CategorySeq> (value);
2093 }
2094 
2095 void
2096 CategorySeq::value_set_boxed (GValue *value, const ::Bse::CategorySeq & self)
2097 {
2098  ::Sfi::cxx_value_set_boxed_sequence< CategorySeq> (value, self);
2099 }
2100 
2101 GParamSpec*
2102 CategorySeq::get_element()
2103 {
2104  static GParamSpec *element = NULL;
2105  if (!element) {
2106  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",282, "cats", Bse::Category::get_fields()));
2107  g_param_spec_sink (element);
2108  }
2109  return element;
2110 }
2111 
2112 
2113 
2114 /* class implementations */
2115 
2116 
2117 /* procedure implementations */
2118 
2119 
2120 /* bsebasics.idl type registrations */
2121 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_BSEBASICS_IDL() \
2122  BSE_CXX_REGISTER_ENUM (MidiControlType); \
2123  BSE_CXX_REGISTER_ENUM (MidiChannelEventType); \
2124  BSE_CXX_REGISTER_RECORD (MidiChannelEvent); \
2125  BSE_CXX_REGISTER_RECORD (PropertyCandidates); \
2126  BSE_CXX_REGISTER_RECORD (NoteSequence); \
2127  BSE_CXX_REGISTER_RECORD (Ic0n); \
2128  BSE_CXX_REGISTER_RECORD (Category); \
2129  BSE_CXX_REGISTER_RECORD (GConfig); \
2130  BSE_CXX_REGISTER_SEQUENCE (TypeSeq); \
2131  BSE_CXX_REGISTER_SEQUENCE (FloatSeq); \
2132  BSE_CXX_REGISTER_SEQUENCE (NoteSeq); \
2133  BSE_CXX_REGISTER_SEQUENCE (It3mSeq); \
2134  BSE_CXX_REGISTER_SEQUENCE (P1xelSeq); \
2135  BSE_CXX_REGISTER_SEQUENCE (CategorySeq); \
2136  /* bsebasics.idl type registrations done */
2137 } // Bse
2138 
2139 /*-------- end ../sfi/sfidl generated code --------*/
2140 
2141 
Definition: bsebasics.genidl.hh:343
Definition: bsebasics.genidl.hh:325
Definition: bsebasics.genidl.hh:310
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
Definition: bsebasics.genidl.hh:403
Definition: bsebasics.genidl.hh:387
Const KAMMER_FREQ
Kammer note, representing the kammer frequency's MIDI note value for A' or A4.
Definition: bseapi.idl:359
Definition: bsebasics.genidl.hh:295
Definition: sficxx.hh:326
Definition: sfiparams.hh:63
Definition: bsebasics.genidl.hh:250
Definition: sfitypes.hh:31
Definition: bsebasics.genidl.hh:280
Definition: sfiparams.hh:71
Definition: bsebasics.genidl.hh:420
Definition: sficxx.hh:169
Definition: bsebasics.genidl.hh:440
Const KAMMER_NOTE
Value represents unparsable/unknown notes.
Definition: bseapi.idl:358
Definition: sficxx.hh:143
Definition: sficxx.hh:16
Definition: bsebasics.genidl.hh:369
Definition: bsebasics.genidl.hh:265