BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsebasics.genidl.hh
Go to the documentation of this file.
1 
2 /*-------- begin ../sfi/sfidl generated code --------*/
3 
4 
5 
6 #include <bse/bse-internals.hh>
7 
8 
9 /* enum prototypes */
10 namespace Bse {
11 #define BSE_TYPE_MUSICAL_TUNING_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MusicalTuningType)
12 #define BSE_TYPE_MIDI_SIGNAL_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiSignalType)
13 #define BSE_TYPE_MIDI_CONTROL_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiControlType)
14 #define BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiChannelEventType)
15 
16 
17 /* choice prototypes */
18 static SfiChoiceValues MusicalTuningType_choice_values();
19 static SfiChoiceValues MidiSignalType_choice_values();
20 static SfiChoiceValues MidiControlType_choice_values();
21 static SfiChoiceValues MidiChannelEventType_choice_values();
22 
23 
24 /* record prototypes */
25 class MidiChannelEvent;
26 typedef Sfi::RecordHandle<MidiChannelEvent> MidiChannelEventHandle;
27 #define BSE_TYPE_MIDI_CHANNEL_EVENT BSE_CXX_DECLARED_RECORD_TYPE (Bse, MidiChannelEvent)
28 class PropertyCandidates;
29 typedef Sfi::RecordHandle<PropertyCandidates> PropertyCandidatesHandle;
30 #define BSE_TYPE_PROPERTY_CANDIDATES BSE_CXX_DECLARED_RECORD_TYPE (Bse, PropertyCandidates)
31 class PartNote;
32 typedef Sfi::RecordHandle<PartNote> PartNoteHandle;
33 #define BSE_TYPE_PART_NOTE BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartNote)
34 class PartControl;
35 typedef Sfi::RecordHandle<PartControl> PartControlHandle;
36 #define BSE_TYPE_PART_CONTROL BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartControl)
37 class NoteDescription;
38 typedef Sfi::RecordHandle<NoteDescription> NoteDescriptionHandle;
39 #define BSE_TYPE_NOTE_DESCRIPTION BSE_CXX_DECLARED_RECORD_TYPE (Bse, NoteDescription)
40 class NoteSequence;
41 typedef Sfi::RecordHandle<NoteSequence> NoteSequenceHandle;
42 #define BSE_TYPE_NOTE_SEQUENCE BSE_CXX_DECLARED_RECORD_TYPE (Bse, NoteSequence)
43 class Icon;
44 typedef Sfi::RecordHandle<Icon> IconHandle;
45 #define BSE_TYPE_ICON BSE_CXX_DECLARED_RECORD_TYPE (Bse, Icon)
46 class Category;
47 typedef Sfi::RecordHandle<Category> CategoryHandle;
48 #define BSE_TYPE_CATEGORY BSE_CXX_DECLARED_RECORD_TYPE (Bse, Category)
49 class Dot;
50 typedef Sfi::RecordHandle<Dot> DotHandle;
51 #define BSE_TYPE_DOT BSE_CXX_DECLARED_RECORD_TYPE (Bse, Dot)
52 class PartLink;
53 typedef Sfi::RecordHandle<PartLink> PartLinkHandle;
54 #define BSE_TYPE_PART_LINK BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartLink)
55 class TrackPart;
56 typedef Sfi::RecordHandle<TrackPart> TrackPartHandle;
57 #define BSE_TYPE_TRACK_PART BSE_CXX_DECLARED_RECORD_TYPE (Bse, TrackPart)
58 class SongTiming;
59 typedef Sfi::RecordHandle<SongTiming> SongTimingHandle;
60 #define BSE_TYPE_SONG_TIMING BSE_CXX_DECLARED_RECORD_TYPE (Bse, SongTiming)
61 class SampleFileInfo;
62 typedef Sfi::RecordHandle<SampleFileInfo> SampleFileInfoHandle;
63 #define BSE_TYPE_SAMPLE_FILE_INFO BSE_CXX_DECLARED_RECORD_TYPE (Bse, SampleFileInfo)
64 class GConfig;
65 typedef Sfi::RecordHandle<GConfig> GConfigHandle;
66 #define BSE_TYPE_GCONFIG BSE_CXX_DECLARED_RECORD_TYPE (Bse, GConfig)
67 
68 
69 /* sequence prototypes */
70 class IntSeq;
71 #define BSE_TYPE_INT_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, IntSeq)
72 class TypeSeq;
73 #define BSE_TYPE_TYPE_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, TypeSeq)
74 class StringSeq;
75 #define BSE_TYPE_STRING_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, StringSeq)
76 class FloatSeq;
77 #define BSE_TYPE_FLOAT_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, FloatSeq)
78 class NoteSeq;
79 #define BSE_TYPE_NOTE_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, NoteSeq)
80 class ItemSeq;
81 #define BSE_TYPE_ITEM_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, ItemSeq)
82 class PartNoteSeq;
83 #define BSE_TYPE_PART_NOTE_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartNoteSeq)
84 class PartControlSeq;
85 #define BSE_TYPE_PART_CONTROL_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartControlSeq)
86 class PixelSeq;
87 #define BSE_TYPE_PIXEL_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PixelSeq)
88 class CategorySeq;
89 #define BSE_TYPE_CATEGORY_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, CategorySeq)
90 class DotSeq;
91 #define BSE_TYPE_DOT_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, DotSeq)
92 class PartLinkSeq;
93 #define BSE_TYPE_PART_LINK_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartLinkSeq)
94 class TrackPartSeq;
95 #define BSE_TYPE_TRACK_PART_SEQ BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, TrackPartSeq)
96 
97 
98 /* class prototypes */
99 
100 
101 /* enum definitions */
102 enum MusicalTuningType {
103  MUSICAL_TUNING_12_TET = 1,
104  MUSICAL_TUNING_7_TET = 2,
105  MUSICAL_TUNING_5_TET = 3,
106  MUSICAL_TUNING_DIATONIC_SCALE = 4,
107  MUSICAL_TUNING_INDIAN_SCALE = 5,
108  MUSICAL_TUNING_PYTHAGOREAN_TUNING = 6,
109  MUSICAL_TUNING_PENTATONIC_5_LIMIT = 7,
110  MUSICAL_TUNING_PENTATONIC_BLUES = 8,
111  MUSICAL_TUNING_PENTATONIC_GOGO = 9,
112  MUSICAL_TUNING_QUARTER_COMMA_MEANTONE = 10,
113  MUSICAL_TUNING_SILBERMANN_SORGE = 11,
114  MUSICAL_TUNING_WERCKMEISTER_3 = 12,
115  MUSICAL_TUNING_WERCKMEISTER_4 = 13,
116  MUSICAL_TUNING_WERCKMEISTER_5 = 14,
117  MUSICAL_TUNING_WERCKMEISTER_6 = 15,
118  MUSICAL_TUNING_KIRNBERGER_3 = 16,
119  MUSICAL_TUNING_YOUNG = 17,
120 };
121 enum MidiSignalType {
122  MIDI_SIGNAL_PROGRAM = 1,
123  MIDI_SIGNAL_PRESSURE = 2,
124  MIDI_SIGNAL_PITCH_BEND = 3,
125  MIDI_SIGNAL_VELOCITY = 4,
126  MIDI_SIGNAL_FINE_TUNE = 5,
127  MIDI_SIGNAL_CONTINUOUS_0 = 64,
128  MIDI_SIGNAL_CONTINUOUS_1 = 65,
129  MIDI_SIGNAL_CONTINUOUS_2 = 66,
130  MIDI_SIGNAL_CONTINUOUS_3 = 67,
131  MIDI_SIGNAL_CONTINUOUS_4 = 68,
132  MIDI_SIGNAL_CONTINUOUS_5 = 69,
133  MIDI_SIGNAL_CONTINUOUS_6 = 70,
134  MIDI_SIGNAL_CONTINUOUS_7 = 71,
135  MIDI_SIGNAL_CONTINUOUS_8 = 72,
136  MIDI_SIGNAL_CONTINUOUS_9 = 73,
137  MIDI_SIGNAL_CONTINUOUS_10 = 74,
138  MIDI_SIGNAL_CONTINUOUS_11 = 75,
139  MIDI_SIGNAL_CONTINUOUS_12 = 76,
140  MIDI_SIGNAL_CONTINUOUS_13 = 77,
141  MIDI_SIGNAL_CONTINUOUS_14 = 78,
142  MIDI_SIGNAL_CONTINUOUS_15 = 79,
143  MIDI_SIGNAL_CONTINUOUS_16 = 80,
144  MIDI_SIGNAL_CONTINUOUS_17 = 81,
145  MIDI_SIGNAL_CONTINUOUS_18 = 82,
146  MIDI_SIGNAL_CONTINUOUS_19 = 83,
147  MIDI_SIGNAL_CONTINUOUS_20 = 84,
148  MIDI_SIGNAL_CONTINUOUS_21 = 85,
149  MIDI_SIGNAL_CONTINUOUS_22 = 86,
150  MIDI_SIGNAL_CONTINUOUS_23 = 87,
151  MIDI_SIGNAL_CONTINUOUS_24 = 88,
152  MIDI_SIGNAL_CONTINUOUS_25 = 89,
153  MIDI_SIGNAL_CONTINUOUS_26 = 90,
154  MIDI_SIGNAL_CONTINUOUS_27 = 91,
155  MIDI_SIGNAL_CONTINUOUS_28 = 92,
156  MIDI_SIGNAL_CONTINUOUS_29 = 93,
157  MIDI_SIGNAL_CONTINUOUS_30 = 94,
158  MIDI_SIGNAL_CONTINUOUS_31 = 95,
159  MIDI_SIGNAL_CONSTANT_HIGH = 96,
160  MIDI_SIGNAL_CONSTANT_CENTER = 97,
161  MIDI_SIGNAL_CONSTANT_LOW = 98,
162  MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER = 99,
163  MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH = 100,
164  MIDI_SIGNAL_PARAMETER = 101,
165  MIDI_SIGNAL_NON_PARAMETER = 102,
166  MIDI_SIGNAL_CONTROL_0 = 128,
167  MIDI_SIGNAL_CONTROL_1 = 129,
168  MIDI_SIGNAL_CONTROL_2 = 130,
169  MIDI_SIGNAL_CONTROL_3 = 131,
170  MIDI_SIGNAL_CONTROL_4 = 132,
171  MIDI_SIGNAL_CONTROL_5 = 133,
172  MIDI_SIGNAL_CONTROL_6 = 134,
173  MIDI_SIGNAL_CONTROL_7 = 135,
174  MIDI_SIGNAL_CONTROL_8 = 136,
175  MIDI_SIGNAL_CONTROL_9 = 137,
176  MIDI_SIGNAL_CONTROL_10 = 138,
177  MIDI_SIGNAL_CONTROL_11 = 139,
178  MIDI_SIGNAL_CONTROL_12 = 140,
179  MIDI_SIGNAL_CONTROL_13 = 141,
180  MIDI_SIGNAL_CONTROL_14 = 142,
181  MIDI_SIGNAL_CONTROL_15 = 143,
182  MIDI_SIGNAL_CONTROL_16 = 144,
183  MIDI_SIGNAL_CONTROL_17 = 145,
184  MIDI_SIGNAL_CONTROL_18 = 146,
185  MIDI_SIGNAL_CONTROL_19 = 147,
186  MIDI_SIGNAL_CONTROL_20 = 148,
187  MIDI_SIGNAL_CONTROL_21 = 149,
188  MIDI_SIGNAL_CONTROL_22 = 150,
189  MIDI_SIGNAL_CONTROL_23 = 151,
190  MIDI_SIGNAL_CONTROL_24 = 152,
191  MIDI_SIGNAL_CONTROL_25 = 153,
192  MIDI_SIGNAL_CONTROL_26 = 154,
193  MIDI_SIGNAL_CONTROL_27 = 155,
194  MIDI_SIGNAL_CONTROL_28 = 156,
195  MIDI_SIGNAL_CONTROL_29 = 157,
196  MIDI_SIGNAL_CONTROL_30 = 158,
197  MIDI_SIGNAL_CONTROL_31 = 159,
198  MIDI_SIGNAL_CONTROL_32 = 160,
199  MIDI_SIGNAL_CONTROL_33 = 161,
200  MIDI_SIGNAL_CONTROL_34 = 162,
201  MIDI_SIGNAL_CONTROL_35 = 163,
202  MIDI_SIGNAL_CONTROL_36 = 164,
203  MIDI_SIGNAL_CONTROL_37 = 165,
204  MIDI_SIGNAL_CONTROL_38 = 166,
205  MIDI_SIGNAL_CONTROL_39 = 167,
206  MIDI_SIGNAL_CONTROL_40 = 168,
207  MIDI_SIGNAL_CONTROL_41 = 169,
208  MIDI_SIGNAL_CONTROL_42 = 170,
209  MIDI_SIGNAL_CONTROL_43 = 171,
210  MIDI_SIGNAL_CONTROL_44 = 172,
211  MIDI_SIGNAL_CONTROL_45 = 173,
212  MIDI_SIGNAL_CONTROL_46 = 174,
213  MIDI_SIGNAL_CONTROL_47 = 175,
214  MIDI_SIGNAL_CONTROL_48 = 176,
215  MIDI_SIGNAL_CONTROL_49 = 177,
216  MIDI_SIGNAL_CONTROL_50 = 178,
217  MIDI_SIGNAL_CONTROL_51 = 179,
218  MIDI_SIGNAL_CONTROL_52 = 180,
219  MIDI_SIGNAL_CONTROL_53 = 181,
220  MIDI_SIGNAL_CONTROL_54 = 182,
221  MIDI_SIGNAL_CONTROL_55 = 183,
222  MIDI_SIGNAL_CONTROL_56 = 184,
223  MIDI_SIGNAL_CONTROL_57 = 185,
224  MIDI_SIGNAL_CONTROL_58 = 186,
225  MIDI_SIGNAL_CONTROL_59 = 187,
226  MIDI_SIGNAL_CONTROL_60 = 188,
227  MIDI_SIGNAL_CONTROL_61 = 189,
228  MIDI_SIGNAL_CONTROL_62 = 190,
229  MIDI_SIGNAL_CONTROL_63 = 191,
230  MIDI_SIGNAL_CONTROL_64 = 192,
231  MIDI_SIGNAL_CONTROL_65 = 193,
232  MIDI_SIGNAL_CONTROL_66 = 194,
233  MIDI_SIGNAL_CONTROL_67 = 195,
234  MIDI_SIGNAL_CONTROL_68 = 196,
235  MIDI_SIGNAL_CONTROL_69 = 197,
236  MIDI_SIGNAL_CONTROL_70 = 198,
237  MIDI_SIGNAL_CONTROL_71 = 199,
238  MIDI_SIGNAL_CONTROL_72 = 200,
239  MIDI_SIGNAL_CONTROL_73 = 201,
240  MIDI_SIGNAL_CONTROL_74 = 202,
241  MIDI_SIGNAL_CONTROL_75 = 203,
242  MIDI_SIGNAL_CONTROL_76 = 204,
243  MIDI_SIGNAL_CONTROL_77 = 205,
244  MIDI_SIGNAL_CONTROL_78 = 206,
245  MIDI_SIGNAL_CONTROL_79 = 207,
246  MIDI_SIGNAL_CONTROL_80 = 208,
247  MIDI_SIGNAL_CONTROL_81 = 209,
248  MIDI_SIGNAL_CONTROL_82 = 210,
249  MIDI_SIGNAL_CONTROL_83 = 211,
250  MIDI_SIGNAL_CONTROL_84 = 212,
251  MIDI_SIGNAL_CONTROL_85 = 213,
252  MIDI_SIGNAL_CONTROL_86 = 214,
253  MIDI_SIGNAL_CONTROL_87 = 215,
254  MIDI_SIGNAL_CONTROL_88 = 216,
255  MIDI_SIGNAL_CONTROL_89 = 217,
256  MIDI_SIGNAL_CONTROL_90 = 218,
257  MIDI_SIGNAL_CONTROL_91 = 219,
258  MIDI_SIGNAL_CONTROL_92 = 220,
259  MIDI_SIGNAL_CONTROL_93 = 221,
260  MIDI_SIGNAL_CONTROL_94 = 222,
261  MIDI_SIGNAL_CONTROL_95 = 223,
262  MIDI_SIGNAL_CONTROL_96 = 224,
263  MIDI_SIGNAL_CONTROL_97 = 225,
264  MIDI_SIGNAL_CONTROL_98 = 226,
265  MIDI_SIGNAL_CONTROL_99 = 227,
266  MIDI_SIGNAL_CONTROL_100 = 228,
267  MIDI_SIGNAL_CONTROL_101 = 229,
268  MIDI_SIGNAL_CONTROL_102 = 230,
269  MIDI_SIGNAL_CONTROL_103 = 231,
270  MIDI_SIGNAL_CONTROL_104 = 232,
271  MIDI_SIGNAL_CONTROL_105 = 233,
272  MIDI_SIGNAL_CONTROL_106 = 234,
273  MIDI_SIGNAL_CONTROL_107 = 235,
274  MIDI_SIGNAL_CONTROL_108 = 236,
275  MIDI_SIGNAL_CONTROL_109 = 237,
276  MIDI_SIGNAL_CONTROL_110 = 238,
277  MIDI_SIGNAL_CONTROL_111 = 239,
278  MIDI_SIGNAL_CONTROL_112 = 240,
279  MIDI_SIGNAL_CONTROL_113 = 241,
280  MIDI_SIGNAL_CONTROL_114 = 242,
281  MIDI_SIGNAL_CONTROL_115 = 243,
282  MIDI_SIGNAL_CONTROL_116 = 244,
283  MIDI_SIGNAL_CONTROL_117 = 245,
284  MIDI_SIGNAL_CONTROL_118 = 246,
285  MIDI_SIGNAL_CONTROL_119 = 247,
286  MIDI_SIGNAL_CONTROL_120 = 248,
287  MIDI_SIGNAL_CONTROL_121 = 249,
288  MIDI_SIGNAL_CONTROL_122 = 250,
289  MIDI_SIGNAL_CONTROL_123 = 251,
290  MIDI_SIGNAL_CONTROL_124 = 252,
291  MIDI_SIGNAL_CONTROL_125 = 253,
292  MIDI_SIGNAL_CONTROL_126 = 254,
293  MIDI_SIGNAL_CONTROL_127 = 255,
294 };
295 enum MidiControlType {
296  MIDI_CONTROL_NONE = 0,
297  MIDI_CONTROL_CONTINUOUS_0 = 64,
298  MIDI_CONTROL_CONTINUOUS_1 = 65,
299  MIDI_CONTROL_CONTINUOUS_2 = 66,
300  MIDI_CONTROL_CONTINUOUS_3 = 67,
301  MIDI_CONTROL_CONTINUOUS_4 = 68,
302  MIDI_CONTROL_CONTINUOUS_5 = 69,
303  MIDI_CONTROL_CONTINUOUS_6 = 70,
304  MIDI_CONTROL_CONTINUOUS_7 = 71,
305  MIDI_CONTROL_CONTINUOUS_8 = 72,
306  MIDI_CONTROL_CONTINUOUS_9 = 73,
307  MIDI_CONTROL_CONTINUOUS_10 = 74,
308  MIDI_CONTROL_CONTINUOUS_11 = 75,
309  MIDI_CONTROL_CONTINUOUS_12 = 76,
310  MIDI_CONTROL_CONTINUOUS_13 = 77,
311  MIDI_CONTROL_CONTINUOUS_14 = 78,
312  MIDI_CONTROL_CONTINUOUS_15 = 79,
313  MIDI_CONTROL_CONTINUOUS_16 = 80,
314  MIDI_CONTROL_CONTINUOUS_17 = 81,
315  MIDI_CONTROL_CONTINUOUS_18 = 82,
316  MIDI_CONTROL_CONTINUOUS_19 = 83,
317  MIDI_CONTROL_CONTINUOUS_20 = 84,
318  MIDI_CONTROL_CONTINUOUS_21 = 85,
319  MIDI_CONTROL_CONTINUOUS_22 = 86,
320  MIDI_CONTROL_CONTINUOUS_23 = 87,
321  MIDI_CONTROL_CONTINUOUS_24 = 88,
322  MIDI_CONTROL_CONTINUOUS_25 = 89,
323  MIDI_CONTROL_CONTINUOUS_26 = 90,
324  MIDI_CONTROL_CONTINUOUS_27 = 91,
325  MIDI_CONTROL_CONTINUOUS_28 = 92,
326  MIDI_CONTROL_CONTINUOUS_29 = 93,
327  MIDI_CONTROL_CONTINUOUS_30 = 94,
328  MIDI_CONTROL_CONTINUOUS_31 = 95,
329  MIDI_CONTROL_0 = 128,
330  MIDI_CONTROL_1 = 129,
331  MIDI_CONTROL_2 = 130,
332  MIDI_CONTROL_3 = 131,
333  MIDI_CONTROL_4 = 132,
334  MIDI_CONTROL_5 = 133,
335  MIDI_CONTROL_6 = 134,
336  MIDI_CONTROL_7 = 135,
337  MIDI_CONTROL_8 = 136,
338  MIDI_CONTROL_9 = 137,
339  MIDI_CONTROL_10 = 138,
340  MIDI_CONTROL_11 = 139,
341  MIDI_CONTROL_12 = 140,
342  MIDI_CONTROL_13 = 141,
343  MIDI_CONTROL_14 = 142,
344  MIDI_CONTROL_15 = 143,
345  MIDI_CONTROL_16 = 144,
346  MIDI_CONTROL_17 = 145,
347  MIDI_CONTROL_18 = 146,
348  MIDI_CONTROL_19 = 147,
349  MIDI_CONTROL_20 = 148,
350  MIDI_CONTROL_21 = 149,
351  MIDI_CONTROL_22 = 150,
352  MIDI_CONTROL_23 = 151,
353  MIDI_CONTROL_24 = 152,
354  MIDI_CONTROL_25 = 153,
355  MIDI_CONTROL_26 = 154,
356  MIDI_CONTROL_27 = 155,
357  MIDI_CONTROL_28 = 156,
358  MIDI_CONTROL_29 = 157,
359  MIDI_CONTROL_30 = 158,
360  MIDI_CONTROL_31 = 159,
361  MIDI_CONTROL_32 = 160,
362  MIDI_CONTROL_33 = 161,
363  MIDI_CONTROL_34 = 162,
364  MIDI_CONTROL_35 = 163,
365  MIDI_CONTROL_36 = 164,
366  MIDI_CONTROL_37 = 165,
367  MIDI_CONTROL_38 = 166,
368  MIDI_CONTROL_39 = 167,
369  MIDI_CONTROL_40 = 168,
370  MIDI_CONTROL_41 = 169,
371  MIDI_CONTROL_42 = 170,
372  MIDI_CONTROL_43 = 171,
373  MIDI_CONTROL_44 = 172,
374  MIDI_CONTROL_45 = 173,
375  MIDI_CONTROL_46 = 174,
376  MIDI_CONTROL_47 = 175,
377  MIDI_CONTROL_48 = 176,
378  MIDI_CONTROL_49 = 177,
379  MIDI_CONTROL_50 = 178,
380  MIDI_CONTROL_51 = 179,
381  MIDI_CONTROL_52 = 180,
382  MIDI_CONTROL_53 = 181,
383  MIDI_CONTROL_54 = 182,
384  MIDI_CONTROL_55 = 183,
385  MIDI_CONTROL_56 = 184,
386  MIDI_CONTROL_57 = 185,
387  MIDI_CONTROL_58 = 186,
388  MIDI_CONTROL_59 = 187,
389  MIDI_CONTROL_60 = 188,
390  MIDI_CONTROL_61 = 189,
391  MIDI_CONTROL_62 = 190,
392  MIDI_CONTROL_63 = 191,
393  MIDI_CONTROL_64 = 192,
394  MIDI_CONTROL_65 = 193,
395  MIDI_CONTROL_66 = 194,
396  MIDI_CONTROL_67 = 195,
397  MIDI_CONTROL_68 = 196,
398  MIDI_CONTROL_69 = 197,
399  MIDI_CONTROL_70 = 198,
400  MIDI_CONTROL_71 = 199,
401  MIDI_CONTROL_72 = 200,
402  MIDI_CONTROL_73 = 201,
403  MIDI_CONTROL_74 = 202,
404  MIDI_CONTROL_75 = 203,
405  MIDI_CONTROL_76 = 204,
406  MIDI_CONTROL_77 = 205,
407  MIDI_CONTROL_78 = 206,
408  MIDI_CONTROL_79 = 207,
409  MIDI_CONTROL_80 = 208,
410  MIDI_CONTROL_81 = 209,
411  MIDI_CONTROL_82 = 210,
412  MIDI_CONTROL_83 = 211,
413  MIDI_CONTROL_84 = 212,
414  MIDI_CONTROL_85 = 213,
415  MIDI_CONTROL_86 = 214,
416  MIDI_CONTROL_87 = 215,
417  MIDI_CONTROL_88 = 216,
418  MIDI_CONTROL_89 = 217,
419  MIDI_CONTROL_90 = 218,
420  MIDI_CONTROL_91 = 219,
421  MIDI_CONTROL_92 = 220,
422  MIDI_CONTROL_93 = 221,
423  MIDI_CONTROL_94 = 222,
424  MIDI_CONTROL_95 = 223,
425  MIDI_CONTROL_96 = 224,
426  MIDI_CONTROL_97 = 225,
427  MIDI_CONTROL_98 = 226,
428  MIDI_CONTROL_99 = 227,
429  MIDI_CONTROL_100 = 228,
430  MIDI_CONTROL_101 = 229,
431  MIDI_CONTROL_102 = 230,
432  MIDI_CONTROL_103 = 231,
433  MIDI_CONTROL_104 = 232,
434  MIDI_CONTROL_105 = 233,
435  MIDI_CONTROL_106 = 234,
436  MIDI_CONTROL_107 = 235,
437  MIDI_CONTROL_108 = 236,
438  MIDI_CONTROL_109 = 237,
439  MIDI_CONTROL_110 = 238,
440  MIDI_CONTROL_111 = 239,
441  MIDI_CONTROL_112 = 240,
442  MIDI_CONTROL_113 = 241,
443  MIDI_CONTROL_114 = 242,
444  MIDI_CONTROL_115 = 243,
445  MIDI_CONTROL_116 = 244,
446  MIDI_CONTROL_117 = 245,
447  MIDI_CONTROL_118 = 246,
448  MIDI_CONTROL_119 = 247,
449  MIDI_CONTROL_120 = 248,
450  MIDI_CONTROL_121 = 249,
451  MIDI_CONTROL_122 = 250,
452  MIDI_CONTROL_123 = 251,
453  MIDI_CONTROL_124 = 252,
454  MIDI_CONTROL_125 = 253,
455  MIDI_CONTROL_126 = 254,
456  MIDI_CONTROL_127 = 255,
457 };
458 enum MidiChannelEventType {
459  MIDI_EVENT_NONE = 0,
460  MIDI_EVENT_NOTE_OFF = 1,
461  MIDI_EVENT_NOTE_ON = 2,
462  MIDI_EVENT_KEY_PRESSURE = 3,
463  MIDI_EVENT_CONTROL_CHANGE = 4,
464  MIDI_EVENT_PROGRAM_CHANGE = 5,
465  MIDI_EVENT_CHANNEL_PRESSURE = 6,
466  MIDI_EVENT_PITCH_BEND = 7,
467  MIDI_EVENT_SYS_EX = 8,
468  MIDI_EVENT_SONG_POINTER = 9,
469  MIDI_EVENT_SONG_SELECT = 10,
470  MIDI_EVENT_TUNE = 11,
471  MIDI_EVENT_TIMING_CLOCK = 12,
472  MIDI_EVENT_SONG_START = 13,
473  MIDI_EVENT_SONG_CONTINUE = 14,
474  MIDI_EVENT_SONG_STOP = 15,
475  MIDI_EVENT_ACTIVE_SENSING = 16,
476  MIDI_EVENT_SYSTEM_RESET = 17,
477 };
478 
479 
480 /* sequence definitions */
481 class IntSeq : public Sfi::Sequence< Sfi::Int > {
482 public:
483  IntSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
484  static inline ::Bse::IntSeq from_seq (SfiSeq *seq);
485  static inline SfiSeq *to_seq (const ::Bse::IntSeq & seq);
486  static inline ::Bse::IntSeq value_get_boxed (const GValue *value);
487  static inline void value_set_boxed (GValue *value, const ::Bse::IntSeq & self);
488  static inline const char* options () { return ""; }
489  static inline const char* blurb () { return ""; }
490  static inline const char* authors () { return ""; }
491  static inline const char* license () { return ""; }
492  static inline const char* type_name () { return "BseIntSeq"; }
493  static inline GParamSpec* get_element ();
494 };
495 
496 class TypeSeq : public Sfi::Sequence< Sfi::String > {
497 public:
498  TypeSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::String > (n) {}
499  static inline ::Bse::TypeSeq from_seq (SfiSeq *seq);
500  static inline SfiSeq *to_seq (const ::Bse::TypeSeq & seq);
501  static inline ::Bse::TypeSeq value_get_boxed (const GValue *value);
502  static inline void value_set_boxed (GValue *value, const ::Bse::TypeSeq & self);
503  static inline const char* options () { return ""; }
504  static inline const char* blurb () { return ""; }
505  static inline const char* authors () { return ""; }
506  static inline const char* license () { return ""; }
507  static inline const char* type_name () { return "BseTypeSeq"; }
508  static inline GParamSpec* get_element ();
509 };
510 
511 class StringSeq : public Sfi::Sequence< Sfi::String > {
512 public:
513  StringSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::String > (n) {}
514  static inline ::Bse::StringSeq from_seq (SfiSeq *seq);
515  static inline SfiSeq *to_seq (const ::Bse::StringSeq & seq);
516  static inline ::Bse::StringSeq value_get_boxed (const GValue *value);
517  static inline void value_set_boxed (GValue *value, const ::Bse::StringSeq & self);
518  static inline const char* options () { return ""; }
519  static inline const char* blurb () { return ""; }
520  static inline const char* authors () { return ""; }
521  static inline const char* license () { return ""; }
522  static inline const char* type_name () { return "BseStringSeq"; }
523  static inline GParamSpec* get_element ();
524 };
525 
526 class FloatSeq : public Sfi::Sequence< Sfi::Real > {
527 public:
528  FloatSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Real > (n) {}
529  static inline ::Bse::FloatSeq from_seq (SfiSeq *seq);
530  static inline SfiSeq *to_seq (const ::Bse::FloatSeq & seq);
531  static inline ::Bse::FloatSeq value_get_boxed (const GValue *value);
532  static inline void value_set_boxed (GValue *value, const ::Bse::FloatSeq & self);
533  static inline const char* options () { return ""; }
534  static inline const char* blurb () { return ""; }
535  static inline const char* authors () { return ""; }
536  static inline const char* license () { return ""; }
537  static inline const char* type_name () { return "BseFloatSeq"; }
538  static inline GParamSpec* get_element ();
539 };
540 
541 class NoteSeq : public Sfi::Sequence< Sfi::Int > {
542 public:
543  NoteSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
544  static inline ::Bse::NoteSeq from_seq (SfiSeq *seq);
545  static inline SfiSeq *to_seq (const ::Bse::NoteSeq & seq);
546  static inline ::Bse::NoteSeq value_get_boxed (const GValue *value);
547  static inline void value_set_boxed (GValue *value, const ::Bse::NoteSeq & self);
548  static inline const char* options () { return ""; }
549  static inline const char* blurb () { return ""; }
550  static inline const char* authors () { return ""; }
551  static inline const char* license () { return ""; }
552  static inline const char* type_name () { return "BseNoteSeq"; }
553  static inline GParamSpec* get_element ();
554 };
555 
556 class ItemSeq : public Sfi::Sequence< BseItem* > {
557 public:
558  ItemSeq (unsigned int n = 0) : Sfi::Sequence< BseItem* > (n) {}
559  static inline ::Bse::ItemSeq from_seq (SfiSeq *seq);
560  static inline SfiSeq *to_seq (const ::Bse::ItemSeq & seq);
561  static inline ::Bse::ItemSeq value_get_boxed (const GValue *value);
562  static inline void value_set_boxed (GValue *value, const ::Bse::ItemSeq & self);
563  static inline const char* options () { return ""; }
564  static inline const char* blurb () { return "A list of BSE items or derived types."; }
565  static inline const char* authors () { return ""; }
566  static inline const char* license () { return ""; }
567  static inline const char* type_name () { return "BseItemSeq"; }
568  static inline GParamSpec* get_element ();
569 };
570 
571 class PartNoteSeq : public Sfi::Sequence< ::Bse::PartNoteHandle > {
572 public:
573  PartNoteSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartNoteHandle > (n) {}
574  static inline ::Bse::PartNoteSeq from_seq (SfiSeq *seq);
575  static inline SfiSeq *to_seq (const ::Bse::PartNoteSeq & seq);
576  static inline ::Bse::PartNoteSeq value_get_boxed (const GValue *value);
577  static inline void value_set_boxed (GValue *value, const ::Bse::PartNoteSeq & self);
578  static inline const char* options () { return ""; }
579  static inline const char* blurb () { return "A list of part notes"; }
580  static inline const char* authors () { return ""; }
581  static inline const char* license () { return ""; }
582  static inline const char* type_name () { return "BsePartNoteSeq"; }
583  static inline GParamSpec* get_element ();
584 };
585 
586 class PartControlSeq : public Sfi::Sequence< ::Bse::PartControlHandle > {
587 public:
588  PartControlSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartControlHandle > (n) {}
589  static inline ::Bse::PartControlSeq from_seq (SfiSeq *seq);
590  static inline SfiSeq *to_seq (const ::Bse::PartControlSeq & seq);
591  static inline ::Bse::PartControlSeq value_get_boxed (const GValue *value);
592  static inline void value_set_boxed (GValue *value, const ::Bse::PartControlSeq & self);
593  static inline const char* options () { return ""; }
594  static inline const char* blurb () { return "A list of part control events"; }
595  static inline const char* authors () { return ""; }
596  static inline const char* license () { return ""; }
597  static inline const char* type_name () { return "BsePartControlSeq"; }
598  static inline GParamSpec* get_element ();
599 };
600 
601 class PixelSeq : public Sfi::Sequence< Sfi::Int > {
602 public:
603  PixelSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
604  static inline ::Bse::PixelSeq from_seq (SfiSeq *seq);
605  static inline SfiSeq *to_seq (const ::Bse::PixelSeq & seq);
606  static inline ::Bse::PixelSeq value_get_boxed (const GValue *value);
607  static inline void value_set_boxed (GValue *value, const ::Bse::PixelSeq & self);
608  static inline const char* options () { return ""; }
609  static inline const char* blurb () { return ""; }
610  static inline const char* authors () { return ""; }
611  static inline const char* license () { return ""; }
612  static inline const char* type_name () { return "BsePixelSeq"; }
613  static inline GParamSpec* get_element ();
614 };
615 
616 class CategorySeq : public Sfi::Sequence< ::Bse::CategoryHandle > {
617 public:
618  CategorySeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::CategoryHandle > (n) {}
619  static inline ::Bse::CategorySeq from_seq (SfiSeq *seq);
620  static inline SfiSeq *to_seq (const ::Bse::CategorySeq & seq);
621  static inline ::Bse::CategorySeq value_get_boxed (const GValue *value);
622  static inline void value_set_boxed (GValue *value, const ::Bse::CategorySeq & self);
623  static inline const char* options () { return ""; }
624  static inline const char* blurb () { return ""; }
625  static inline const char* authors () { return ""; }
626  static inline const char* license () { return ""; }
627  static inline const char* type_name () { return "BseCategorySeq"; }
628  static inline GParamSpec* get_element ();
629 };
630 
631 class DotSeq : public Sfi::Sequence< ::Bse::DotHandle > {
632 public:
633  DotSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::DotHandle > (n) {}
634  static inline ::Bse::DotSeq from_seq (SfiSeq *seq);
635  static inline SfiSeq *to_seq (const ::Bse::DotSeq & seq);
636  static inline ::Bse::DotSeq value_get_boxed (const GValue *value);
637  static inline void value_set_boxed (GValue *value, const ::Bse::DotSeq & self);
638  static inline const char* options () { return ""; }
639  static inline const char* blurb () { return ""; }
640  static inline const char* authors () { return ""; }
641  static inline const char* license () { return ""; }
642  static inline const char* type_name () { return "BseDotSeq"; }
643  static inline GParamSpec* get_element ();
644 };
645 
646 class PartLinkSeq : public Sfi::Sequence< ::Bse::PartLinkHandle > {
647 public:
648  PartLinkSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartLinkHandle > (n) {}
649  static inline ::Bse::PartLinkSeq from_seq (SfiSeq *seq);
650  static inline SfiSeq *to_seq (const ::Bse::PartLinkSeq & seq);
651  static inline ::Bse::PartLinkSeq value_get_boxed (const GValue *value);
652  static inline void value_set_boxed (GValue *value, const ::Bse::PartLinkSeq & self);
653  static inline const char* options () { return ""; }
654  static inline const char* blurb () { return ""; }
655  static inline const char* authors () { return ""; }
656  static inline const char* license () { return ""; }
657  static inline const char* type_name () { return "BsePartLinkSeq"; }
658  static inline GParamSpec* get_element ();
659 };
660 
661 class TrackPartSeq : public Sfi::Sequence< ::Bse::TrackPartHandle > {
662 public:
663  TrackPartSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::TrackPartHandle > (n) {}
664  static inline ::Bse::TrackPartSeq from_seq (SfiSeq *seq);
665  static inline SfiSeq *to_seq (const ::Bse::TrackPartSeq & seq);
666  static inline ::Bse::TrackPartSeq value_get_boxed (const GValue *value);
667  static inline void value_set_boxed (GValue *value, const ::Bse::TrackPartSeq & self);
668  static inline const char* options () { return ""; }
669  static inline const char* blurb () { return ""; }
670  static inline const char* authors () { return ""; }
671  static inline const char* license () { return ""; }
672  static inline const char* type_name () { return "BseTrackPartSeq"; }
673  static inline GParamSpec* get_element ();
674 };
675 
676 
677 
678 /* record definitions */
680 public:
681  ::Bse::MidiChannelEventType event_type;
682  Sfi::Int channel;
683  Sfi::Num tick_stamp;
684  Sfi::Real frequency;
685  Sfi::Real velocity;
686  Sfi::Int control;
687  Sfi::Real value;
688  Sfi::Int program;
689  Sfi::Real intensity;
690  Sfi::Real pitch_bend;
691  Sfi::Int song_pointer;
692  Sfi::Int song_number;
693  static inline ::Bse::MidiChannelEventHandle from_rec (SfiRec *rec);
694  static inline SfiRec *to_rec (const ::Bse::MidiChannelEventHandle & ptr);
695  static inline ::Bse::MidiChannelEventHandle value_get_boxed (const GValue *value);
696  static inline void value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self);
697  static inline const char* options () { return ""; }
698  static inline const char* blurb () { return ""; }
699  static inline const char* authors () { return ""; }
700  static inline const char* license () { return ""; }
701  static inline const char* type_name () { return "BseMidiChannelEvent"; }
702  static inline SfiRecFields get_fields ();
703 };
704 
706 public:
707  Sfi::String label;
708  Sfi::String tooltip;
709  ::Bse::ItemSeq items;
710  ::Bse::TypeSeq partitions;
711  static inline ::Bse::PropertyCandidatesHandle from_rec (SfiRec *rec);
712  static inline SfiRec *to_rec (const ::Bse::PropertyCandidatesHandle & ptr);
713  static inline ::Bse::PropertyCandidatesHandle value_get_boxed (const GValue *value);
714  static inline void value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self);
715  static inline const char* options () { return ""; }
716  static inline const char* blurb () { return "A strcuture describing tentative property values."; }
717  static inline const char* authors () { return ""; }
718  static inline const char* license () { return ""; }
719  static inline const char* type_name () { return "BsePropertyCandidates"; }
720  static inline SfiRecFields get_fields ();
721 };
722 
723 class PartNote : public ::Sfi::GNewable {
724 public:
725  Sfi::Int id;
726  Sfi::Int channel;
727  Sfi::Int tick;
728  Sfi::Int duration;
729  Sfi::Int note;
730  Sfi::Int fine_tune;
731  Sfi::Real velocity;
732  bool selected;
733  static inline ::Bse::PartNoteHandle from_rec (SfiRec *rec);
734  static inline SfiRec *to_rec (const ::Bse::PartNoteHandle & ptr);
735  static inline ::Bse::PartNoteHandle value_get_boxed (const GValue *value);
736  static inline void value_set_boxed (GValue *value, const ::Bse::PartNoteHandle & self);
737  static inline const char* options () { return ""; }
738  static inline const char* blurb () { return "Part specific note representation"; }
739  static inline const char* authors () { return ""; }
740  static inline const char* license () { return ""; }
741  static inline const char* type_name () { return "BsePartNote"; }
742  static inline SfiRecFields get_fields ();
743 };
744 
745 class PartControl : public ::Sfi::GNewable {
746 public:
747  Sfi::Int id;
748  Sfi::Int tick;
749  ::Bse::MidiSignalType control_type;
750  Sfi::Real value;
751  bool selected;
752  static inline ::Bse::PartControlHandle from_rec (SfiRec *rec);
753  static inline SfiRec *to_rec (const ::Bse::PartControlHandle & ptr);
754  static inline ::Bse::PartControlHandle value_get_boxed (const GValue *value);
755  static inline void value_set_boxed (GValue *value, const ::Bse::PartControlHandle & self);
756  static inline const char* options () { return ""; }
757  static inline const char* blurb () { return "Part specific control event representation"; }
758  static inline const char* authors () { return ""; }
759  static inline const char* license () { return ""; }
760  static inline const char* type_name () { return "BsePartControl"; }
761  static inline SfiRecFields get_fields ();
762 };
763 
765 public:
766  ::Bse::MusicalTuningType musical_tuning;
767  Sfi::Int note;
768  Sfi::Int octave;
769  Sfi::Real freq;
770  Sfi::Int fine_tune;
771  Sfi::Int semitone;
772  bool upshift;
773  Sfi::Int letter;
774  Sfi::String name;
775  Sfi::Int max_fine_tune;
776  Sfi::Int kammer_note;
777  static inline ::Bse::NoteDescriptionHandle from_rec (SfiRec *rec);
778  static inline SfiRec *to_rec (const ::Bse::NoteDescriptionHandle & ptr);
779  static inline ::Bse::NoteDescriptionHandle value_get_boxed (const GValue *value);
780  static inline void value_set_boxed (GValue *value, const ::Bse::NoteDescriptionHandle & self);
781  static inline const char* options () { return ""; }
782  static inline const char* blurb () { return "A note description provides all necessary details about a specific note. Various procedures exist to retrieve a note description; given different key values. The max_fine_tune and kammer_note fields are constants, which are provided for compatibility reasons and will vanish in future APIs."; }
783  static inline const char* authors () { return ""; }
784  static inline const char* license () { return ""; }
785  static inline const char* type_name () { return "BseNoteDescription"; }
786  static inline SfiRecFields get_fields ();
787 };
788 
790 public:
791  Sfi::Int offset;
792  ::Bse::NoteSeq notes;
793  static inline ::Bse::NoteSequenceHandle from_rec (SfiRec *rec);
794  static inline SfiRec *to_rec (const ::Bse::NoteSequenceHandle & ptr);
795  static inline ::Bse::NoteSequenceHandle value_get_boxed (const GValue *value);
796  static inline void value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self);
797  static inline const char* options () { return ""; }
798  static inline const char* blurb () { return ""; }
799  static inline const char* authors () { return ""; }
800  static inline const char* license () { return ""; }
801  static inline const char* type_name () { return "BseNoteSequence"; }
802  static inline SfiRecFields get_fields ();
803 };
804 
805 class Icon : public ::Sfi::GNewable {
806 public:
807  Sfi::Int width;
808  Sfi::Int height;
809  ::Bse::PixelSeq pixel_seq;
810  static inline ::Bse::IconHandle from_rec (SfiRec *rec);
811  static inline SfiRec *to_rec (const ::Bse::IconHandle & ptr);
812  static inline ::Bse::IconHandle value_get_boxed (const GValue *value);
813  static inline void value_set_boxed (GValue *value, const ::Bse::IconHandle & self);
814  static inline const char* options () { return ""; }
815  static inline const char* blurb () { return "BSE icon representation."; }
816  static inline const char* authors () { return ""; }
817  static inline const char* license () { return ""; }
818  static inline const char* type_name () { return "BseIcon"; }
819  static inline SfiRecFields get_fields ();
820 };
821 
822 class Category : public ::Sfi::GNewable {
823 public:
824  Sfi::Int category_id;
825  Sfi::String category;
826  Sfi::Int mindex;
827  Sfi::Int lindex;
828  Sfi::String type;
829  ::Bse::IconHandle icon;
830  static inline ::Bse::CategoryHandle from_rec (SfiRec *rec);
831  static inline SfiRec *to_rec (const ::Bse::CategoryHandle & ptr);
832  static inline ::Bse::CategoryHandle value_get_boxed (const GValue *value);
833  static inline void value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self);
834  static inline const char* options () { return ""; }
835  static inline const char* blurb () { return ""; }
836  static inline const char* authors () { return ""; }
837  static inline const char* license () { return ""; }
838  static inline const char* type_name () { return "BseCategory"; }
839  static inline SfiRecFields get_fields ();
840 };
841 
842 class Dot : public ::Sfi::GNewable {
843 public:
844  Sfi::Real x;
845  Sfi::Real y;
846  static inline ::Bse::DotHandle from_rec (SfiRec *rec);
847  static inline SfiRec *to_rec (const ::Bse::DotHandle & ptr);
848  static inline ::Bse::DotHandle value_get_boxed (const GValue *value);
849  static inline void value_set_boxed (GValue *value, const ::Bse::DotHandle & self);
850  static inline const char* options () { return ""; }
851  static inline const char* blurb () { return ""; }
852  static inline const char* authors () { return ""; }
853  static inline const char* license () { return ""; }
854  static inline const char* type_name () { return "BseDot"; }
855  static inline SfiRecFields get_fields ();
856 };
857 
858 class PartLink : public ::Sfi::GNewable {
859 public:
860  BseTrack* track;
861  Sfi::Int tick;
862  BsePart* part;
863  Sfi::Int duration;
864  static inline ::Bse::PartLinkHandle from_rec (SfiRec *rec);
865  static inline SfiRec *to_rec (const ::Bse::PartLinkHandle & ptr);
866  static inline ::Bse::PartLinkHandle value_get_boxed (const GValue *value);
867  static inline void value_set_boxed (GValue *value, const ::Bse::PartLinkHandle & self);
868  static inline const char* options () { return ""; }
869  static inline const char* blurb () { return ""; }
870  static inline const char* authors () { return ""; }
871  static inline const char* license () { return ""; }
872  static inline const char* type_name () { return "BsePartLink"; }
873  static inline SfiRecFields get_fields ();
874 };
875 
876 class TrackPart : public ::Sfi::GNewable {
877 public:
878  Sfi::Int tick;
879  BsePart* part;
880  Sfi::Int duration;
881  static inline ::Bse::TrackPartHandle from_rec (SfiRec *rec);
882  static inline SfiRec *to_rec (const ::Bse::TrackPartHandle & ptr);
883  static inline ::Bse::TrackPartHandle value_get_boxed (const GValue *value);
884  static inline void value_set_boxed (GValue *value, const ::Bse::TrackPartHandle & self);
885  static inline const char* options () { return ""; }
886  static inline const char* blurb () { return ""; }
887  static inline const char* authors () { return ""; }
888  static inline const char* license () { return ""; }
889  static inline const char* type_name () { return "BseTrackPart"; }
890  static inline SfiRecFields get_fields ();
891 };
892 
893 class SongTiming : public ::Sfi::GNewable {
894 public:
895  Sfi::Int tick;
896  Sfi::Real bpm;
897  Sfi::Int numerator;
898  Sfi::Int denominator;
899  Sfi::Int tpqn;
900  Sfi::Int tpt;
901  Sfi::Real stamp_ticks;
902  static inline ::Bse::SongTimingHandle from_rec (SfiRec *rec);
903  static inline SfiRec *to_rec (const ::Bse::SongTimingHandle & ptr);
904  static inline ::Bse::SongTimingHandle value_get_boxed (const GValue *value);
905  static inline void value_set_boxed (GValue *value, const ::Bse::SongTimingHandle & self);
906  static inline const char* options () { return ""; }
907  static inline const char* blurb () { return ""; }
908  static inline const char* authors () { return ""; }
909  static inline const char* license () { return ""; }
910  static inline const char* type_name () { return "BseSongTiming"; }
911  static inline SfiRecFields get_fields ();
912 };
913 
915 public:
916  Sfi::String file;
917  Sfi::Int size;
918  Sfi::Num mtime;
919  Sfi::String loader;
920  ::Bse::StringSeq waves;
921  Sfi::Int error;
922  static inline ::Bse::SampleFileInfoHandle from_rec (SfiRec *rec);
923  static inline SfiRec *to_rec (const ::Bse::SampleFileInfoHandle & ptr);
924  static inline ::Bse::SampleFileInfoHandle value_get_boxed (const GValue *value);
925  static inline void value_set_boxed (GValue *value, const ::Bse::SampleFileInfoHandle & self);
926  static inline const char* options () { return ""; }
927  static inline const char* blurb () { return ""; }
928  static inline const char* authors () { return ""; }
929  static inline const char* license () { return ""; }
930  static inline const char* type_name () { return "BseSampleFileInfo"; }
931  static inline SfiRecFields get_fields ();
932 };
933 
934 class GConfig : public ::Sfi::GNewable {
935 public:
936  Sfi::Int synth_latency;
937  Sfi::Int synth_mixing_freq;
938  Sfi::Int synth_control_freq;
939  bool invert_sustain;
940  Sfi::String author_default;
941  Sfi::String license_default;
942  Sfi::String sample_path;
943  Sfi::String effect_path;
944  Sfi::String instrument_path;
945  Sfi::String script_path;
946  Sfi::String plugin_path;
947  Sfi::String ladspa_path;
948  static inline ::Bse::GConfigHandle from_rec (SfiRec *rec);
949  static inline SfiRec *to_rec (const ::Bse::GConfigHandle & ptr);
950  static inline ::Bse::GConfigHandle value_get_boxed (const GValue *value);
951  static inline void value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self);
952  static inline const char* options () { return ""; }
953  static inline const char* blurb () { return ""; }
954  static inline const char* authors () { return ""; }
955  static inline const char* license () { return ""; }
956  static inline const char* type_name () { return "BseGConfig"; }
957  static inline SfiRecFields get_fields ();
958 };
959 
960 
961 
962 /* enum declarations */
963 BSE_CXX_DECLARE_ENUM (MusicalTuningType, "BseMusicalTuningType", 17,
964  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_12_TET, "BSE_MUSICAL_TUNING_12_TET", _("12 Tone Equal Temperament") );
965  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_7_TET, "BSE_MUSICAL_TUNING_7_TET", _("7 Tone Equal Temperament") );
966  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_5_TET, "BSE_MUSICAL_TUNING_5_TET", _("5 Tone Equal Temperament") );
967  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_DIATONIC_SCALE, "BSE_MUSICAL_TUNING_DIATONIC_SCALE", _("Diatonic Scale") );
968  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_INDIAN_SCALE, "BSE_MUSICAL_TUNING_INDIAN_SCALE", _("Indian Scale") );
969  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PYTHAGOREAN_TUNING, "BSE_MUSICAL_TUNING_PYTHAGOREAN_TUNING", _("Pythagorean Tuning") );
970  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_5_LIMIT, "BSE_MUSICAL_TUNING_PENTATONIC_5_LIMIT", _("Pentatonic 5-limit") );
971  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_BLUES, "BSE_MUSICAL_TUNING_PENTATONIC_BLUES", _("Pentatonic Blues") );
972  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_GOGO, "BSE_MUSICAL_TUNING_PENTATONIC_GOGO", _("Pentatonic Gogo") );
973  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_QUARTER_COMMA_MEANTONE, "BSE_MUSICAL_TUNING_QUARTER_COMMA_MEANTONE", _("Quarter-Comma Meantone") );
974  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_SILBERMANN_SORGE, "BSE_MUSICAL_TUNING_SILBERMANN_SORGE", _("Silbermann-Sorge Temperament") );
975  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_3, "BSE_MUSICAL_TUNING_WERCKMEISTER_3", _("Werckmeister III") );
976  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_4, "BSE_MUSICAL_TUNING_WERCKMEISTER_4", _("Werckmeister IV") );
977  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_5, "BSE_MUSICAL_TUNING_WERCKMEISTER_5", _("Werckmeister V") );
978  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_6, "BSE_MUSICAL_TUNING_WERCKMEISTER_6", _("Werckmeister VI") );
979  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_KIRNBERGER_3, "BSE_MUSICAL_TUNING_KIRNBERGER_3", _("Kirnberger III") );
980  *v++ = ::Bse::EnumValue (MUSICAL_TUNING_YOUNG, "BSE_MUSICAL_TUNING_YOUNG", _("Young Temperament") );
981 );
982 BSE_CXX_DECLARE_ENUM (MidiSignalType, "BseMidiSignalType", 172,
983  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PROGRAM, "BSE_MIDI_SIGNAL_PROGRAM", _("Program Change") );
984  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PRESSURE, "BSE_MIDI_SIGNAL_PRESSURE", _("Channel Pressure") );
985  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PITCH_BEND, "BSE_MIDI_SIGNAL_PITCH_BEND", _("Pitch Bend") );
986  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_VELOCITY, "BSE_MIDI_SIGNAL_VELOCITY", _("Note Velocity") );
987  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_FINE_TUNE, "BSE_MIDI_SIGNAL_FINE_TUNE", _("Note Fine Tune") );
988  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_0, "BSE_MIDI_SIGNAL_CONTINUOUS_0", _("Bank Select") );
989  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_1, "BSE_MIDI_SIGNAL_CONTINUOUS_1", _("Modulation Depth") );
990  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_2, "BSE_MIDI_SIGNAL_CONTINUOUS_2", _("Breath Control") );
991  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_3, "BSE_MIDI_SIGNAL_CONTINUOUS_3", _("Continuous 3") );
992  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_4, "BSE_MIDI_SIGNAL_CONTINUOUS_4", _("Foot Controller") );
993  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_5, "BSE_MIDI_SIGNAL_CONTINUOUS_5", _("Portamento Time") );
994  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_6, "BSE_MIDI_SIGNAL_CONTINUOUS_6", _("Data Entry") );
995  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_7, "BSE_MIDI_SIGNAL_CONTINUOUS_7", _("Volume") );
996  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_8, "BSE_MIDI_SIGNAL_CONTINUOUS_8", _("Balance") );
997  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_9, "BSE_MIDI_SIGNAL_CONTINUOUS_9", _("Continuous 9") );
998  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_10, "BSE_MIDI_SIGNAL_CONTINUOUS_10", _("Panorama") );
999  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_11, "BSE_MIDI_SIGNAL_CONTINUOUS_11", _("Expression") );
1000  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_12, "BSE_MIDI_SIGNAL_CONTINUOUS_12", _("Effect Control 1") );
1001  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_13, "BSE_MIDI_SIGNAL_CONTINUOUS_13", _("Effect Control 2") );
1002  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_14, "BSE_MIDI_SIGNAL_CONTINUOUS_14", _("Continuous 14") );
1003  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_15, "BSE_MIDI_SIGNAL_CONTINUOUS_15", _("Continuous 15") );
1004  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_16, "BSE_MIDI_SIGNAL_CONTINUOUS_16", _("General Purpose Controller 1") );
1005  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_17, "BSE_MIDI_SIGNAL_CONTINUOUS_17", _("General Purpose Controller 2") );
1006  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_18, "BSE_MIDI_SIGNAL_CONTINUOUS_18", _("General Purpose Controller 3") );
1007  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_19, "BSE_MIDI_SIGNAL_CONTINUOUS_19", _("General Purpose Controller 4") );
1008  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_20, "BSE_MIDI_SIGNAL_CONTINUOUS_20", _("Continuous 20") );
1009  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_21, "BSE_MIDI_SIGNAL_CONTINUOUS_21", _("Continuous 21") );
1010  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_22, "BSE_MIDI_SIGNAL_CONTINUOUS_22", _("Continuous 22") );
1011  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_23, "BSE_MIDI_SIGNAL_CONTINUOUS_23", _("Continuous 23") );
1012  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_24, "BSE_MIDI_SIGNAL_CONTINUOUS_24", _("Continuous 24") );
1013  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_25, "BSE_MIDI_SIGNAL_CONTINUOUS_25", _("Continuous 25") );
1014  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_26, "BSE_MIDI_SIGNAL_CONTINUOUS_26", _("Continuous 26") );
1015  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_27, "BSE_MIDI_SIGNAL_CONTINUOUS_27", _("Continuous 27") );
1016  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_28, "BSE_MIDI_SIGNAL_CONTINUOUS_28", _("Continuous 28") );
1017  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_29, "BSE_MIDI_SIGNAL_CONTINUOUS_29", _("Continuous 29") );
1018  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_30, "BSE_MIDI_SIGNAL_CONTINUOUS_30", _("Continuous 30") );
1019  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_31, "BSE_MIDI_SIGNAL_CONTINUOUS_31", _("Continuous 31") );
1020  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_HIGH, "BSE_MIDI_SIGNAL_CONSTANT_HIGH", _("Constant HIGH") );
1021  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_CENTER, "BSE_MIDI_SIGNAL_CONSTANT_CENTER", _("Constant CENTER") );
1022  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_LOW, "BSE_MIDI_SIGNAL_CONSTANT_LOW", _("Constant LOW") );
1023  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER, "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER", _("Constant Negative CENTER") );
1024  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH, "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH", _("Constant Negative HIGH") );
1025  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PARAMETER, "BSE_MIDI_SIGNAL_PARAMETER", _("Registered Parameter") );
1026  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_NON_PARAMETER, "BSE_MIDI_SIGNAL_NON_PARAMETER", _("Non-Registered Parameter") );
1027  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_0, "BSE_MIDI_SIGNAL_CONTROL_0", _("Control 0 Bank Select MSB") );
1028  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_1, "BSE_MIDI_SIGNAL_CONTROL_1", _("Control 1 Modulation Depth MSB") );
1029  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_2, "BSE_MIDI_SIGNAL_CONTROL_2", _("Control 2 Breath Control MSB") );
1030  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_3, "BSE_MIDI_SIGNAL_CONTROL_3", _("control-3") );
1031  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_4, "BSE_MIDI_SIGNAL_CONTROL_4", _("Control 4 Foot Controller MSB") );
1032  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_5, "BSE_MIDI_SIGNAL_CONTROL_5", _("Control 5 Portamento Time MSB") );
1033  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_6, "BSE_MIDI_SIGNAL_CONTROL_6", _("Control 6 Data Entry MSB") );
1034  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_7, "BSE_MIDI_SIGNAL_CONTROL_7", _("Control 7 Volume MSB") );
1035  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_8, "BSE_MIDI_SIGNAL_CONTROL_8", _("Control 8 Balance MSB") );
1036  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_9, "BSE_MIDI_SIGNAL_CONTROL_9", _("control-9") );
1037  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_10, "BSE_MIDI_SIGNAL_CONTROL_10", _("Control 10 Panorama MSB") );
1038  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_11, "BSE_MIDI_SIGNAL_CONTROL_11", _("Control 11 Expression MSB") );
1039  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_12, "BSE_MIDI_SIGNAL_CONTROL_12", _("Control 12 Effect Control 1 MSB") );
1040  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_13, "BSE_MIDI_SIGNAL_CONTROL_13", _("Control 13 Effect Control 2 MSB") );
1041  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_14, "BSE_MIDI_SIGNAL_CONTROL_14", _("control-14") );
1042  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_15, "BSE_MIDI_SIGNAL_CONTROL_15", _("control-15") );
1043  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_16, "BSE_MIDI_SIGNAL_CONTROL_16", _("Control 16 General Purpose Controller 1 MSB") );
1044  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_17, "BSE_MIDI_SIGNAL_CONTROL_17", _("Control 17 General Purpose Controller 2 MSB") );
1045  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_18, "BSE_MIDI_SIGNAL_CONTROL_18", _("Control 18 General Purpose Controller 3 MSB") );
1046  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_19, "BSE_MIDI_SIGNAL_CONTROL_19", _("Control 19 General Purpose Controller 4 MSB") );
1047  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_20, "BSE_MIDI_SIGNAL_CONTROL_20", _("control-20") );
1048  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_21, "BSE_MIDI_SIGNAL_CONTROL_21", _("control-21") );
1049  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_22, "BSE_MIDI_SIGNAL_CONTROL_22", _("control-22") );
1050  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_23, "BSE_MIDI_SIGNAL_CONTROL_23", _("control-23") );
1051  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_24, "BSE_MIDI_SIGNAL_CONTROL_24", _("control-24") );
1052  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_25, "BSE_MIDI_SIGNAL_CONTROL_25", _("control-25") );
1053  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_26, "BSE_MIDI_SIGNAL_CONTROL_26", _("control-26") );
1054  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_27, "BSE_MIDI_SIGNAL_CONTROL_27", _("control-27") );
1055  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_28, "BSE_MIDI_SIGNAL_CONTROL_28", _("control-28") );
1056  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_29, "BSE_MIDI_SIGNAL_CONTROL_29", _("control-29") );
1057  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_30, "BSE_MIDI_SIGNAL_CONTROL_30", _("control-30") );
1058  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_31, "BSE_MIDI_SIGNAL_CONTROL_31", _("control-31") );
1059  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_32, "BSE_MIDI_SIGNAL_CONTROL_32", _("Control 32 Bank Select LSB") );
1060  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_33, "BSE_MIDI_SIGNAL_CONTROL_33", _("Control 33 Modulation Depth LSB") );
1061  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_34, "BSE_MIDI_SIGNAL_CONTROL_34", _("Control 34 Breath Control LSB") );
1062  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_35, "BSE_MIDI_SIGNAL_CONTROL_35", _("control-35") );
1063  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_36, "BSE_MIDI_SIGNAL_CONTROL_36", _("Control 36 Foot Controller LSB") );
1064  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_37, "BSE_MIDI_SIGNAL_CONTROL_37", _("Control 37 Portamento Time LSB") );
1065  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_38, "BSE_MIDI_SIGNAL_CONTROL_38", _("Control 38 Data Entry LSB") );
1066  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_39, "BSE_MIDI_SIGNAL_CONTROL_39", _("Control 39 Volume LSB") );
1067  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_40, "BSE_MIDI_SIGNAL_CONTROL_40", _("Control 40 Balance LSB") );
1068  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_41, "BSE_MIDI_SIGNAL_CONTROL_41", _("control-41") );
1069  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_42, "BSE_MIDI_SIGNAL_CONTROL_42", _("Control 42 Panorama LSB") );
1070  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_43, "BSE_MIDI_SIGNAL_CONTROL_43", _("Control 43 Expression LSB") );
1071  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_44, "BSE_MIDI_SIGNAL_CONTROL_44", _("Control 44 Effect Control 1 LSB") );
1072  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_45, "BSE_MIDI_SIGNAL_CONTROL_45", _("Control 45 Effect Control 2 LSB") );
1073  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_46, "BSE_MIDI_SIGNAL_CONTROL_46", _("control-46") );
1074  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_47, "BSE_MIDI_SIGNAL_CONTROL_47", _("control-47") );
1075  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_48, "BSE_MIDI_SIGNAL_CONTROL_48", _("Control 48 General Purpose Controller 1 LSB") );
1076  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_49, "BSE_MIDI_SIGNAL_CONTROL_49", _("Control 49 General Purpose Controller 2 LSB") );
1077  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_50, "BSE_MIDI_SIGNAL_CONTROL_50", _("Control 50 General Purpose Controller 3 LSB") );
1078  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_51, "BSE_MIDI_SIGNAL_CONTROL_51", _("Control 51 General Purpose Controller 4 LSB") );
1079  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_52, "BSE_MIDI_SIGNAL_CONTROL_52", _("control-52") );
1080  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_53, "BSE_MIDI_SIGNAL_CONTROL_53", _("control-53") );
1081  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_54, "BSE_MIDI_SIGNAL_CONTROL_54", _("control-54") );
1082  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_55, "BSE_MIDI_SIGNAL_CONTROL_55", _("control-55") );
1083  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_56, "BSE_MIDI_SIGNAL_CONTROL_56", _("control-56") );
1084  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_57, "BSE_MIDI_SIGNAL_CONTROL_57", _("control-57") );
1085  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_58, "BSE_MIDI_SIGNAL_CONTROL_58", _("control-58") );
1086  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_59, "BSE_MIDI_SIGNAL_CONTROL_59", _("control-59") );
1087  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_60, "BSE_MIDI_SIGNAL_CONTROL_60", _("control-60") );
1088  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_61, "BSE_MIDI_SIGNAL_CONTROL_61", _("control-61") );
1089  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_62, "BSE_MIDI_SIGNAL_CONTROL_62", _("control-62") );
1090  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_63, "BSE_MIDI_SIGNAL_CONTROL_63", _("control-63") );
1091  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_64, "BSE_MIDI_SIGNAL_CONTROL_64", _("Control 64 Damper Pedal Switch (Sustain)") );
1092  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_65, "BSE_MIDI_SIGNAL_CONTROL_65", _("Control 65 Portamento Switch") );
1093  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_66, "BSE_MIDI_SIGNAL_CONTROL_66", _("Control 66 Sustenuto Switch") );
1094  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_67, "BSE_MIDI_SIGNAL_CONTROL_67", _("Control 67 Soft Switch") );
1095  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_68, "BSE_MIDI_SIGNAL_CONTROL_68", _("Control 68 Legato Pedal Switch") );
1096  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_69, "BSE_MIDI_SIGNAL_CONTROL_69", _("Control 69 Hold Pedal Switch") );
1097  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_70, "BSE_MIDI_SIGNAL_CONTROL_70", _("Control 70 Sound Variation") );
1098  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_71, "BSE_MIDI_SIGNAL_CONTROL_71", _("Control 71 Filter Resonance (Timbre)") );
1099  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_72, "BSE_MIDI_SIGNAL_CONTROL_72", _("Control 72 Sound Release Time") );
1100  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_73, "BSE_MIDI_SIGNAL_CONTROL_73", _("Control 73 Sound Attack Time") );
1101  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_74, "BSE_MIDI_SIGNAL_CONTROL_74", _("Control 74 Sound Brightness") );
1102  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_75, "BSE_MIDI_SIGNAL_CONTROL_75", _("Control 75 Sound Decay Time") );
1103  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_76, "BSE_MIDI_SIGNAL_CONTROL_76", _("Control 76 Vibrato Rate") );
1104  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_77, "BSE_MIDI_SIGNAL_CONTROL_77", _("Control 77 Vibrato Depth") );
1105  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_78, "BSE_MIDI_SIGNAL_CONTROL_78", _("Control 78 Vibrato Delay") );
1106  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_79, "BSE_MIDI_SIGNAL_CONTROL_79", _("Control 79 Sound Control 10") );
1107  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_80, "BSE_MIDI_SIGNAL_CONTROL_80", _("Control 80 General Purpose Switch 5") );
1108  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_81, "BSE_MIDI_SIGNAL_CONTROL_81", _("Control 81 General Purpose Switch 6") );
1109  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_82, "BSE_MIDI_SIGNAL_CONTROL_82", _("Control 82 General Purpose Switch 7") );
1110  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_83, "BSE_MIDI_SIGNAL_CONTROL_83", _("Control 83 General Purpose Switch 8") );
1111  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_84, "BSE_MIDI_SIGNAL_CONTROL_84", _("Control 84 Portamento Control (Note)") );
1112  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_85, "BSE_MIDI_SIGNAL_CONTROL_85", _("control-85") );
1113  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_86, "BSE_MIDI_SIGNAL_CONTROL_86", _("control-86") );
1114  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_87, "BSE_MIDI_SIGNAL_CONTROL_87", _("control-87") );
1115  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_88, "BSE_MIDI_SIGNAL_CONTROL_88", _("control-88") );
1116  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_89, "BSE_MIDI_SIGNAL_CONTROL_89", _("control-89") );
1117  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_90, "BSE_MIDI_SIGNAL_CONTROL_90", _("control-90") );
1118  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_91, "BSE_MIDI_SIGNAL_CONTROL_91", _("Control 91 Reverb Depth") );
1119  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_92, "BSE_MIDI_SIGNAL_CONTROL_92", _("Control 92 Tremolo Depth") );
1120  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_93, "BSE_MIDI_SIGNAL_CONTROL_93", _("Control 93 Chorus Depth") );
1121  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_94, "BSE_MIDI_SIGNAL_CONTROL_94", _("Control 93 Detune Depth") );
1122  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_95, "BSE_MIDI_SIGNAL_CONTROL_95", _("Control 95 Phase Depth") );
1123  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_96, "BSE_MIDI_SIGNAL_CONTROL_96", _("Control 96 Data Increment Trigger") );
1124  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_97, "BSE_MIDI_SIGNAL_CONTROL_97", _("Control 97 Data Decrement Trigger") );
1125  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_98, "BSE_MIDI_SIGNAL_CONTROL_98", _("Control 98 Non-Registered Parameter MSB") );
1126  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_99, "BSE_MIDI_SIGNAL_CONTROL_99", _("Control 99 Non-Registered Parameter LSB") );
1127  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_100, "BSE_MIDI_SIGNAL_CONTROL_100", _("Control 100 Registered Parameter MSB") );
1128  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_101, "BSE_MIDI_SIGNAL_CONTROL_101", _("Control 101 Registered Parameter LSB") );
1129  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_102, "BSE_MIDI_SIGNAL_CONTROL_102", _("control-102") );
1130  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_103, "BSE_MIDI_SIGNAL_CONTROL_103", _("control-103") );
1131  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_104, "BSE_MIDI_SIGNAL_CONTROL_104", _("control-104") );
1132  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_105, "BSE_MIDI_SIGNAL_CONTROL_105", _("control-105") );
1133  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_106, "BSE_MIDI_SIGNAL_CONTROL_106", _("control-106") );
1134  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_107, "BSE_MIDI_SIGNAL_CONTROL_107", _("control-107") );
1135  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_108, "BSE_MIDI_SIGNAL_CONTROL_108", _("control-108") );
1136  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_109, "BSE_MIDI_SIGNAL_CONTROL_109", _("control-109") );
1137  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_110, "BSE_MIDI_SIGNAL_CONTROL_110", _("control-110") );
1138  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_111, "BSE_MIDI_SIGNAL_CONTROL_111", _("control-111") );
1139  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_112, "BSE_MIDI_SIGNAL_CONTROL_112", _("control-112") );
1140  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_113, "BSE_MIDI_SIGNAL_CONTROL_113", _("control-113") );
1141  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_114, "BSE_MIDI_SIGNAL_CONTROL_114", _("control-114") );
1142  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_115, "BSE_MIDI_SIGNAL_CONTROL_115", _("control-115") );
1143  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_116, "BSE_MIDI_SIGNAL_CONTROL_116", _("control-116") );
1144  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_117, "BSE_MIDI_SIGNAL_CONTROL_117", _("control-117") );
1145  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_118, "BSE_MIDI_SIGNAL_CONTROL_118", _("control-118") );
1146  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_119, "BSE_MIDI_SIGNAL_CONTROL_119", _("control-119") );
1147  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_120, "BSE_MIDI_SIGNAL_CONTROL_120", _("Control 120 All Sound Off ITrigger") );
1148  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_121, "BSE_MIDI_SIGNAL_CONTROL_121", _("Control 121 All Controllers Off ITrigger") );
1149  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_122, "BSE_MIDI_SIGNAL_CONTROL_122", _("Control 122 Local Control Switch") );
1150  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_123, "BSE_MIDI_SIGNAL_CONTROL_123", _("Control 123 All Notes Off ITrigger") );
1151  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_124, "BSE_MIDI_SIGNAL_CONTROL_124", _("Control 124 Omni Mode Off ITrigger") );
1152  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_125, "BSE_MIDI_SIGNAL_CONTROL_125", _("Control 125 Omni Mode On ITrigger") );
1153  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_126, "BSE_MIDI_SIGNAL_CONTROL_126", _("Control 126 Monophonic Voices Mode") );
1154  *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_127, "BSE_MIDI_SIGNAL_CONTROL_127", _("Control 127 Polyphonic Mode On ITrigger") );
1155 );
1156 BSE_CXX_DECLARE_ENUM (MidiControlType, "BseMidiControlType", 161,
1157  *v++ = ::Bse::EnumValue (MIDI_CONTROL_NONE, "BSE_MIDI_CONTROL_NONE", _("None") );
1158  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_0, "BSE_MIDI_CONTROL_CONTINUOUS_0", _("Bank Select") );
1159  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_1, "BSE_MIDI_CONTROL_CONTINUOUS_1", _("Modulation Depth") );
1160  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_2, "BSE_MIDI_CONTROL_CONTINUOUS_2", _("Breath Control") );
1161  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_3, "BSE_MIDI_CONTROL_CONTINUOUS_3", _("Continuous 3") );
1162  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_4, "BSE_MIDI_CONTROL_CONTINUOUS_4", _("Foot Controller") );
1163  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_5, "BSE_MIDI_CONTROL_CONTINUOUS_5", _("Portamento Time") );
1164  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_6, "BSE_MIDI_CONTROL_CONTINUOUS_6", _("Data Entry") );
1165  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_7, "BSE_MIDI_CONTROL_CONTINUOUS_7", _("Volume") );
1166  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_8, "BSE_MIDI_CONTROL_CONTINUOUS_8", _("Balance") );
1167  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_9, "BSE_MIDI_CONTROL_CONTINUOUS_9", _("Continuous 9") );
1168  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_10, "BSE_MIDI_CONTROL_CONTINUOUS_10", _("Panorama") );
1169  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_11, "BSE_MIDI_CONTROL_CONTINUOUS_11", _("Expression") );
1170  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_12, "BSE_MIDI_CONTROL_CONTINUOUS_12", _("Effect Control 1") );
1171  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_13, "BSE_MIDI_CONTROL_CONTINUOUS_13", _("Effect Control 2") );
1172  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_14, "BSE_MIDI_CONTROL_CONTINUOUS_14", _("Continuous 14") );
1173  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_15, "BSE_MIDI_CONTROL_CONTINUOUS_15", _("Continuous 15") );
1174  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_16, "BSE_MIDI_CONTROL_CONTINUOUS_16", _("General Purpose Controller 1") );
1175  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_17, "BSE_MIDI_CONTROL_CONTINUOUS_17", _("General Purpose Controller 2") );
1176  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_18, "BSE_MIDI_CONTROL_CONTINUOUS_18", _("General Purpose Controller 3") );
1177  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_19, "BSE_MIDI_CONTROL_CONTINUOUS_19", _("General Purpose Controller 4") );
1178  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_20, "BSE_MIDI_CONTROL_CONTINUOUS_20", _("Continuous 20") );
1179  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_21, "BSE_MIDI_CONTROL_CONTINUOUS_21", _("Continuous 21") );
1180  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_22, "BSE_MIDI_CONTROL_CONTINUOUS_22", _("Continuous 22") );
1181  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_23, "BSE_MIDI_CONTROL_CONTINUOUS_23", _("Continuous 23") );
1182  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_24, "BSE_MIDI_CONTROL_CONTINUOUS_24", _("Continuous 24") );
1183  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_25, "BSE_MIDI_CONTROL_CONTINUOUS_25", _("Continuous 25") );
1184  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_26, "BSE_MIDI_CONTROL_CONTINUOUS_26", _("Continuous 26") );
1185  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_27, "BSE_MIDI_CONTROL_CONTINUOUS_27", _("Continuous 27") );
1186  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_28, "BSE_MIDI_CONTROL_CONTINUOUS_28", _("Continuous 28") );
1187  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_29, "BSE_MIDI_CONTROL_CONTINUOUS_29", _("Continuous 29") );
1188  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_30, "BSE_MIDI_CONTROL_CONTINUOUS_30", _("Continuous 30") );
1189  *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_31, "BSE_MIDI_CONTROL_CONTINUOUS_31", _("Continuous 31") );
1190  *v++ = ::Bse::EnumValue (MIDI_CONTROL_0, "BSE_MIDI_CONTROL_0", _("Control 0 Bank Select MSB") );
1191  *v++ = ::Bse::EnumValue (MIDI_CONTROL_1, "BSE_MIDI_CONTROL_1", _("Control 1 Modulation Depth MSB") );
1192  *v++ = ::Bse::EnumValue (MIDI_CONTROL_2, "BSE_MIDI_CONTROL_2", _("Control 2 Breath Control MSB") );
1193  *v++ = ::Bse::EnumValue (MIDI_CONTROL_3, "BSE_MIDI_CONTROL_3", _("control-3") );
1194  *v++ = ::Bse::EnumValue (MIDI_CONTROL_4, "BSE_MIDI_CONTROL_4", _("Control 4 Foot Controller MSB") );
1195  *v++ = ::Bse::EnumValue (MIDI_CONTROL_5, "BSE_MIDI_CONTROL_5", _("Control 5 Portamento Time MSB") );
1196  *v++ = ::Bse::EnumValue (MIDI_CONTROL_6, "BSE_MIDI_CONTROL_6", _("Control 6 Data Entry MSB") );
1197  *v++ = ::Bse::EnumValue (MIDI_CONTROL_7, "BSE_MIDI_CONTROL_7", _("Control 7 Volume MSB") );
1198  *v++ = ::Bse::EnumValue (MIDI_CONTROL_8, "BSE_MIDI_CONTROL_8", _("Control 8 Balance MSB") );
1199  *v++ = ::Bse::EnumValue (MIDI_CONTROL_9, "BSE_MIDI_CONTROL_9", _("control-9") );
1200  *v++ = ::Bse::EnumValue (MIDI_CONTROL_10, "BSE_MIDI_CONTROL_10", _("Control 10 Panorama MSB") );
1201  *v++ = ::Bse::EnumValue (MIDI_CONTROL_11, "BSE_MIDI_CONTROL_11", _("Control 11 Expression MSB") );
1202  *v++ = ::Bse::EnumValue (MIDI_CONTROL_12, "BSE_MIDI_CONTROL_12", _("Control 12 Effect Control 1 MSB") );
1203  *v++ = ::Bse::EnumValue (MIDI_CONTROL_13, "BSE_MIDI_CONTROL_13", _("Control 13 Effect Control 2 MSB") );
1204  *v++ = ::Bse::EnumValue (MIDI_CONTROL_14, "BSE_MIDI_CONTROL_14", _("control-14") );
1205  *v++ = ::Bse::EnumValue (MIDI_CONTROL_15, "BSE_MIDI_CONTROL_15", _("control-15") );
1206  *v++ = ::Bse::EnumValue (MIDI_CONTROL_16, "BSE_MIDI_CONTROL_16", _("Control 16 General Purpose Controller 1 MSB") );
1207  *v++ = ::Bse::EnumValue (MIDI_CONTROL_17, "BSE_MIDI_CONTROL_17", _("Control 17 General Purpose Controller 2 MSB") );
1208  *v++ = ::Bse::EnumValue (MIDI_CONTROL_18, "BSE_MIDI_CONTROL_18", _("Control 18 General Purpose Controller 3 MSB") );
1209  *v++ = ::Bse::EnumValue (MIDI_CONTROL_19, "BSE_MIDI_CONTROL_19", _("Control 19 General Purpose Controller 4 MSB") );
1210  *v++ = ::Bse::EnumValue (MIDI_CONTROL_20, "BSE_MIDI_CONTROL_20", _("control-20") );
1211  *v++ = ::Bse::EnumValue (MIDI_CONTROL_21, "BSE_MIDI_CONTROL_21", _("control-21") );
1212  *v++ = ::Bse::EnumValue (MIDI_CONTROL_22, "BSE_MIDI_CONTROL_22", _("control-22") );
1213  *v++ = ::Bse::EnumValue (MIDI_CONTROL_23, "BSE_MIDI_CONTROL_23", _("control-23") );
1214  *v++ = ::Bse::EnumValue (MIDI_CONTROL_24, "BSE_MIDI_CONTROL_24", _("control-24") );
1215  *v++ = ::Bse::EnumValue (MIDI_CONTROL_25, "BSE_MIDI_CONTROL_25", _("control-25") );
1216  *v++ = ::Bse::EnumValue (MIDI_CONTROL_26, "BSE_MIDI_CONTROL_26", _("control-26") );
1217  *v++ = ::Bse::EnumValue (MIDI_CONTROL_27, "BSE_MIDI_CONTROL_27", _("control-27") );
1218  *v++ = ::Bse::EnumValue (MIDI_CONTROL_28, "BSE_MIDI_CONTROL_28", _("control-28") );
1219  *v++ = ::Bse::EnumValue (MIDI_CONTROL_29, "BSE_MIDI_CONTROL_29", _("control-29") );
1220  *v++ = ::Bse::EnumValue (MIDI_CONTROL_30, "BSE_MIDI_CONTROL_30", _("control-30") );
1221  *v++ = ::Bse::EnumValue (MIDI_CONTROL_31, "BSE_MIDI_CONTROL_31", _("control-31") );
1222  *v++ = ::Bse::EnumValue (MIDI_CONTROL_32, "BSE_MIDI_CONTROL_32", _("Control 32 Bank Select LSB") );
1223  *v++ = ::Bse::EnumValue (MIDI_CONTROL_33, "BSE_MIDI_CONTROL_33", _("Control 33 Modulation Depth LSB") );
1224  *v++ = ::Bse::EnumValue (MIDI_CONTROL_34, "BSE_MIDI_CONTROL_34", _("Control 34 Breath Control LSB") );
1225  *v++ = ::Bse::EnumValue (MIDI_CONTROL_35, "BSE_MIDI_CONTROL_35", _("control-35") );
1226  *v++ = ::Bse::EnumValue (MIDI_CONTROL_36, "BSE_MIDI_CONTROL_36", _("Control 36 Foot Controller LSB") );
1227  *v++ = ::Bse::EnumValue (MIDI_CONTROL_37, "BSE_MIDI_CONTROL_37", _("Control 37 Portamento Time LSB") );
1228  *v++ = ::Bse::EnumValue (MIDI_CONTROL_38, "BSE_MIDI_CONTROL_38", _("Control 38 Data Entry LSB") );
1229  *v++ = ::Bse::EnumValue (MIDI_CONTROL_39, "BSE_MIDI_CONTROL_39", _("Control 39 Volume LSB") );
1230  *v++ = ::Bse::EnumValue (MIDI_CONTROL_40, "BSE_MIDI_CONTROL_40", _("Control 40 Balance LSB") );
1231  *v++ = ::Bse::EnumValue (MIDI_CONTROL_41, "BSE_MIDI_CONTROL_41", _("control-41") );
1232  *v++ = ::Bse::EnumValue (MIDI_CONTROL_42, "BSE_MIDI_CONTROL_42", _("Control 42 Panorama LSB") );
1233  *v++ = ::Bse::EnumValue (MIDI_CONTROL_43, "BSE_MIDI_CONTROL_43", _("Control 43 Expression LSB") );
1234  *v++ = ::Bse::EnumValue (MIDI_CONTROL_44, "BSE_MIDI_CONTROL_44", _("Control 44 Effect Control 1 LSB") );
1235  *v++ = ::Bse::EnumValue (MIDI_CONTROL_45, "BSE_MIDI_CONTROL_45", _("Control 45 Effect Control 2 LSB") );
1236  *v++ = ::Bse::EnumValue (MIDI_CONTROL_46, "BSE_MIDI_CONTROL_46", _("control-46") );
1237  *v++ = ::Bse::EnumValue (MIDI_CONTROL_47, "BSE_MIDI_CONTROL_47", _("control-47") );
1238  *v++ = ::Bse::EnumValue (MIDI_CONTROL_48, "BSE_MIDI_CONTROL_48", _("Control 48 General Purpose Controller 1 LSB") );
1239  *v++ = ::Bse::EnumValue (MIDI_CONTROL_49, "BSE_MIDI_CONTROL_49", _("Control 49 General Purpose Controller 2 LSB") );
1240  *v++ = ::Bse::EnumValue (MIDI_CONTROL_50, "BSE_MIDI_CONTROL_50", _("Control 50 General Purpose Controller 3 LSB") );
1241  *v++ = ::Bse::EnumValue (MIDI_CONTROL_51, "BSE_MIDI_CONTROL_51", _("Control 51 General Purpose Controller 4 LSB") );
1242  *v++ = ::Bse::EnumValue (MIDI_CONTROL_52, "BSE_MIDI_CONTROL_52", _("control-52") );
1243  *v++ = ::Bse::EnumValue (MIDI_CONTROL_53, "BSE_MIDI_CONTROL_53", _("control-53") );
1244  *v++ = ::Bse::EnumValue (MIDI_CONTROL_54, "BSE_MIDI_CONTROL_54", _("control-54") );
1245  *v++ = ::Bse::EnumValue (MIDI_CONTROL_55, "BSE_MIDI_CONTROL_55", _("control-55") );
1246  *v++ = ::Bse::EnumValue (MIDI_CONTROL_56, "BSE_MIDI_CONTROL_56", _("control-56") );
1247  *v++ = ::Bse::EnumValue (MIDI_CONTROL_57, "BSE_MIDI_CONTROL_57", _("control-57") );
1248  *v++ = ::Bse::EnumValue (MIDI_CONTROL_58, "BSE_MIDI_CONTROL_58", _("control-58") );
1249  *v++ = ::Bse::EnumValue (MIDI_CONTROL_59, "BSE_MIDI_CONTROL_59", _("control-59") );
1250  *v++ = ::Bse::EnumValue (MIDI_CONTROL_60, "BSE_MIDI_CONTROL_60", _("control-60") );
1251  *v++ = ::Bse::EnumValue (MIDI_CONTROL_61, "BSE_MIDI_CONTROL_61", _("control-61") );
1252  *v++ = ::Bse::EnumValue (MIDI_CONTROL_62, "BSE_MIDI_CONTROL_62", _("control-62") );
1253  *v++ = ::Bse::EnumValue (MIDI_CONTROL_63, "BSE_MIDI_CONTROL_63", _("control-63") );
1254  *v++ = ::Bse::EnumValue (MIDI_CONTROL_64, "BSE_MIDI_CONTROL_64", _("Control 64 Damper Pedal Switch (Sustain)") );
1255  *v++ = ::Bse::EnumValue (MIDI_CONTROL_65, "BSE_MIDI_CONTROL_65", _("Control 65 Portamento Switch") );
1256  *v++ = ::Bse::EnumValue (MIDI_CONTROL_66, "BSE_MIDI_CONTROL_66", _("Control 66 Sustenuto Switch") );
1257  *v++ = ::Bse::EnumValue (MIDI_CONTROL_67, "BSE_MIDI_CONTROL_67", _("Control 67 Soft Switch") );
1258  *v++ = ::Bse::EnumValue (MIDI_CONTROL_68, "BSE_MIDI_CONTROL_68", _("Control 68 Legato Pedal Switch") );
1259  *v++ = ::Bse::EnumValue (MIDI_CONTROL_69, "BSE_MIDI_CONTROL_69", _("Control 69 Hold Pedal Switch") );
1260  *v++ = ::Bse::EnumValue (MIDI_CONTROL_70, "BSE_MIDI_CONTROL_70", _("Control 70 Sound Variation") );
1261  *v++ = ::Bse::EnumValue (MIDI_CONTROL_71, "BSE_MIDI_CONTROL_71", _("Control 71 Filter Resonance (Timbre)") );
1262  *v++ = ::Bse::EnumValue (MIDI_CONTROL_72, "BSE_MIDI_CONTROL_72", _("Control 72 Sound Release Time") );
1263  *v++ = ::Bse::EnumValue (MIDI_CONTROL_73, "BSE_MIDI_CONTROL_73", _("Control 73 Sound Attack Time") );
1264  *v++ = ::Bse::EnumValue (MIDI_CONTROL_74, "BSE_MIDI_CONTROL_74", _("Control 74 Sound Brightness") );
1265  *v++ = ::Bse::EnumValue (MIDI_CONTROL_75, "BSE_MIDI_CONTROL_75", _("Control 75 Sound Decay Time") );
1266  *v++ = ::Bse::EnumValue (MIDI_CONTROL_76, "BSE_MIDI_CONTROL_76", _("Control 76 Vibrato Rate") );
1267  *v++ = ::Bse::EnumValue (MIDI_CONTROL_77, "BSE_MIDI_CONTROL_77", _("Control 77 Vibrato Depth") );
1268  *v++ = ::Bse::EnumValue (MIDI_CONTROL_78, "BSE_MIDI_CONTROL_78", _("Control 78 Vibrato Delay") );
1269  *v++ = ::Bse::EnumValue (MIDI_CONTROL_79, "BSE_MIDI_CONTROL_79", _("Control 79 Sound Control 10") );
1270  *v++ = ::Bse::EnumValue (MIDI_CONTROL_80, "BSE_MIDI_CONTROL_80", _("Control 80 General Purpose Switch 5") );
1271  *v++ = ::Bse::EnumValue (MIDI_CONTROL_81, "BSE_MIDI_CONTROL_81", _("Control 81 General Purpose Switch 6") );
1272  *v++ = ::Bse::EnumValue (MIDI_CONTROL_82, "BSE_MIDI_CONTROL_82", _("Control 82 General Purpose Switch 7") );
1273  *v++ = ::Bse::EnumValue (MIDI_CONTROL_83, "BSE_MIDI_CONTROL_83", _("Control 83 General Purpose Switch 8") );
1274  *v++ = ::Bse::EnumValue (MIDI_CONTROL_84, "BSE_MIDI_CONTROL_84", _("Control 84 Portamento Control (Note)") );
1275  *v++ = ::Bse::EnumValue (MIDI_CONTROL_85, "BSE_MIDI_CONTROL_85", _("control-85") );
1276  *v++ = ::Bse::EnumValue (MIDI_CONTROL_86, "BSE_MIDI_CONTROL_86", _("control-86") );
1277  *v++ = ::Bse::EnumValue (MIDI_CONTROL_87, "BSE_MIDI_CONTROL_87", _("control-87") );
1278  *v++ = ::Bse::EnumValue (MIDI_CONTROL_88, "BSE_MIDI_CONTROL_88", _("control-88") );
1279  *v++ = ::Bse::EnumValue (MIDI_CONTROL_89, "BSE_MIDI_CONTROL_89", _("control-89") );
1280  *v++ = ::Bse::EnumValue (MIDI_CONTROL_90, "BSE_MIDI_CONTROL_90", _("control-90") );
1281  *v++ = ::Bse::EnumValue (MIDI_CONTROL_91, "BSE_MIDI_CONTROL_91", _("Control 91 Reverb Depth") );
1282  *v++ = ::Bse::EnumValue (MIDI_CONTROL_92, "BSE_MIDI_CONTROL_92", _("Control 92 Tremolo Depth") );
1283  *v++ = ::Bse::EnumValue (MIDI_CONTROL_93, "BSE_MIDI_CONTROL_93", _("Control 93 Chorus Depth") );
1284  *v++ = ::Bse::EnumValue (MIDI_CONTROL_94, "BSE_MIDI_CONTROL_94", _("Control 93 Detune Depth") );
1285  *v++ = ::Bse::EnumValue (MIDI_CONTROL_95, "BSE_MIDI_CONTROL_95", _("Control 95 Phase Depth") );
1286  *v++ = ::Bse::EnumValue (MIDI_CONTROL_96, "BSE_MIDI_CONTROL_96", _("Control 96 Data Increment Trigger") );
1287  *v++ = ::Bse::EnumValue (MIDI_CONTROL_97, "BSE_MIDI_CONTROL_97", _("Control 97 Data Decrement Trigger") );
1288  *v++ = ::Bse::EnumValue (MIDI_CONTROL_98, "BSE_MIDI_CONTROL_98", _("Control 98 Non-Registered Parameter MSB") );
1289  *v++ = ::Bse::EnumValue (MIDI_CONTROL_99, "BSE_MIDI_CONTROL_99", _("Control 99 Non-Registered Parameter LSB") );
1290  *v++ = ::Bse::EnumValue (MIDI_CONTROL_100, "BSE_MIDI_CONTROL_100", _("Control 100 Registered Parameter MSB") );
1291  *v++ = ::Bse::EnumValue (MIDI_CONTROL_101, "BSE_MIDI_CONTROL_101", _("Control 101 Registered Parameter LSB") );
1292  *v++ = ::Bse::EnumValue (MIDI_CONTROL_102, "BSE_MIDI_CONTROL_102", _("control-102") );
1293  *v++ = ::Bse::EnumValue (MIDI_CONTROL_103, "BSE_MIDI_CONTROL_103", _("control-103") );
1294  *v++ = ::Bse::EnumValue (MIDI_CONTROL_104, "BSE_MIDI_CONTROL_104", _("control-104") );
1295  *v++ = ::Bse::EnumValue (MIDI_CONTROL_105, "BSE_MIDI_CONTROL_105", _("control-105") );
1296  *v++ = ::Bse::EnumValue (MIDI_CONTROL_106, "BSE_MIDI_CONTROL_106", _("control-106") );
1297  *v++ = ::Bse::EnumValue (MIDI_CONTROL_107, "BSE_MIDI_CONTROL_107", _("control-107") );
1298  *v++ = ::Bse::EnumValue (MIDI_CONTROL_108, "BSE_MIDI_CONTROL_108", _("control-108") );
1299  *v++ = ::Bse::EnumValue (MIDI_CONTROL_109, "BSE_MIDI_CONTROL_109", _("control-109") );
1300  *v++ = ::Bse::EnumValue (MIDI_CONTROL_110, "BSE_MIDI_CONTROL_110", _("control-110") );
1301  *v++ = ::Bse::EnumValue (MIDI_CONTROL_111, "BSE_MIDI_CONTROL_111", _("control-111") );
1302  *v++ = ::Bse::EnumValue (MIDI_CONTROL_112, "BSE_MIDI_CONTROL_112", _("control-112") );
1303  *v++ = ::Bse::EnumValue (MIDI_CONTROL_113, "BSE_MIDI_CONTROL_113", _("control-113") );
1304  *v++ = ::Bse::EnumValue (MIDI_CONTROL_114, "BSE_MIDI_CONTROL_114", _("control-114") );
1305  *v++ = ::Bse::EnumValue (MIDI_CONTROL_115, "BSE_MIDI_CONTROL_115", _("control-115") );
1306  *v++ = ::Bse::EnumValue (MIDI_CONTROL_116, "BSE_MIDI_CONTROL_116", _("control-116") );
1307  *v++ = ::Bse::EnumValue (MIDI_CONTROL_117, "BSE_MIDI_CONTROL_117", _("control-117") );
1308  *v++ = ::Bse::EnumValue (MIDI_CONTROL_118, "BSE_MIDI_CONTROL_118", _("control-118") );
1309  *v++ = ::Bse::EnumValue (MIDI_CONTROL_119, "BSE_MIDI_CONTROL_119", _("control-119") );
1310  *v++ = ::Bse::EnumValue (MIDI_CONTROL_120, "BSE_MIDI_CONTROL_120", _("Control 120 All Sound Off ITrigger") );
1311  *v++ = ::Bse::EnumValue (MIDI_CONTROL_121, "BSE_MIDI_CONTROL_121", _("Control 121 All Controllers Off ITrigger") );
1312  *v++ = ::Bse::EnumValue (MIDI_CONTROL_122, "BSE_MIDI_CONTROL_122", _("Control 122 Local Control Switch") );
1313  *v++ = ::Bse::EnumValue (MIDI_CONTROL_123, "BSE_MIDI_CONTROL_123", _("Control 123 All Notes Off ITrigger") );
1314  *v++ = ::Bse::EnumValue (MIDI_CONTROL_124, "BSE_MIDI_CONTROL_124", _("Control 124 Omni Mode Off ITrigger") );
1315  *v++ = ::Bse::EnumValue (MIDI_CONTROL_125, "BSE_MIDI_CONTROL_125", _("Control 125 Omni Mode On ITrigger") );
1316  *v++ = ::Bse::EnumValue (MIDI_CONTROL_126, "BSE_MIDI_CONTROL_126", _("Control 126 Monophonic Voices Mode") );
1317  *v++ = ::Bse::EnumValue (MIDI_CONTROL_127, "BSE_MIDI_CONTROL_127", _("Control 127 Polyphonic Mode On ITrigger") );
1318 );
1319 BSE_CXX_DECLARE_ENUM (MidiChannelEventType, "BseMidiChannelEventType", 18,
1320  *v++ = ::Bse::EnumValue (MIDI_EVENT_NONE, "BSE_MIDI_EVENT_NONE", "bse-midi-event-none" );
1321  *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_OFF, "BSE_MIDI_EVENT_NOTE_OFF", "bse-midi-event-note-off" );
1322  *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_ON, "BSE_MIDI_EVENT_NOTE_ON", "bse-midi-event-note-on" );
1323  *v++ = ::Bse::EnumValue (MIDI_EVENT_KEY_PRESSURE, "BSE_MIDI_EVENT_KEY_PRESSURE", "bse-midi-event-key-pressure" );
1324  *v++ = ::Bse::EnumValue (MIDI_EVENT_CONTROL_CHANGE, "BSE_MIDI_EVENT_CONTROL_CHANGE", "bse-midi-event-control-change" );
1325  *v++ = ::Bse::EnumValue (MIDI_EVENT_PROGRAM_CHANGE, "BSE_MIDI_EVENT_PROGRAM_CHANGE", "bse-midi-event-program-change" );
1326  *v++ = ::Bse::EnumValue (MIDI_EVENT_CHANNEL_PRESSURE, "BSE_MIDI_EVENT_CHANNEL_PRESSURE", "bse-midi-event-channel-pressure" );
1327  *v++ = ::Bse::EnumValue (MIDI_EVENT_PITCH_BEND, "BSE_MIDI_EVENT_PITCH_BEND", "bse-midi-event-pitch-bend" );
1328  *v++ = ::Bse::EnumValue (MIDI_EVENT_SYS_EX, "BSE_MIDI_EVENT_SYS_EX", "bse-midi-event-sys-ex" );
1329  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_POINTER, "BSE_MIDI_EVENT_SONG_POINTER", "bse-midi-event-song-pointer" );
1330  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_SELECT, "BSE_MIDI_EVENT_SONG_SELECT", "bse-midi-event-song-select" );
1331  *v++ = ::Bse::EnumValue (MIDI_EVENT_TUNE, "BSE_MIDI_EVENT_TUNE", "bse-midi-event-tune" );
1332  *v++ = ::Bse::EnumValue (MIDI_EVENT_TIMING_CLOCK, "BSE_MIDI_EVENT_TIMING_CLOCK", "bse-midi-event-timing-clock" );
1333  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_START, "BSE_MIDI_EVENT_SONG_START", "bse-midi-event-song-start" );
1334  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_CONTINUE, "BSE_MIDI_EVENT_SONG_CONTINUE", "bse-midi-event-song-continue" );
1335  *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_STOP, "BSE_MIDI_EVENT_SONG_STOP", "bse-midi-event-song-stop" );
1336  *v++ = ::Bse::EnumValue (MIDI_EVENT_ACTIVE_SENSING, "BSE_MIDI_EVENT_ACTIVE_SENSING", "bse-midi-event-active-sensing" );
1337  *v++ = ::Bse::EnumValue (MIDI_EVENT_SYSTEM_RESET, "BSE_MIDI_EVENT_SYSTEM_RESET", "bse-midi-event-system-reset" );
1338 );
1339 
1340 
1341 /* sequence type declarations */
1342 BSE_CXX_DECLARE_SEQUENCE (IntSeq);
1343 
1344 BSE_CXX_DECLARE_SEQUENCE (TypeSeq);
1345 
1346 BSE_CXX_DECLARE_SEQUENCE (StringSeq);
1347 
1348 BSE_CXX_DECLARE_SEQUENCE (FloatSeq);
1349 
1350 BSE_CXX_DECLARE_SEQUENCE (NoteSeq);
1351 
1352 BSE_CXX_DECLARE_SEQUENCE (ItemSeq);
1353 
1354 BSE_CXX_DECLARE_SEQUENCE (PartNoteSeq);
1355 
1356 BSE_CXX_DECLARE_SEQUENCE (PartControlSeq);
1357 
1358 BSE_CXX_DECLARE_SEQUENCE (PixelSeq);
1359 
1360 BSE_CXX_DECLARE_SEQUENCE (CategorySeq);
1361 
1362 BSE_CXX_DECLARE_SEQUENCE (DotSeq);
1363 
1364 BSE_CXX_DECLARE_SEQUENCE (PartLinkSeq);
1365 
1366 BSE_CXX_DECLARE_SEQUENCE (TrackPartSeq);
1367 
1368 
1369 
1370 /* record type declarations */
1371 BSE_CXX_DECLARE_RECORD (MidiChannelEvent);
1372 
1373 BSE_CXX_DECLARE_RECORD (PropertyCandidates);
1374 
1375 BSE_CXX_DECLARE_RECORD (PartNote);
1376 
1377 BSE_CXX_DECLARE_RECORD (PartControl);
1378 
1379 BSE_CXX_DECLARE_RECORD (NoteDescription);
1380 
1381 BSE_CXX_DECLARE_RECORD (NoteSequence);
1382 
1383 BSE_CXX_DECLARE_RECORD (Icon);
1384 
1385 BSE_CXX_DECLARE_RECORD (Category);
1386 
1387 BSE_CXX_DECLARE_RECORD (Dot);
1388 
1389 BSE_CXX_DECLARE_RECORD (PartLink);
1390 
1391 BSE_CXX_DECLARE_RECORD (TrackPart);
1392 
1393 BSE_CXX_DECLARE_RECORD (SongTiming);
1394 
1395 BSE_CXX_DECLARE_RECORD (SampleFileInfo);
1396 
1397 BSE_CXX_DECLARE_RECORD (GConfig);
1398 
1399 
1400 
1401 /* procedure prototypes */
1402 
1403 
1404 /* class definitions */
1405 
1406 
1407 /* choice implementations */
1408 static SfiChoiceValues
1409 MusicalTuningType_choice_values()
1410 {
1411  static SfiChoiceValue values[17];
1412  static const SfiChoiceValues choice_values = {
1413  G_N_ELEMENTS (values), values,
1414  };
1415  if (!values[0].choice_ident)
1416  {
1417  values[0].choice_ident = "BSE_MUSICAL_TUNING_12_TET";
1418  values[0].choice_label = _("12 Tone Equal Temperament");
1419  values[0].choice_blurb = _("The most common tuning system for modern Western music, is the twelve-tone equal temperament, abbreviated as 12-TET, which divides the octave into 12 equal parts.");
1420  values[1].choice_ident = "BSE_MUSICAL_TUNING_7_TET";
1421  values[1].choice_label = _("7 Tone Equal Temperament");
1422  values[1].choice_blurb = _("A fairly common tuning system is the seven-tone equal temperament tuning system, abbreviated as 7-TET. It divides the octave into 7 equal parts using 171 cent steps.");
1423  values[2].choice_ident = "BSE_MUSICAL_TUNING_5_TET";
1424  values[2].choice_label = _("5 Tone Equal Temperament");
1425  values[2].choice_blurb = _("A fairly common tuning system is the five-tone equal temperament tuning system, abbreviated as 5-TET. It divides the octave into 5 equal parts using 240 cent steps.");
1426  values[3].choice_ident = "BSE_MUSICAL_TUNING_DIATONIC_SCALE";
1427  values[3].choice_label = _("Diatonic Scale");
1428  values[3].choice_blurb = _("In music theory, a diatonic scale (also: heptatonia prima) is a seven-note musical scale comprising five whole-tone and two half-tone steps. The half tones are maximally separated, so between two half-tone steps there are either two or three whole tones, repeating per octave.");
1429  values[4].choice_ident = "BSE_MUSICAL_TUNING_INDIAN_SCALE";
1430  values[4].choice_label = _("Indian Scale");
1431  values[4].choice_blurb = _("Diatonic scale used in Indian music with wolf interval at Dha, close to 3/2");
1432  values[5].choice_ident = "BSE_MUSICAL_TUNING_PYTHAGOREAN_TUNING";
1433  values[5].choice_label = _("Pythagorean Tuning");
1434  values[5].choice_blurb = _("Pythagorean tuning is the oldest way of tuning the 12-note chromatic scale, in which the frequency relationships of all intervals are based on the ratio 3:2. Its discovery is generally credited to Pythagoras.");
1435  values[6].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_5_LIMIT";
1436  values[6].choice_label = _("Pentatonic 5-limit");
1437  values[6].choice_blurb = _("Pentatonic scales are used in modern jazz and pop/rock contexts because they work exceedingly well over several chords diatonic to the same key, often better than the parent scale.");
1438  values[7].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_BLUES";
1439  values[7].choice_label = _("Pentatonic Blues");
1440  values[7].choice_blurb = _("The blues scale is the minor pentatonic with an additional augmented fourth, which is referred to as the \"blues note\".");
1441  values[8].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_GOGO";
1442  values[8].choice_label = _("Pentatonic Gogo");
1443  values[8].choice_blurb = _("The Pentatonic Gogo scale is an anhemitonic pentatonic scale used to tune the instruments of the Gogo people of Tanzania.");
1444  values[9].choice_ident = "BSE_MUSICAL_TUNING_QUARTER_COMMA_MEANTONE";
1445  values[9].choice_label = _("Quarter-Comma Meantone");
1446  values[9].choice_blurb = _("Quarter-comma meantone was the most common meantone temperament in the sixteenth and seventeenth centuries and sometimes used later.");
1447  values[10].choice_ident = "BSE_MUSICAL_TUNING_SILBERMANN_SORGE";
1448  values[10].choice_label = _("Silbermann-Sorge Temperament");
1449  values[10].choice_blurb = _("The Silbermann-Sorge temperament is a meantone temperament used for Baroque era organs by Gottfried Silbermann.");
1450  values[11].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_3";
1451  values[11].choice_label = _("Werckmeister III");
1452  values[11].choice_blurb = _("This tuning uses mostly pure (perfect) fifths, as in Pythagorean tuning, but each of the fifths C-G, G-D, D-A and B-F# is made smaller, i.e. tempered by 1/4 comma. Werckmeister designated this tuning as particularly suited for playing chromatic music.");
1453  values[12].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_4";
1454  values[12].choice_label = _("Werckmeister IV");
1455  values[12].choice_blurb = _("In this tuning the fifths C-G, D-A, E-B, F#-C#, and Bb-F are tempered narrow by 1/3 comma, and the fifths G#-D# and Eb-Bb are widened by 1/3 comma. The other fifths are pure. Most of its intervals are close to sixth-comma meantone. Werckmeister designed this tuning for playing mainly diatonic music.");
1456  values[13].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_5";
1457  values[13].choice_label = _("Werckmeister V");
1458  values[13].choice_blurb = _("In this tuning the fifths D-A, A-E, F#-C#, C#-G#, and F-C are narrowed by 1/4 comma, and the fifth G#-D# is widened by 1/4 comma. The other fifths are pure. This temperament is closer to equal temperament than Werckmeister III or IV.");
1459  values[14].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_6";
1460  values[14].choice_label = _("Werckmeister VI");
1461  values[14].choice_blurb = _("This tuning is also known as Septenarius tuning is based on a division of the monochord length into 196 = 7 * 7 * 4 parts. The resulting scale has rational frequency relationships, but in practice involves pure and impure sounding fifths. Werckmeister described the Septenarius as a \"temperament which has nothing at all to do with the divisions of the comma, nevertheless in practice so correct that one can be really satisfied with it\".");
1462  values[15].choice_ident = "BSE_MUSICAL_TUNING_KIRNBERGER_3";
1463  values[15].choice_label = _("Kirnberger III");
1464  values[15].choice_blurb = _("Kirnberger's method of compensating for and closing the circle of fifths is to split the \"wolf\" interval known to those who have used meantone temperaments between four fifths instead, allowing for four 1/4-comma wolves to take their place. 1/4-comma wolves are used extensively in meantone and are much easier to tune and to listen to. Therefore, only one third remains pure (between C and E).");
1465  values[16].choice_ident = "BSE_MUSICAL_TUNING_YOUNG";
1466  values[16].choice_label = _("Young Temperament");
1467  values[16].choice_blurb = _("Thomas Young devised a form of musical tuning to make the harmony most perfect in those keys which are the most frequently used (give better major thirds in those keys), but to not have any unplayable keys. This is attempted by tuning upwards from C a sequence of six pure fourths, as well as six equally imperfect fifths.");
1468  }
1469  return choice_values;
1470 }
1471 
1472 static SfiChoiceValues
1473 MidiSignalType_choice_values()
1474 {
1475  static SfiChoiceValue values[172];
1476  static const SfiChoiceValues choice_values = {
1477  G_N_ELEMENTS (values), values,
1478  };
1479  if (!values[0].choice_ident)
1480  {
1481  values[0].choice_ident = "BSE_MIDI_SIGNAL_PROGRAM";
1482  values[0].choice_label = _("Program Change");
1483  values[0].choice_blurb = "";
1484  values[1].choice_ident = "BSE_MIDI_SIGNAL_PRESSURE";
1485  values[1].choice_label = _("Channel Pressure");
1486  values[1].choice_blurb = "";
1487  values[2].choice_ident = "BSE_MIDI_SIGNAL_PITCH_BEND";
1488  values[2].choice_label = _("Pitch Bend");
1489  values[2].choice_blurb = "";
1490  values[3].choice_ident = "BSE_MIDI_SIGNAL_VELOCITY";
1491  values[3].choice_label = _("Note Velocity");
1492  values[3].choice_blurb = "";
1493  values[4].choice_ident = "BSE_MIDI_SIGNAL_FINE_TUNE";
1494  values[4].choice_label = _("Note Fine Tune");
1495  values[4].choice_blurb = "";
1496  values[5].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_0";
1497  values[5].choice_label = _("Bank Select");
1498  values[5].choice_blurb = "";
1499  values[6].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_1";
1500  values[6].choice_label = _("Modulation Depth");
1501  values[6].choice_blurb = "";
1502  values[7].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_2";
1503  values[7].choice_label = _("Breath Control");
1504  values[7].choice_blurb = "";
1505  values[8].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_3";
1506  values[8].choice_label = _("Continuous 3");
1507  values[8].choice_blurb = "";
1508  values[9].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_4";
1509  values[9].choice_label = _("Foot Controller");
1510  values[9].choice_blurb = "";
1511  values[10].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_5";
1512  values[10].choice_label = _("Portamento Time");
1513  values[10].choice_blurb = "";
1514  values[11].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_6";
1515  values[11].choice_label = _("Data Entry");
1516  values[11].choice_blurb = "";
1517  values[12].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_7";
1518  values[12].choice_label = _("Volume");
1519  values[12].choice_blurb = "";
1520  values[13].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_8";
1521  values[13].choice_label = _("Balance");
1522  values[13].choice_blurb = "";
1523  values[14].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_9";
1524  values[14].choice_label = _("Continuous 9");
1525  values[14].choice_blurb = "";
1526  values[15].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_10";
1527  values[15].choice_label = _("Panorama");
1528  values[15].choice_blurb = "";
1529  values[16].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_11";
1530  values[16].choice_label = _("Expression");
1531  values[16].choice_blurb = "";
1532  values[17].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_12";
1533  values[17].choice_label = _("Effect Control 1");
1534  values[17].choice_blurb = "";
1535  values[18].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_13";
1536  values[18].choice_label = _("Effect Control 2");
1537  values[18].choice_blurb = "";
1538  values[19].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_14";
1539  values[19].choice_label = _("Continuous 14");
1540  values[19].choice_blurb = "";
1541  values[20].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_15";
1542  values[20].choice_label = _("Continuous 15");
1543  values[20].choice_blurb = "";
1544  values[21].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_16";
1545  values[21].choice_label = _("General Purpose Controller 1");
1546  values[21].choice_blurb = "";
1547  values[22].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_17";
1548  values[22].choice_label = _("General Purpose Controller 2");
1549  values[22].choice_blurb = "";
1550  values[23].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_18";
1551  values[23].choice_label = _("General Purpose Controller 3");
1552  values[23].choice_blurb = "";
1553  values[24].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_19";
1554  values[24].choice_label = _("General Purpose Controller 4");
1555  values[24].choice_blurb = "";
1556  values[25].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_20";
1557  values[25].choice_label = _("Continuous 20");
1558  values[25].choice_blurb = "";
1559  values[26].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_21";
1560  values[26].choice_label = _("Continuous 21");
1561  values[26].choice_blurb = "";
1562  values[27].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_22";
1563  values[27].choice_label = _("Continuous 22");
1564  values[27].choice_blurb = "";
1565  values[28].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_23";
1566  values[28].choice_label = _("Continuous 23");
1567  values[28].choice_blurb = "";
1568  values[29].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_24";
1569  values[29].choice_label = _("Continuous 24");
1570  values[29].choice_blurb = "";
1571  values[30].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_25";
1572  values[30].choice_label = _("Continuous 25");
1573  values[30].choice_blurb = "";
1574  values[31].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_26";
1575  values[31].choice_label = _("Continuous 26");
1576  values[31].choice_blurb = "";
1577  values[32].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_27";
1578  values[32].choice_label = _("Continuous 27");
1579  values[32].choice_blurb = "";
1580  values[33].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_28";
1581  values[33].choice_label = _("Continuous 28");
1582  values[33].choice_blurb = "";
1583  values[34].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_29";
1584  values[34].choice_label = _("Continuous 29");
1585  values[34].choice_blurb = "";
1586  values[35].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_30";
1587  values[35].choice_label = _("Continuous 30");
1588  values[35].choice_blurb = "";
1589  values[36].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_31";
1590  values[36].choice_label = _("Continuous 31");
1591  values[36].choice_blurb = "";
1592  values[37].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_HIGH";
1593  values[37].choice_label = _("Constant HIGH");
1594  values[37].choice_blurb = "";
1595  values[38].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_CENTER";
1596  values[38].choice_label = _("Constant CENTER");
1597  values[38].choice_blurb = "";
1598  values[39].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_LOW";
1599  values[39].choice_label = _("Constant LOW");
1600  values[39].choice_blurb = "";
1601  values[40].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER";
1602  values[40].choice_label = _("Constant Negative CENTER");
1603  values[40].choice_blurb = "";
1604  values[41].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH";
1605  values[41].choice_label = _("Constant Negative HIGH");
1606  values[41].choice_blurb = "";
1607  values[42].choice_ident = "BSE_MIDI_SIGNAL_PARAMETER";
1608  values[42].choice_label = _("Registered Parameter");
1609  values[42].choice_blurb = "";
1610  values[43].choice_ident = "BSE_MIDI_SIGNAL_NON_PARAMETER";
1611  values[43].choice_label = _("Non-Registered Parameter");
1612  values[43].choice_blurb = "";
1613  values[44].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_0";
1614  values[44].choice_label = _("Control 0 Bank Select MSB");
1615  values[44].choice_blurb = "";
1616  values[45].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_1";
1617  values[45].choice_label = _("Control 1 Modulation Depth MSB");
1618  values[45].choice_blurb = "";
1619  values[46].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_2";
1620  values[46].choice_label = _("Control 2 Breath Control MSB");
1621  values[46].choice_blurb = "";
1622  values[47].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_3";
1623  values[47].choice_label = _("control-3");
1624  values[47].choice_blurb = "";
1625  values[48].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_4";
1626  values[48].choice_label = _("Control 4 Foot Controller MSB");
1627  values[48].choice_blurb = "";
1628  values[49].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_5";
1629  values[49].choice_label = _("Control 5 Portamento Time MSB");
1630  values[49].choice_blurb = "";
1631  values[50].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_6";
1632  values[50].choice_label = _("Control 6 Data Entry MSB");
1633  values[50].choice_blurb = "";
1634  values[51].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_7";
1635  values[51].choice_label = _("Control 7 Volume MSB");
1636  values[51].choice_blurb = "";
1637  values[52].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_8";
1638  values[52].choice_label = _("Control 8 Balance MSB");
1639  values[52].choice_blurb = "";
1640  values[53].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_9";
1641  values[53].choice_label = _("control-9");
1642  values[53].choice_blurb = "";
1643  values[54].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_10";
1644  values[54].choice_label = _("Control 10 Panorama MSB");
1645  values[54].choice_blurb = "";
1646  values[55].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_11";
1647  values[55].choice_label = _("Control 11 Expression MSB");
1648  values[55].choice_blurb = "";
1649  values[56].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_12";
1650  values[56].choice_label = _("Control 12 Effect Control 1 MSB");
1651  values[56].choice_blurb = "";
1652  values[57].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_13";
1653  values[57].choice_label = _("Control 13 Effect Control 2 MSB");
1654  values[57].choice_blurb = "";
1655  values[58].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_14";
1656  values[58].choice_label = _("control-14");
1657  values[58].choice_blurb = "";
1658  values[59].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_15";
1659  values[59].choice_label = _("control-15");
1660  values[59].choice_blurb = "";
1661  values[60].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_16";
1662  values[60].choice_label = _("Control 16 General Purpose Controller 1 MSB");
1663  values[60].choice_blurb = "";
1664  values[61].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_17";
1665  values[61].choice_label = _("Control 17 General Purpose Controller 2 MSB");
1666  values[61].choice_blurb = "";
1667  values[62].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_18";
1668  values[62].choice_label = _("Control 18 General Purpose Controller 3 MSB");
1669  values[62].choice_blurb = "";
1670  values[63].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_19";
1671  values[63].choice_label = _("Control 19 General Purpose Controller 4 MSB");
1672  values[63].choice_blurb = "";
1673  values[64].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_20";
1674  values[64].choice_label = _("control-20");
1675  values[64].choice_blurb = "";
1676  values[65].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_21";
1677  values[65].choice_label = _("control-21");
1678  values[65].choice_blurb = "";
1679  values[66].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_22";
1680  values[66].choice_label = _("control-22");
1681  values[66].choice_blurb = "";
1682  values[67].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_23";
1683  values[67].choice_label = _("control-23");
1684  values[67].choice_blurb = "";
1685  values[68].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_24";
1686  values[68].choice_label = _("control-24");
1687  values[68].choice_blurb = "";
1688  values[69].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_25";
1689  values[69].choice_label = _("control-25");
1690  values[69].choice_blurb = "";
1691  values[70].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_26";
1692  values[70].choice_label = _("control-26");
1693  values[70].choice_blurb = "";
1694  values[71].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_27";
1695  values[71].choice_label = _("control-27");
1696  values[71].choice_blurb = "";
1697  values[72].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_28";
1698  values[72].choice_label = _("control-28");
1699  values[72].choice_blurb = "";
1700  values[73].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_29";
1701  values[73].choice_label = _("control-29");
1702  values[73].choice_blurb = "";
1703  values[74].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_30";
1704  values[74].choice_label = _("control-30");
1705  values[74].choice_blurb = "";
1706  values[75].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_31";
1707  values[75].choice_label = _("control-31");
1708  values[75].choice_blurb = "";
1709  values[76].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_32";
1710  values[76].choice_label = _("Control 32 Bank Select LSB");
1711  values[76].choice_blurb = "";
1712  values[77].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_33";
1713  values[77].choice_label = _("Control 33 Modulation Depth LSB");
1714  values[77].choice_blurb = "";
1715  values[78].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_34";
1716  values[78].choice_label = _("Control 34 Breath Control LSB");
1717  values[78].choice_blurb = "";
1718  values[79].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_35";
1719  values[79].choice_label = _("control-35");
1720  values[79].choice_blurb = "";
1721  values[80].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_36";
1722  values[80].choice_label = _("Control 36 Foot Controller LSB");
1723  values[80].choice_blurb = "";
1724  values[81].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_37";
1725  values[81].choice_label = _("Control 37 Portamento Time LSB");
1726  values[81].choice_blurb = "";
1727  values[82].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_38";
1728  values[82].choice_label = _("Control 38 Data Entry LSB");
1729  values[82].choice_blurb = "";
1730  values[83].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_39";
1731  values[83].choice_label = _("Control 39 Volume LSB");
1732  values[83].choice_blurb = "";
1733  values[84].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_40";
1734  values[84].choice_label = _("Control 40 Balance LSB");
1735  values[84].choice_blurb = "";
1736  values[85].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_41";
1737  values[85].choice_label = _("control-41");
1738  values[85].choice_blurb = "";
1739  values[86].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_42";
1740  values[86].choice_label = _("Control 42 Panorama LSB");
1741  values[86].choice_blurb = "";
1742  values[87].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_43";
1743  values[87].choice_label = _("Control 43 Expression LSB");
1744  values[87].choice_blurb = "";
1745  values[88].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_44";
1746  values[88].choice_label = _("Control 44 Effect Control 1 LSB");
1747  values[88].choice_blurb = "";
1748  values[89].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_45";
1749  values[89].choice_label = _("Control 45 Effect Control 2 LSB");
1750  values[89].choice_blurb = "";
1751  values[90].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_46";
1752  values[90].choice_label = _("control-46");
1753  values[90].choice_blurb = "";
1754  values[91].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_47";
1755  values[91].choice_label = _("control-47");
1756  values[91].choice_blurb = "";
1757  values[92].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_48";
1758  values[92].choice_label = _("Control 48 General Purpose Controller 1 LSB");
1759  values[92].choice_blurb = "";
1760  values[93].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_49";
1761  values[93].choice_label = _("Control 49 General Purpose Controller 2 LSB");
1762  values[93].choice_blurb = "";
1763  values[94].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_50";
1764  values[94].choice_label = _("Control 50 General Purpose Controller 3 LSB");
1765  values[94].choice_blurb = "";
1766  values[95].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_51";
1767  values[95].choice_label = _("Control 51 General Purpose Controller 4 LSB");
1768  values[95].choice_blurb = "";
1769  values[96].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_52";
1770  values[96].choice_label = _("control-52");
1771  values[96].choice_blurb = "";
1772  values[97].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_53";
1773  values[97].choice_label = _("control-53");
1774  values[97].choice_blurb = "";
1775  values[98].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_54";
1776  values[98].choice_label = _("control-54");
1777  values[98].choice_blurb = "";
1778  values[99].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_55";
1779  values[99].choice_label = _("control-55");
1780  values[99].choice_blurb = "";
1781  values[100].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_56";
1782  values[100].choice_label = _("control-56");
1783  values[100].choice_blurb = "";
1784  values[101].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_57";
1785  values[101].choice_label = _("control-57");
1786  values[101].choice_blurb = "";
1787  values[102].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_58";
1788  values[102].choice_label = _("control-58");
1789  values[102].choice_blurb = "";
1790  values[103].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_59";
1791  values[103].choice_label = _("control-59");
1792  values[103].choice_blurb = "";
1793  values[104].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_60";
1794  values[104].choice_label = _("control-60");
1795  values[104].choice_blurb = "";
1796  values[105].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_61";
1797  values[105].choice_label = _("control-61");
1798  values[105].choice_blurb = "";
1799  values[106].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_62";
1800  values[106].choice_label = _("control-62");
1801  values[106].choice_blurb = "";
1802  values[107].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_63";
1803  values[107].choice_label = _("control-63");
1804  values[107].choice_blurb = "";
1805  values[108].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_64";
1806  values[108].choice_label = _("Control 64 Damper Pedal Switch (Sustain)");
1807  values[108].choice_blurb = "";
1808  values[109].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_65";
1809  values[109].choice_label = _("Control 65 Portamento Switch");
1810  values[109].choice_blurb = "";
1811  values[110].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_66";
1812  values[110].choice_label = _("Control 66 Sustenuto Switch");
1813  values[110].choice_blurb = "";
1814  values[111].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_67";
1815  values[111].choice_label = _("Control 67 Soft Switch");
1816  values[111].choice_blurb = "";
1817  values[112].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_68";
1818  values[112].choice_label = _("Control 68 Legato Pedal Switch");
1819  values[112].choice_blurb = "";
1820  values[113].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_69";
1821  values[113].choice_label = _("Control 69 Hold Pedal Switch");
1822  values[113].choice_blurb = "";
1823  values[114].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_70";
1824  values[114].choice_label = _("Control 70 Sound Variation");
1825  values[114].choice_blurb = "";
1826  values[115].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_71";
1827  values[115].choice_label = _("Control 71 Filter Resonance (Timbre)");
1828  values[115].choice_blurb = "";
1829  values[116].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_72";
1830  values[116].choice_label = _("Control 72 Sound Release Time");
1831  values[116].choice_blurb = "";
1832  values[117].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_73";
1833  values[117].choice_label = _("Control 73 Sound Attack Time");
1834  values[117].choice_blurb = "";
1835  values[118].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_74";
1836  values[118].choice_label = _("Control 74 Sound Brightness");
1837  values[118].choice_blurb = "";
1838  values[119].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_75";
1839  values[119].choice_label = _("Control 75 Sound Decay Time");
1840  values[119].choice_blurb = "";
1841  values[120].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_76";
1842  values[120].choice_label = _("Control 76 Vibrato Rate");
1843  values[120].choice_blurb = "";
1844  values[121].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_77";
1845  values[121].choice_label = _("Control 77 Vibrato Depth");
1846  values[121].choice_blurb = "";
1847  values[122].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_78";
1848  values[122].choice_label = _("Control 78 Vibrato Delay");
1849  values[122].choice_blurb = "";
1850  values[123].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_79";
1851  values[123].choice_label = _("Control 79 Sound Control 10");
1852  values[123].choice_blurb = "";
1853  values[124].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_80";
1854  values[124].choice_label = _("Control 80 General Purpose Switch 5");
1855  values[124].choice_blurb = "";
1856  values[125].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_81";
1857  values[125].choice_label = _("Control 81 General Purpose Switch 6");
1858  values[125].choice_blurb = "";
1859  values[126].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_82";
1860  values[126].choice_label = _("Control 82 General Purpose Switch 7");
1861  values[126].choice_blurb = "";
1862  values[127].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_83";
1863  values[127].choice_label = _("Control 83 General Purpose Switch 8");
1864  values[127].choice_blurb = "";
1865  values[128].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_84";
1866  values[128].choice_label = _("Control 84 Portamento Control (Note)");
1867  values[128].choice_blurb = "";
1868  values[129].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_85";
1869  values[129].choice_label = _("control-85");
1870  values[129].choice_blurb = "";
1871  values[130].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_86";
1872  values[130].choice_label = _("control-86");
1873  values[130].choice_blurb = "";
1874  values[131].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_87";
1875  values[131].choice_label = _("control-87");
1876  values[131].choice_blurb = "";
1877  values[132].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_88";
1878  values[132].choice_label = _("control-88");
1879  values[132].choice_blurb = "";
1880  values[133].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_89";
1881  values[133].choice_label = _("control-89");
1882  values[133].choice_blurb = "";
1883  values[134].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_90";
1884  values[134].choice_label = _("control-90");
1885  values[134].choice_blurb = "";
1886  values[135].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_91";
1887  values[135].choice_label = _("Control 91 Reverb Depth");
1888  values[135].choice_blurb = "";
1889  values[136].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_92";
1890  values[136].choice_label = _("Control 92 Tremolo Depth");
1891  values[136].choice_blurb = "";
1892  values[137].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_93";
1893  values[137].choice_label = _("Control 93 Chorus Depth");
1894  values[137].choice_blurb = "";
1895  values[138].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_94";
1896  values[138].choice_label = _("Control 93 Detune Depth");
1897  values[138].choice_blurb = "";
1898  values[139].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_95";
1899  values[139].choice_label = _("Control 95 Phase Depth");
1900  values[139].choice_blurb = "";
1901  values[140].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_96";
1902  values[140].choice_label = _("Control 96 Data Increment Trigger");
1903  values[140].choice_blurb = "";
1904  values[141].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_97";
1905  values[141].choice_label = _("Control 97 Data Decrement Trigger");
1906  values[141].choice_blurb = "";
1907  values[142].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_98";
1908  values[142].choice_label = _("Control 98 Non-Registered Parameter MSB");
1909  values[142].choice_blurb = "";
1910  values[143].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_99";
1911  values[143].choice_label = _("Control 99 Non-Registered Parameter LSB");
1912  values[143].choice_blurb = "";
1913  values[144].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_100";
1914  values[144].choice_label = _("Control 100 Registered Parameter MSB");
1915  values[144].choice_blurb = "";
1916  values[145].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_101";
1917  values[145].choice_label = _("Control 101 Registered Parameter LSB");
1918  values[145].choice_blurb = "";
1919  values[146].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_102";
1920  values[146].choice_label = _("control-102");
1921  values[146].choice_blurb = "";
1922  values[147].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_103";
1923  values[147].choice_label = _("control-103");
1924  values[147].choice_blurb = "";
1925  values[148].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_104";
1926  values[148].choice_label = _("control-104");
1927  values[148].choice_blurb = "";
1928  values[149].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_105";
1929  values[149].choice_label = _("control-105");
1930  values[149].choice_blurb = "";
1931  values[150].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_106";
1932  values[150].choice_label = _("control-106");
1933  values[150].choice_blurb = "";
1934  values[151].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_107";
1935  values[151].choice_label = _("control-107");
1936  values[151].choice_blurb = "";
1937  values[152].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_108";
1938  values[152].choice_label = _("control-108");
1939  values[152].choice_blurb = "";
1940  values[153].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_109";
1941  values[153].choice_label = _("control-109");
1942  values[153].choice_blurb = "";
1943  values[154].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_110";
1944  values[154].choice_label = _("control-110");
1945  values[154].choice_blurb = "";
1946  values[155].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_111";
1947  values[155].choice_label = _("control-111");
1948  values[155].choice_blurb = "";
1949  values[156].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_112";
1950  values[156].choice_label = _("control-112");
1951  values[156].choice_blurb = "";
1952  values[157].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_113";
1953  values[157].choice_label = _("control-113");
1954  values[157].choice_blurb = "";
1955  values[158].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_114";
1956  values[158].choice_label = _("control-114");
1957  values[158].choice_blurb = "";
1958  values[159].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_115";
1959  values[159].choice_label = _("control-115");
1960  values[159].choice_blurb = "";
1961  values[160].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_116";
1962  values[160].choice_label = _("control-116");
1963  values[160].choice_blurb = "";
1964  values[161].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_117";
1965  values[161].choice_label = _("control-117");
1966  values[161].choice_blurb = "";
1967  values[162].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_118";
1968  values[162].choice_label = _("control-118");
1969  values[162].choice_blurb = "";
1970  values[163].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_119";
1971  values[163].choice_label = _("control-119");
1972  values[163].choice_blurb = "";
1973  values[164].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_120";
1974  values[164].choice_label = _("Control 120 All Sound Off ITrigger");
1975  values[164].choice_blurb = "";
1976  values[165].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_121";
1977  values[165].choice_label = _("Control 121 All Controllers Off ITrigger");
1978  values[165].choice_blurb = "";
1979  values[166].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_122";
1980  values[166].choice_label = _("Control 122 Local Control Switch");
1981  values[166].choice_blurb = "";
1982  values[167].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_123";
1983  values[167].choice_label = _("Control 123 All Notes Off ITrigger");
1984  values[167].choice_blurb = "";
1985  values[168].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_124";
1986  values[168].choice_label = _("Control 124 Omni Mode Off ITrigger");
1987  values[168].choice_blurb = "";
1988  values[169].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_125";
1989  values[169].choice_label = _("Control 125 Omni Mode On ITrigger");
1990  values[169].choice_blurb = "";
1991  values[170].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_126";
1992  values[170].choice_label = _("Control 126 Monophonic Voices Mode");
1993  values[170].choice_blurb = "";
1994  values[171].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_127";
1995  values[171].choice_label = _("Control 127 Polyphonic Mode On ITrigger");
1996  values[171].choice_blurb = "";
1997  }
1998  return choice_values;
1999 }
2000 
2001 static SfiChoiceValues
2002 MidiControlType_choice_values()
2003 {
2004  static SfiChoiceValue values[161];
2005  static const SfiChoiceValues choice_values = {
2006  G_N_ELEMENTS (values), values,
2007  };
2008  if (!values[0].choice_ident)
2009  {
2010  values[0].choice_ident = "BSE_MIDI_CONTROL_NONE";
2011  values[0].choice_label = _("None");
2012  values[0].choice_blurb = "";
2013  values[1].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_0";
2014  values[1].choice_label = _("Bank Select");
2015  values[1].choice_blurb = _("Continuous MIDI Control #1 - Bank Select");
2016  values[2].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_1";
2017  values[2].choice_label = _("Modulation Depth");
2018  values[2].choice_blurb = "";
2019  values[3].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_2";
2020  values[3].choice_label = _("Breath Control");
2021  values[3].choice_blurb = "";
2022  values[4].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_3";
2023  values[4].choice_label = _("Continuous 3");
2024  values[4].choice_blurb = "";
2025  values[5].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_4";
2026  values[5].choice_label = _("Foot Controller");
2027  values[5].choice_blurb = "";
2028  values[6].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_5";
2029  values[6].choice_label = _("Portamento Time");
2030  values[6].choice_blurb = "";
2031  values[7].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_6";
2032  values[7].choice_label = _("Data Entry");
2033  values[7].choice_blurb = "";
2034  values[8].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_7";
2035  values[8].choice_label = _("Volume");
2036  values[8].choice_blurb = "";
2037  values[9].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_8";
2038  values[9].choice_label = _("Balance");
2039  values[9].choice_blurb = "";
2040  values[10].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_9";
2041  values[10].choice_label = _("Continuous 9");
2042  values[10].choice_blurb = "";
2043  values[11].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_10";
2044  values[11].choice_label = _("Panorama");
2045  values[11].choice_blurb = "";
2046  values[12].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_11";
2047  values[12].choice_label = _("Expression");
2048  values[12].choice_blurb = "";
2049  values[13].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_12";
2050  values[13].choice_label = _("Effect Control 1");
2051  values[13].choice_blurb = "";
2052  values[14].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_13";
2053  values[14].choice_label = _("Effect Control 2");
2054  values[14].choice_blurb = "";
2055  values[15].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_14";
2056  values[15].choice_label = _("Continuous 14");
2057  values[15].choice_blurb = "";
2058  values[16].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_15";
2059  values[16].choice_label = _("Continuous 15");
2060  values[16].choice_blurb = "";
2061  values[17].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_16";
2062  values[17].choice_label = _("General Purpose Controller 1");
2063  values[17].choice_blurb = "";
2064  values[18].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_17";
2065  values[18].choice_label = _("General Purpose Controller 2");
2066  values[18].choice_blurb = "";
2067  values[19].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_18";
2068  values[19].choice_label = _("General Purpose Controller 3");
2069  values[19].choice_blurb = "";
2070  values[20].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_19";
2071  values[20].choice_label = _("General Purpose Controller 4");
2072  values[20].choice_blurb = "";
2073  values[21].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_20";
2074  values[21].choice_label = _("Continuous 20");
2075  values[21].choice_blurb = "";
2076  values[22].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_21";
2077  values[22].choice_label = _("Continuous 21");
2078  values[22].choice_blurb = "";
2079  values[23].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_22";
2080  values[23].choice_label = _("Continuous 22");
2081  values[23].choice_blurb = "";
2082  values[24].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_23";
2083  values[24].choice_label = _("Continuous 23");
2084  values[24].choice_blurb = "";
2085  values[25].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_24";
2086  values[25].choice_label = _("Continuous 24");
2087  values[25].choice_blurb = "";
2088  values[26].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_25";
2089  values[26].choice_label = _("Continuous 25");
2090  values[26].choice_blurb = "";
2091  values[27].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_26";
2092  values[27].choice_label = _("Continuous 26");
2093  values[27].choice_blurb = "";
2094  values[28].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_27";
2095  values[28].choice_label = _("Continuous 27");
2096  values[28].choice_blurb = "";
2097  values[29].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_28";
2098  values[29].choice_label = _("Continuous 28");
2099  values[29].choice_blurb = "";
2100  values[30].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_29";
2101  values[30].choice_label = _("Continuous 29");
2102  values[30].choice_blurb = "";
2103  values[31].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_30";
2104  values[31].choice_label = _("Continuous 30");
2105  values[31].choice_blurb = "";
2106  values[32].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_31";
2107  values[32].choice_label = _("Continuous 31");
2108  values[32].choice_blurb = "";
2109  values[33].choice_ident = "BSE_MIDI_CONTROL_0";
2110  values[33].choice_label = _("Control 0 Bank Select MSB");
2111  values[33].choice_blurb = "";
2112  values[34].choice_ident = "BSE_MIDI_CONTROL_1";
2113  values[34].choice_label = _("Control 1 Modulation Depth MSB");
2114  values[34].choice_blurb = "";
2115  values[35].choice_ident = "BSE_MIDI_CONTROL_2";
2116  values[35].choice_label = _("Control 2 Breath Control MSB");
2117  values[35].choice_blurb = "";
2118  values[36].choice_ident = "BSE_MIDI_CONTROL_3";
2119  values[36].choice_label = _("control-3");
2120  values[36].choice_blurb = "";
2121  values[37].choice_ident = "BSE_MIDI_CONTROL_4";
2122  values[37].choice_label = _("Control 4 Foot Controller MSB");
2123  values[37].choice_blurb = "";
2124  values[38].choice_ident = "BSE_MIDI_CONTROL_5";
2125  values[38].choice_label = _("Control 5 Portamento Time MSB");
2126  values[38].choice_blurb = "";
2127  values[39].choice_ident = "BSE_MIDI_CONTROL_6";
2128  values[39].choice_label = _("Control 6 Data Entry MSB");
2129  values[39].choice_blurb = "";
2130  values[40].choice_ident = "BSE_MIDI_CONTROL_7";
2131  values[40].choice_label = _("Control 7 Volume MSB");
2132  values[40].choice_blurb = "";
2133  values[41].choice_ident = "BSE_MIDI_CONTROL_8";
2134  values[41].choice_label = _("Control 8 Balance MSB");
2135  values[41].choice_blurb = "";
2136  values[42].choice_ident = "BSE_MIDI_CONTROL_9";
2137  values[42].choice_label = _("control-9");
2138  values[42].choice_blurb = "";
2139  values[43].choice_ident = "BSE_MIDI_CONTROL_10";
2140  values[43].choice_label = _("Control 10 Panorama MSB");
2141  values[43].choice_blurb = "";
2142  values[44].choice_ident = "BSE_MIDI_CONTROL_11";
2143  values[44].choice_label = _("Control 11 Expression MSB");
2144  values[44].choice_blurb = "";
2145  values[45].choice_ident = "BSE_MIDI_CONTROL_12";
2146  values[45].choice_label = _("Control 12 Effect Control 1 MSB");
2147  values[45].choice_blurb = "";
2148  values[46].choice_ident = "BSE_MIDI_CONTROL_13";
2149  values[46].choice_label = _("Control 13 Effect Control 2 MSB");
2150  values[46].choice_blurb = "";
2151  values[47].choice_ident = "BSE_MIDI_CONTROL_14";
2152  values[47].choice_label = _("control-14");
2153  values[47].choice_blurb = "";
2154  values[48].choice_ident = "BSE_MIDI_CONTROL_15";
2155  values[48].choice_label = _("control-15");
2156  values[48].choice_blurb = "";
2157  values[49].choice_ident = "BSE_MIDI_CONTROL_16";
2158  values[49].choice_label = _("Control 16 General Purpose Controller 1 MSB");
2159  values[49].choice_blurb = "";
2160  values[50].choice_ident = "BSE_MIDI_CONTROL_17";
2161  values[50].choice_label = _("Control 17 General Purpose Controller 2 MSB");
2162  values[50].choice_blurb = "";
2163  values[51].choice_ident = "BSE_MIDI_CONTROL_18";
2164  values[51].choice_label = _("Control 18 General Purpose Controller 3 MSB");
2165  values[51].choice_blurb = "";
2166  values[52].choice_ident = "BSE_MIDI_CONTROL_19";
2167  values[52].choice_label = _("Control 19 General Purpose Controller 4 MSB");
2168  values[52].choice_blurb = "";
2169  values[53].choice_ident = "BSE_MIDI_CONTROL_20";
2170  values[53].choice_label = _("control-20");
2171  values[53].choice_blurb = "";
2172  values[54].choice_ident = "BSE_MIDI_CONTROL_21";
2173  values[54].choice_label = _("control-21");
2174  values[54].choice_blurb = "";
2175  values[55].choice_ident = "BSE_MIDI_CONTROL_22";
2176  values[55].choice_label = _("control-22");
2177  values[55].choice_blurb = "";
2178  values[56].choice_ident = "BSE_MIDI_CONTROL_23";
2179  values[56].choice_label = _("control-23");
2180  values[56].choice_blurb = "";
2181  values[57].choice_ident = "BSE_MIDI_CONTROL_24";
2182  values[57].choice_label = _("control-24");
2183  values[57].choice_blurb = "";
2184  values[58].choice_ident = "BSE_MIDI_CONTROL_25";
2185  values[58].choice_label = _("control-25");
2186  values[58].choice_blurb = "";
2187  values[59].choice_ident = "BSE_MIDI_CONTROL_26";
2188  values[59].choice_label = _("control-26");
2189  values[59].choice_blurb = "";
2190  values[60].choice_ident = "BSE_MIDI_CONTROL_27";
2191  values[60].choice_label = _("control-27");
2192  values[60].choice_blurb = "";
2193  values[61].choice_ident = "BSE_MIDI_CONTROL_28";
2194  values[61].choice_label = _("control-28");
2195  values[61].choice_blurb = "";
2196  values[62].choice_ident = "BSE_MIDI_CONTROL_29";
2197  values[62].choice_label = _("control-29");
2198  values[62].choice_blurb = "";
2199  values[63].choice_ident = "BSE_MIDI_CONTROL_30";
2200  values[63].choice_label = _("control-30");
2201  values[63].choice_blurb = "";
2202  values[64].choice_ident = "BSE_MIDI_CONTROL_31";
2203  values[64].choice_label = _("control-31");
2204  values[64].choice_blurb = "";
2205  values[65].choice_ident = "BSE_MIDI_CONTROL_32";
2206  values[65].choice_label = _("Control 32 Bank Select LSB");
2207  values[65].choice_blurb = "";
2208  values[66].choice_ident = "BSE_MIDI_CONTROL_33";
2209  values[66].choice_label = _("Control 33 Modulation Depth LSB");
2210  values[66].choice_blurb = "";
2211  values[67].choice_ident = "BSE_MIDI_CONTROL_34";
2212  values[67].choice_label = _("Control 34 Breath Control LSB");
2213  values[67].choice_blurb = "";
2214  values[68].choice_ident = "BSE_MIDI_CONTROL_35";
2215  values[68].choice_label = _("control-35");
2216  values[68].choice_blurb = "";
2217  values[69].choice_ident = "BSE_MIDI_CONTROL_36";
2218  values[69].choice_label = _("Control 36 Foot Controller LSB");
2219  values[69].choice_blurb = "";
2220  values[70].choice_ident = "BSE_MIDI_CONTROL_37";
2221  values[70].choice_label = _("Control 37 Portamento Time LSB");
2222  values[70].choice_blurb = "";
2223  values[71].choice_ident = "BSE_MIDI_CONTROL_38";
2224  values[71].choice_label = _("Control 38 Data Entry LSB");
2225  values[71].choice_blurb = "";
2226  values[72].choice_ident = "BSE_MIDI_CONTROL_39";
2227  values[72].choice_label = _("Control 39 Volume LSB");
2228  values[72].choice_blurb = "";
2229  values[73].choice_ident = "BSE_MIDI_CONTROL_40";
2230  values[73].choice_label = _("Control 40 Balance LSB");
2231  values[73].choice_blurb = "";
2232  values[74].choice_ident = "BSE_MIDI_CONTROL_41";
2233  values[74].choice_label = _("control-41");
2234  values[74].choice_blurb = "";
2235  values[75].choice_ident = "BSE_MIDI_CONTROL_42";
2236  values[75].choice_label = _("Control 42 Panorama LSB");
2237  values[75].choice_blurb = "";
2238  values[76].choice_ident = "BSE_MIDI_CONTROL_43";
2239  values[76].choice_label = _("Control 43 Expression LSB");
2240  values[76].choice_blurb = "";
2241  values[77].choice_ident = "BSE_MIDI_CONTROL_44";
2242  values[77].choice_label = _("Control 44 Effect Control 1 LSB");
2243  values[77].choice_blurb = "";
2244  values[78].choice_ident = "BSE_MIDI_CONTROL_45";
2245  values[78].choice_label = _("Control 45 Effect Control 2 LSB");
2246  values[78].choice_blurb = "";
2247  values[79].choice_ident = "BSE_MIDI_CONTROL_46";
2248  values[79].choice_label = _("control-46");
2249  values[79].choice_blurb = "";
2250  values[80].choice_ident = "BSE_MIDI_CONTROL_47";
2251  values[80].choice_label = _("control-47");
2252  values[80].choice_blurb = "";
2253  values[81].choice_ident = "BSE_MIDI_CONTROL_48";
2254  values[81].choice_label = _("Control 48 General Purpose Controller 1 LSB");
2255  values[81].choice_blurb = "";
2256  values[82].choice_ident = "BSE_MIDI_CONTROL_49";
2257  values[82].choice_label = _("Control 49 General Purpose Controller 2 LSB");
2258  values[82].choice_blurb = "";
2259  values[83].choice_ident = "BSE_MIDI_CONTROL_50";
2260  values[83].choice_label = _("Control 50 General Purpose Controller 3 LSB");
2261  values[83].choice_blurb = "";
2262  values[84].choice_ident = "BSE_MIDI_CONTROL_51";
2263  values[84].choice_label = _("Control 51 General Purpose Controller 4 LSB");
2264  values[84].choice_blurb = "";
2265  values[85].choice_ident = "BSE_MIDI_CONTROL_52";
2266  values[85].choice_label = _("control-52");
2267  values[85].choice_blurb = "";
2268  values[86].choice_ident = "BSE_MIDI_CONTROL_53";
2269  values[86].choice_label = _("control-53");
2270  values[86].choice_blurb = "";
2271  values[87].choice_ident = "BSE_MIDI_CONTROL_54";
2272  values[87].choice_label = _("control-54");
2273  values[87].choice_blurb = "";
2274  values[88].choice_ident = "BSE_MIDI_CONTROL_55";
2275  values[88].choice_label = _("control-55");
2276  values[88].choice_blurb = "";
2277  values[89].choice_ident = "BSE_MIDI_CONTROL_56";
2278  values[89].choice_label = _("control-56");
2279  values[89].choice_blurb = "";
2280  values[90].choice_ident = "BSE_MIDI_CONTROL_57";
2281  values[90].choice_label = _("control-57");
2282  values[90].choice_blurb = "";
2283  values[91].choice_ident = "BSE_MIDI_CONTROL_58";
2284  values[91].choice_label = _("control-58");
2285  values[91].choice_blurb = "";
2286  values[92].choice_ident = "BSE_MIDI_CONTROL_59";
2287  values[92].choice_label = _("control-59");
2288  values[92].choice_blurb = "";
2289  values[93].choice_ident = "BSE_MIDI_CONTROL_60";
2290  values[93].choice_label = _("control-60");
2291  values[93].choice_blurb = "";
2292  values[94].choice_ident = "BSE_MIDI_CONTROL_61";
2293  values[94].choice_label = _("control-61");
2294  values[94].choice_blurb = "";
2295  values[95].choice_ident = "BSE_MIDI_CONTROL_62";
2296  values[95].choice_label = _("control-62");
2297  values[95].choice_blurb = "";
2298  values[96].choice_ident = "BSE_MIDI_CONTROL_63";
2299  values[96].choice_label = _("control-63");
2300  values[96].choice_blurb = "";
2301  values[97].choice_ident = "BSE_MIDI_CONTROL_64";
2302  values[97].choice_label = _("Control 64 Damper Pedal Switch (Sustain)");
2303  values[97].choice_blurb = "";
2304  values[98].choice_ident = "BSE_MIDI_CONTROL_65";
2305  values[98].choice_label = _("Control 65 Portamento Switch");
2306  values[98].choice_blurb = "";
2307  values[99].choice_ident = "BSE_MIDI_CONTROL_66";
2308  values[99].choice_label = _("Control 66 Sustenuto Switch");
2309  values[99].choice_blurb = "";
2310  values[100].choice_ident = "BSE_MIDI_CONTROL_67";
2311  values[100].choice_label = _("Control 67 Soft Switch");
2312  values[100].choice_blurb = "";
2313  values[101].choice_ident = "BSE_MIDI_CONTROL_68";
2314  values[101].choice_label = _("Control 68 Legato Pedal Switch");
2315  values[101].choice_blurb = "";
2316  values[102].choice_ident = "BSE_MIDI_CONTROL_69";
2317  values[102].choice_label = _("Control 69 Hold Pedal Switch");
2318  values[102].choice_blurb = "";
2319  values[103].choice_ident = "BSE_MIDI_CONTROL_70";
2320  values[103].choice_label = _("Control 70 Sound Variation");
2321  values[103].choice_blurb = "";
2322  values[104].choice_ident = "BSE_MIDI_CONTROL_71";
2323  values[104].choice_label = _("Control 71 Filter Resonance (Timbre)");
2324  values[104].choice_blurb = "";
2325  values[105].choice_ident = "BSE_MIDI_CONTROL_72";
2326  values[105].choice_label = _("Control 72 Sound Release Time");
2327  values[105].choice_blurb = "";
2328  values[106].choice_ident = "BSE_MIDI_CONTROL_73";
2329  values[106].choice_label = _("Control 73 Sound Attack Time");
2330  values[106].choice_blurb = "";
2331  values[107].choice_ident = "BSE_MIDI_CONTROL_74";
2332  values[107].choice_label = _("Control 74 Sound Brightness");
2333  values[107].choice_blurb = "";
2334  values[108].choice_ident = "BSE_MIDI_CONTROL_75";
2335  values[108].choice_label = _("Control 75 Sound Decay Time");
2336  values[108].choice_blurb = "";
2337  values[109].choice_ident = "BSE_MIDI_CONTROL_76";
2338  values[109].choice_label = _("Control 76 Vibrato Rate");
2339  values[109].choice_blurb = "";
2340  values[110].choice_ident = "BSE_MIDI_CONTROL_77";
2341  values[110].choice_label = _("Control 77 Vibrato Depth");
2342  values[110].choice_blurb = "";
2343  values[111].choice_ident = "BSE_MIDI_CONTROL_78";
2344  values[111].choice_label = _("Control 78 Vibrato Delay");
2345  values[111].choice_blurb = "";
2346  values[112].choice_ident = "BSE_MIDI_CONTROL_79";
2347  values[112].choice_label = _("Control 79 Sound Control 10");
2348  values[112].choice_blurb = "";
2349  values[113].choice_ident = "BSE_MIDI_CONTROL_80";
2350  values[113].choice_label = _("Control 80 General Purpose Switch 5");
2351  values[113].choice_blurb = "";
2352  values[114].choice_ident = "BSE_MIDI_CONTROL_81";
2353  values[114].choice_label = _("Control 81 General Purpose Switch 6");
2354  values[114].choice_blurb = "";
2355  values[115].choice_ident = "BSE_MIDI_CONTROL_82";
2356  values[115].choice_label = _("Control 82 General Purpose Switch 7");
2357  values[115].choice_blurb = "";
2358  values[116].choice_ident = "BSE_MIDI_CONTROL_83";
2359  values[116].choice_label = _("Control 83 General Purpose Switch 8");
2360  values[116].choice_blurb = "";
2361  values[117].choice_ident = "BSE_MIDI_CONTROL_84";
2362  values[117].choice_label = _("Control 84 Portamento Control (Note)");
2363  values[117].choice_blurb = "";
2364  values[118].choice_ident = "BSE_MIDI_CONTROL_85";
2365  values[118].choice_label = _("control-85");
2366  values[118].choice_blurb = "";
2367  values[119].choice_ident = "BSE_MIDI_CONTROL_86";
2368  values[119].choice_label = _("control-86");
2369  values[119].choice_blurb = "";
2370  values[120].choice_ident = "BSE_MIDI_CONTROL_87";
2371  values[120].choice_label = _("control-87");
2372  values[120].choice_blurb = "";
2373  values[121].choice_ident = "BSE_MIDI_CONTROL_88";
2374  values[121].choice_label = _("control-88");
2375  values[121].choice_blurb = "";
2376  values[122].choice_ident = "BSE_MIDI_CONTROL_89";
2377  values[122].choice_label = _("control-89");
2378  values[122].choice_blurb = "";
2379  values[123].choice_ident = "BSE_MIDI_CONTROL_90";
2380  values[123].choice_label = _("control-90");
2381  values[123].choice_blurb = "";
2382  values[124].choice_ident = "BSE_MIDI_CONTROL_91";
2383  values[124].choice_label = _("Control 91 Reverb Depth");
2384  values[124].choice_blurb = "";
2385  values[125].choice_ident = "BSE_MIDI_CONTROL_92";
2386  values[125].choice_label = _("Control 92 Tremolo Depth");
2387  values[125].choice_blurb = "";
2388  values[126].choice_ident = "BSE_MIDI_CONTROL_93";
2389  values[126].choice_label = _("Control 93 Chorus Depth");
2390  values[126].choice_blurb = "";
2391  values[127].choice_ident = "BSE_MIDI_CONTROL_94";
2392  values[127].choice_label = _("Control 93 Detune Depth");
2393  values[127].choice_blurb = "";
2394  values[128].choice_ident = "BSE_MIDI_CONTROL_95";
2395  values[128].choice_label = _("Control 95 Phase Depth");
2396  values[128].choice_blurb = "";
2397  values[129].choice_ident = "BSE_MIDI_CONTROL_96";
2398  values[129].choice_label = _("Control 96 Data Increment Trigger");
2399  values[129].choice_blurb = "";
2400  values[130].choice_ident = "BSE_MIDI_CONTROL_97";
2401  values[130].choice_label = _("Control 97 Data Decrement Trigger");
2402  values[130].choice_blurb = "";
2403  values[131].choice_ident = "BSE_MIDI_CONTROL_98";
2404  values[131].choice_label = _("Control 98 Non-Registered Parameter MSB");
2405  values[131].choice_blurb = "";
2406  values[132].choice_ident = "BSE_MIDI_CONTROL_99";
2407  values[132].choice_label = _("Control 99 Non-Registered Parameter LSB");
2408  values[132].choice_blurb = "";
2409  values[133].choice_ident = "BSE_MIDI_CONTROL_100";
2410  values[133].choice_label = _("Control 100 Registered Parameter MSB");
2411  values[133].choice_blurb = "";
2412  values[134].choice_ident = "BSE_MIDI_CONTROL_101";
2413  values[134].choice_label = _("Control 101 Registered Parameter LSB");
2414  values[134].choice_blurb = "";
2415  values[135].choice_ident = "BSE_MIDI_CONTROL_102";
2416  values[135].choice_label = _("control-102");
2417  values[135].choice_blurb = "";
2418  values[136].choice_ident = "BSE_MIDI_CONTROL_103";
2419  values[136].choice_label = _("control-103");
2420  values[136].choice_blurb = "";
2421  values[137].choice_ident = "BSE_MIDI_CONTROL_104";
2422  values[137].choice_label = _("control-104");
2423  values[137].choice_blurb = "";
2424  values[138].choice_ident = "BSE_MIDI_CONTROL_105";
2425  values[138].choice_label = _("control-105");
2426  values[138].choice_blurb = "";
2427  values[139].choice_ident = "BSE_MIDI_CONTROL_106";
2428  values[139].choice_label = _("control-106");
2429  values[139].choice_blurb = "";
2430  values[140].choice_ident = "BSE_MIDI_CONTROL_107";
2431  values[140].choice_label = _("control-107");
2432  values[140].choice_blurb = "";
2433  values[141].choice_ident = "BSE_MIDI_CONTROL_108";
2434  values[141].choice_label = _("control-108");
2435  values[141].choice_blurb = "";
2436  values[142].choice_ident = "BSE_MIDI_CONTROL_109";
2437  values[142].choice_label = _("control-109");
2438  values[142].choice_blurb = "";
2439  values[143].choice_ident = "BSE_MIDI_CONTROL_110";
2440  values[143].choice_label = _("control-110");
2441  values[143].choice_blurb = "";
2442  values[144].choice_ident = "BSE_MIDI_CONTROL_111";
2443  values[144].choice_label = _("control-111");
2444  values[144].choice_blurb = "";
2445  values[145].choice_ident = "BSE_MIDI_CONTROL_112";
2446  values[145].choice_label = _("control-112");
2447  values[145].choice_blurb = "";
2448  values[146].choice_ident = "BSE_MIDI_CONTROL_113";
2449  values[146].choice_label = _("control-113");
2450  values[146].choice_blurb = "";
2451  values[147].choice_ident = "BSE_MIDI_CONTROL_114";
2452  values[147].choice_label = _("control-114");
2453  values[147].choice_blurb = "";
2454  values[148].choice_ident = "BSE_MIDI_CONTROL_115";
2455  values[148].choice_label = _("control-115");
2456  values[148].choice_blurb = "";
2457  values[149].choice_ident = "BSE_MIDI_CONTROL_116";
2458  values[149].choice_label = _("control-116");
2459  values[149].choice_blurb = "";
2460  values[150].choice_ident = "BSE_MIDI_CONTROL_117";
2461  values[150].choice_label = _("control-117");
2462  values[150].choice_blurb = "";
2463  values[151].choice_ident = "BSE_MIDI_CONTROL_118";
2464  values[151].choice_label = _("control-118");
2465  values[151].choice_blurb = "";
2466  values[152].choice_ident = "BSE_MIDI_CONTROL_119";
2467  values[152].choice_label = _("control-119");
2468  values[152].choice_blurb = "";
2469  values[153].choice_ident = "BSE_MIDI_CONTROL_120";
2470  values[153].choice_label = _("Control 120 All Sound Off ITrigger");
2471  values[153].choice_blurb = "";
2472  values[154].choice_ident = "BSE_MIDI_CONTROL_121";
2473  values[154].choice_label = _("Control 121 All Controllers Off ITrigger");
2474  values[154].choice_blurb = "";
2475  values[155].choice_ident = "BSE_MIDI_CONTROL_122";
2476  values[155].choice_label = _("Control 122 Local Control Switch");
2477  values[155].choice_blurb = "";
2478  values[156].choice_ident = "BSE_MIDI_CONTROL_123";
2479  values[156].choice_label = _("Control 123 All Notes Off ITrigger");
2480  values[156].choice_blurb = "";
2481  values[157].choice_ident = "BSE_MIDI_CONTROL_124";
2482  values[157].choice_label = _("Control 124 Omni Mode Off ITrigger");
2483  values[157].choice_blurb = "";
2484  values[158].choice_ident = "BSE_MIDI_CONTROL_125";
2485  values[158].choice_label = _("Control 125 Omni Mode On ITrigger");
2486  values[158].choice_blurb = "";
2487  values[159].choice_ident = "BSE_MIDI_CONTROL_126";
2488  values[159].choice_label = _("Control 126 Monophonic Voices Mode");
2489  values[159].choice_blurb = "";
2490  values[160].choice_ident = "BSE_MIDI_CONTROL_127";
2491  values[160].choice_label = _("Control 127 Polyphonic Mode On ITrigger");
2492  values[160].choice_blurb = "";
2493  }
2494  return choice_values;
2495 }
2496 
2497 static SfiChoiceValues
2498 MidiChannelEventType_choice_values()
2499 {
2500  static SfiChoiceValue values[18];
2501  static const SfiChoiceValues choice_values = {
2502  G_N_ELEMENTS (values), values,
2503  };
2504  if (!values[0].choice_ident)
2505  {
2506  values[0].choice_ident = "BSE_MIDI_EVENT_NONE";
2507  values[0].choice_label = "bse-midi-event-none";
2508  values[0].choice_blurb = "";
2509  values[1].choice_ident = "BSE_MIDI_EVENT_NOTE_OFF";
2510  values[1].choice_label = "bse-midi-event-note-off";
2511  values[1].choice_blurb = "";
2512  values[2].choice_ident = "BSE_MIDI_EVENT_NOTE_ON";
2513  values[2].choice_label = "bse-midi-event-note-on";
2514  values[2].choice_blurb = "";
2515  values[3].choice_ident = "BSE_MIDI_EVENT_KEY_PRESSURE";
2516  values[3].choice_label = "bse-midi-event-key-pressure";
2517  values[3].choice_blurb = "";
2518  values[4].choice_ident = "BSE_MIDI_EVENT_CONTROL_CHANGE";
2519  values[4].choice_label = "bse-midi-event-control-change";
2520  values[4].choice_blurb = "";
2521  values[5].choice_ident = "BSE_MIDI_EVENT_PROGRAM_CHANGE";
2522  values[5].choice_label = "bse-midi-event-program-change";
2523  values[5].choice_blurb = "";
2524  values[6].choice_ident = "BSE_MIDI_EVENT_CHANNEL_PRESSURE";
2525  values[6].choice_label = "bse-midi-event-channel-pressure";
2526  values[6].choice_blurb = "";
2527  values[7].choice_ident = "BSE_MIDI_EVENT_PITCH_BEND";
2528  values[7].choice_label = "bse-midi-event-pitch-bend";
2529  values[7].choice_blurb = "";
2530  values[8].choice_ident = "BSE_MIDI_EVENT_SYS_EX";
2531  values[8].choice_label = "bse-midi-event-sys-ex";
2532  values[8].choice_blurb = "";
2533  values[9].choice_ident = "BSE_MIDI_EVENT_SONG_POINTER";
2534  values[9].choice_label = "bse-midi-event-song-pointer";
2535  values[9].choice_blurb = "";
2536  values[10].choice_ident = "BSE_MIDI_EVENT_SONG_SELECT";
2537  values[10].choice_label = "bse-midi-event-song-select";
2538  values[10].choice_blurb = "";
2539  values[11].choice_ident = "BSE_MIDI_EVENT_TUNE";
2540  values[11].choice_label = "bse-midi-event-tune";
2541  values[11].choice_blurb = "";
2542  values[12].choice_ident = "BSE_MIDI_EVENT_TIMING_CLOCK";
2543  values[12].choice_label = "bse-midi-event-timing-clock";
2544  values[12].choice_blurb = "";
2545  values[13].choice_ident = "BSE_MIDI_EVENT_SONG_START";
2546  values[13].choice_label = "bse-midi-event-song-start";
2547  values[13].choice_blurb = "";
2548  values[14].choice_ident = "BSE_MIDI_EVENT_SONG_CONTINUE";
2549  values[14].choice_label = "bse-midi-event-song-continue";
2550  values[14].choice_blurb = "";
2551  values[15].choice_ident = "BSE_MIDI_EVENT_SONG_STOP";
2552  values[15].choice_label = "bse-midi-event-song-stop";
2553  values[15].choice_blurb = "";
2554  values[16].choice_ident = "BSE_MIDI_EVENT_ACTIVE_SENSING";
2555  values[16].choice_label = "bse-midi-event-active-sensing";
2556  values[16].choice_blurb = "";
2557  values[17].choice_ident = "BSE_MIDI_EVENT_SYSTEM_RESET";
2558  values[17].choice_label = "bse-midi-event-system-reset";
2559  values[17].choice_blurb = "";
2560  }
2561  return choice_values;
2562 }
2563 
2564 
2565 
2566 /* record implementations */
2568 MidiChannelEvent::from_rec (SfiRec *sfi_rec)
2569 {
2570  GValue *element;
2571 
2572  if (!sfi_rec)
2573  return Sfi::INIT_NULL;
2574 
2575  ::Bse::MidiChannelEventHandle rec = Sfi::INIT_DEFAULT;
2576  element = sfi_rec_get (sfi_rec, "event_type");
2577  if (element)
2578  rec->event_type = (::Bse::MidiChannelEventType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS1 (element);
2579  element = sfi_rec_get (sfi_rec, "channel");
2580  if (element)
2581  rec->channel = sfi_value_get_int (element);
2582  element = sfi_rec_get (sfi_rec, "tick_stamp");
2583  if (element)
2584  rec->tick_stamp = sfi_value_get_num (element);
2585  element = sfi_rec_get (sfi_rec, "frequency");
2586  if (element)
2587  rec->frequency = sfi_value_get_real (element);
2588  element = sfi_rec_get (sfi_rec, "velocity");
2589  if (element)
2590  rec->velocity = sfi_value_get_real (element);
2591  element = sfi_rec_get (sfi_rec, "control");
2592  if (element)
2593  rec->control = sfi_value_get_int (element);
2594  element = sfi_rec_get (sfi_rec, "value");
2595  if (element)
2596  rec->value = sfi_value_get_real (element);
2597  element = sfi_rec_get (sfi_rec, "program");
2598  if (element)
2599  rec->program = sfi_value_get_int (element);
2600  element = sfi_rec_get (sfi_rec, "intensity");
2601  if (element)
2602  rec->intensity = sfi_value_get_real (element);
2603  element = sfi_rec_get (sfi_rec, "pitch_bend");
2604  if (element)
2605  rec->pitch_bend = sfi_value_get_real (element);
2606  element = sfi_rec_get (sfi_rec, "song_pointer");
2607  if (element)
2608  rec->song_pointer = sfi_value_get_int (element);
2609  element = sfi_rec_get (sfi_rec, "song_number");
2610  if (element)
2611  rec->song_number = sfi_value_get_int (element);
2612  return rec;
2613 }
2614 
2615 SfiRec *
2616 MidiChannelEvent::to_rec (const ::Bse::MidiChannelEventHandle & rec)
2617 {
2618  SfiRec *sfi_rec;
2619  GValue *element;
2620 
2621  if (!rec)
2622  return NULL;
2623 
2624  sfi_rec = sfi_rec_new ();
2625  element = sfi_rec_forced_get (sfi_rec, "event_type", SFI_TYPE_CHOICE);
2626  sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS2 (element, rec->event_type);
2627  element = sfi_rec_forced_get (sfi_rec, "channel", SFI_TYPE_INT);
2628  sfi_value_set_int (element, rec->channel);
2629  element = sfi_rec_forced_get (sfi_rec, "tick_stamp", SFI_TYPE_NUM);
2630  sfi_value_set_num (element, rec->tick_stamp);
2631  element = sfi_rec_forced_get (sfi_rec, "frequency", SFI_TYPE_REAL);
2632  sfi_value_set_real (element, rec->frequency);
2633  element = sfi_rec_forced_get (sfi_rec, "velocity", SFI_TYPE_REAL);
2634  sfi_value_set_real (element, rec->velocity);
2635  element = sfi_rec_forced_get (sfi_rec, "control", SFI_TYPE_INT);
2636  sfi_value_set_int (element, rec->control);
2637  element = sfi_rec_forced_get (sfi_rec, "value", SFI_TYPE_REAL);
2638  sfi_value_set_real (element, rec->value);
2639  element = sfi_rec_forced_get (sfi_rec, "program", SFI_TYPE_INT);
2640  sfi_value_set_int (element, rec->program);
2641  element = sfi_rec_forced_get (sfi_rec, "intensity", SFI_TYPE_REAL);
2642  sfi_value_set_real (element, rec->intensity);
2643  element = sfi_rec_forced_get (sfi_rec, "pitch_bend", SFI_TYPE_REAL);
2644  sfi_value_set_real (element, rec->pitch_bend);
2645  element = sfi_rec_forced_get (sfi_rec, "song_pointer", SFI_TYPE_INT);
2646  sfi_value_set_int (element, rec->song_pointer);
2647  element = sfi_rec_forced_get (sfi_rec, "song_number", SFI_TYPE_INT);
2648  sfi_value_set_int (element, rec->song_number);
2649  return sfi_rec;
2650 }
2651 
2652 ::Bse::MidiChannelEventHandle
2653 MidiChannelEvent::value_get_boxed (const GValue *value)
2654 {
2655  return ::Bse::MidiChannelEventHandle::value_get_boxed (value);
2656 }
2657 
2658 void
2659 MidiChannelEvent::value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self)
2660 {
2661  ::Bse::MidiChannelEventHandle::value_set_boxed (value, self);
2662 }
2663 
2665 MidiChannelEvent::get_fields()
2666 {
2667  static SfiRecFields rfields = { 0, NULL };
2668  if (!rfields.n_fields)
2669  {
2670  static GParamSpec *fields[12 + 1];
2671  rfields.n_fields = 12;
2672  fields[0] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",485, "event_type", Bse::MidiChannelEventType_choice_values());
2673  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",486,"channel","Channel" , "" , 0LL , 0LL , 99LL , 1LL , ":readwrite");
2674  fields[2] = sfidl_pspec_SfiNum (NULL,"/opt/src/beast/bse/bsebasics.idl",487,"tick_stamp","Time Stamp" , "" , 0LL , 0LL , SFI_MAXNUM , 0LL , ":r:w:S:G:");
2675  fields[3] = sfidl_pspec_Freq (NULL,"/opt/src/beast/bse/bsebasics.idl",489,"frequency","Frequency" , "" , KAMMER_FREQ , ":readwrite");
2676  fields[4] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",490,"velocity","Velocity" , "" , 1LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
2677  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",492,"control","Control Number" , "" , 0LL , 0LL , 1024LL , 8LL , ":readwrite");
2678  fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",493,"value","Value" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
2679  fields[7] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",495,"program","Program" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
2680  fields[8] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",497,"intensity","Intensity" , "" , 0LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
2681  fields[9] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",499,"pitch_bend","Pitch Bend" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
2682  fields[10] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",501,"song_pointer","Song Pointer" , "" , 0LL , 0LL , 16383LL , 128LL , ":readwrite");
2683  fields[11] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",503,"song_number","Song Number" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
2684  rfields.fields = fields;
2685  }
2686  return rfields;
2687 }
2689 PropertyCandidates::from_rec (SfiRec *sfi_rec)
2690 {
2691  GValue *element;
2692 
2693  if (!sfi_rec)
2694  return Sfi::INIT_NULL;
2695 
2696  ::Bse::PropertyCandidatesHandle rec = Sfi::INIT_DEFAULT;
2697  element = sfi_rec_get (sfi_rec, "label");
2698  if (element)
2699  rec->label = ::Sfi::String::value_get_string (element);
2700  element = sfi_rec_get (sfi_rec, "tooltip");
2701  if (element)
2702  rec->tooltip = ::Sfi::String::value_get_string (element);
2703  element = sfi_rec_get (sfi_rec, "items");
2704  if (element)
2705  rec->items = ::Bse::ItemSeq::value_get_boxed (element);
2706  element = sfi_rec_get (sfi_rec, "partitions");
2707  if (element)
2708  rec->partitions = ::Bse::TypeSeq::value_get_boxed (element);
2709  return rec;
2710 }
2711 
2712 SfiRec *
2713 PropertyCandidates::to_rec (const ::Bse::PropertyCandidatesHandle & rec)
2714 {
2715  SfiRec *sfi_rec;
2716  GValue *element;
2717 
2718  if (!rec)
2719  return NULL;
2720 
2721  sfi_rec = sfi_rec_new ();
2722  element = sfi_rec_forced_get (sfi_rec, "label", SFI_TYPE_STRING);
2723  ::Sfi::String::value_set_string (element, rec->label);
2724  element = sfi_rec_forced_get (sfi_rec, "tooltip", SFI_TYPE_STRING);
2725  ::Sfi::String::value_set_string (element, rec->tooltip);
2726  element = sfi_rec_forced_get (sfi_rec, "items", SFI_TYPE_SEQ);
2727  ::Bse::ItemSeq::value_set_boxed (element, rec->items);
2728  element = sfi_rec_forced_get (sfi_rec, "partitions", SFI_TYPE_SEQ);
2729  ::Bse::TypeSeq::value_set_boxed (element, rec->partitions);
2730  return sfi_rec;
2731 }
2732 
2734 PropertyCandidates::value_get_boxed (const GValue *value)
2735 {
2736  return ::Bse::PropertyCandidatesHandle::value_get_boxed (value);
2737 }
2738 
2739 void
2740 PropertyCandidates::value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self)
2741 {
2742  ::Bse::PropertyCandidatesHandle::value_set_boxed (value, self);
2743 }
2744 
2746 PropertyCandidates::get_fields()
2747 {
2748  static SfiRecFields rfields = { 0, NULL };
2749  if (!rfields.n_fields)
2750  {
2751  static GParamSpec *fields[4 + 1];
2752  rfields.n_fields = 4;
2753  fields[0] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",515,"label");
2754  fields[1] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",516,"tooltip");
2755  fields[2] = sfidl_pspec_Sequence_default (NULL,"/opt/src/beast/bse/bsebasics.idl",517, "items", Bse::ItemSeq::get_element());
2756  fields[3] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",518, "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());
2757  rfields.fields = fields;
2758  }
2759  return rfields;
2760 }
2762 PartNote::from_rec (SfiRec *sfi_rec)
2763 {
2764  GValue *element;
2765 
2766  if (!sfi_rec)
2767  return Sfi::INIT_NULL;
2768 
2769  ::Bse::PartNoteHandle rec = Sfi::INIT_DEFAULT;
2770  element = sfi_rec_get (sfi_rec, "id");
2771  if (element)
2772  rec->id = sfi_value_get_int (element);
2773  element = sfi_rec_get (sfi_rec, "channel");
2774  if (element)
2775  rec->channel = sfi_value_get_int (element);
2776  element = sfi_rec_get (sfi_rec, "tick");
2777  if (element)
2778  rec->tick = sfi_value_get_int (element);
2779  element = sfi_rec_get (sfi_rec, "duration");
2780  if (element)
2781  rec->duration = sfi_value_get_int (element);
2782  element = sfi_rec_get (sfi_rec, "note");
2783  if (element)
2784  rec->note = sfi_value_get_int (element);
2785  element = sfi_rec_get (sfi_rec, "fine_tune");
2786  if (element)
2787  rec->fine_tune = sfi_value_get_int (element);
2788  element = sfi_rec_get (sfi_rec, "velocity");
2789  if (element)
2790  rec->velocity = sfi_value_get_real (element);
2791  element = sfi_rec_get (sfi_rec, "selected");
2792  if (element)
2793  rec->selected = sfi_value_get_bool (element);
2794  return rec;
2795 }
2796 
2797 SfiRec *
2798 PartNote::to_rec (const ::Bse::PartNoteHandle & rec)
2799 {
2800  SfiRec *sfi_rec;
2801  GValue *element;
2802 
2803  if (!rec)
2804  return NULL;
2805 
2806  sfi_rec = sfi_rec_new ();
2807  element = sfi_rec_forced_get (sfi_rec, "id", SFI_TYPE_INT);
2808  sfi_value_set_int (element, rec->id);
2809  element = sfi_rec_forced_get (sfi_rec, "channel", SFI_TYPE_INT);
2810  sfi_value_set_int (element, rec->channel);
2811  element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
2812  sfi_value_set_int (element, rec->tick);
2813  element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
2814  sfi_value_set_int (element, rec->duration);
2815  element = sfi_rec_forced_get (sfi_rec, "note", SFI_TYPE_INT);
2816  sfi_value_set_int (element, rec->note);
2817  element = sfi_rec_forced_get (sfi_rec, "fine_tune", SFI_TYPE_INT);
2818  sfi_value_set_int (element, rec->fine_tune);
2819  element = sfi_rec_forced_get (sfi_rec, "velocity", SFI_TYPE_REAL);
2820  sfi_value_set_real (element, rec->velocity);
2821  element = sfi_rec_forced_get (sfi_rec, "selected", SFI_TYPE_BOOL);
2822  sfi_value_set_bool (element, rec->selected);
2823  return sfi_rec;
2824 }
2825 
2827 PartNote::value_get_boxed (const GValue *value)
2828 {
2829  return ::Bse::PartNoteHandle::value_get_boxed (value);
2830 }
2831 
2832 void
2833 PartNote::value_set_boxed (GValue *value, const ::Bse::PartNoteHandle & self)
2834 {
2835  ::Bse::PartNoteHandle::value_set_boxed (value, self);
2836 }
2837 
2839 PartNote::get_fields()
2840 {
2841  static SfiRecFields rfields = { 0, NULL };
2842  if (!rfields.n_fields)
2843  {
2844  static GParamSpec *fields[8 + 1];
2845  rfields.n_fields = 8;
2846  fields[0] = sfidl_pspec_SfiUInt (NULL,"/opt/src/beast/bse/bsebasics.idl",523,"id","ID" , "" , 0LL , ":readwrite");
2847  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",524,"channel","Channel" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
2848  fields[2] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",525,"tick","Tick" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
2849  fields[3] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",526,"duration","Duration" , "Duration in number of ticks" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
2850  fields[4] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",527,"note","Note" , "" , KAMMER_NOTE , ":readwrite");
2851  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",528,"fine_tune","Fine Tune" , "" , 0LL , MIN_FINE_TUNE , MAX_FINE_TUNE , 1LL , ":readwrite");
2852  fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",529,"velocity","Velocity" , "" , 1LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
2853  fields[7] = sfidl_pspec_SfiBool (NULL,"/opt/src/beast/bse/bsebasics.idl",530,"selected","Selected" , "" , FALSE , ":readwrite");
2854  rfields.fields = fields;
2855  }
2856  return rfields;
2857 }
2859 PartControl::from_rec (SfiRec *sfi_rec)
2860 {
2861  GValue *element;
2862 
2863  if (!sfi_rec)
2864  return Sfi::INIT_NULL;
2865 
2866  ::Bse::PartControlHandle rec = Sfi::INIT_DEFAULT;
2867  element = sfi_rec_get (sfi_rec, "id");
2868  if (element)
2869  rec->id = sfi_value_get_int (element);
2870  element = sfi_rec_get (sfi_rec, "tick");
2871  if (element)
2872  rec->tick = sfi_value_get_int (element);
2873  element = sfi_rec_get (sfi_rec, "control_type");
2874  if (element)
2875  rec->control_type = (::Bse::MidiSignalType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_SIGNAL_TYPE, SFI_END_ARGS1 (element);
2876  element = sfi_rec_get (sfi_rec, "value");
2877  if (element)
2878  rec->value = sfi_value_get_real (element);
2879  element = sfi_rec_get (sfi_rec, "selected");
2880  if (element)
2881  rec->selected = sfi_value_get_bool (element);
2882  return rec;
2883 }
2884 
2885 SfiRec *
2886 PartControl::to_rec (const ::Bse::PartControlHandle & rec)
2887 {
2888  SfiRec *sfi_rec;
2889  GValue *element;
2890 
2891  if (!rec)
2892  return NULL;
2893 
2894  sfi_rec = sfi_rec_new ();
2895  element = sfi_rec_forced_get (sfi_rec, "id", SFI_TYPE_INT);
2896  sfi_value_set_int (element, rec->id);
2897  element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
2898  sfi_value_set_int (element, rec->tick);
2899  element = sfi_rec_forced_get (sfi_rec, "control_type", SFI_TYPE_CHOICE);
2900  sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_SIGNAL_TYPE, SFI_END_ARGS2 (element, rec->control_type);
2901  element = sfi_rec_forced_get (sfi_rec, "value", SFI_TYPE_REAL);
2902  sfi_value_set_real (element, rec->value);
2903  element = sfi_rec_forced_get (sfi_rec, "selected", SFI_TYPE_BOOL);
2904  sfi_value_set_bool (element, rec->selected);
2905  return sfi_rec;
2906 }
2907 
2908 ::Bse::PartControlHandle
2909 PartControl::value_get_boxed (const GValue *value)
2910 {
2911  return ::Bse::PartControlHandle::value_get_boxed (value);
2912 }
2913 
2914 void
2915 PartControl::value_set_boxed (GValue *value, const ::Bse::PartControlHandle & self)
2916 {
2917  ::Bse::PartControlHandle::value_set_boxed (value, self);
2918 }
2919 
2921 PartControl::get_fields()
2922 {
2923  static SfiRecFields rfields = { 0, NULL };
2924  if (!rfields.n_fields)
2925  {
2926  static GParamSpec *fields[5 + 1];
2927  rfields.n_fields = 5;
2928  fields[0] = sfidl_pspec_SfiUInt (NULL,"/opt/src/beast/bse/bsebasics.idl",539,"id","ID" , "" , 0LL , ":readwrite");
2929  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",540,"tick","Tick" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
2930  fields[2] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",541, "control_type", Bse::MidiSignalType_choice_values());
2931  fields[3] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",542,"value","Value" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
2932  fields[4] = sfidl_pspec_SfiBool (NULL,"/opt/src/beast/bse/bsebasics.idl",543,"selected","Selected" , "" , FALSE , ":readwrite");
2933  rfields.fields = fields;
2934  }
2935  return rfields;
2936 }
2938 NoteDescription::from_rec (SfiRec *sfi_rec)
2939 {
2940  GValue *element;
2941 
2942  if (!sfi_rec)
2943  return Sfi::INIT_NULL;
2944 
2945  ::Bse::NoteDescriptionHandle rec = Sfi::INIT_DEFAULT;
2946  element = sfi_rec_get (sfi_rec, "musical_tuning");
2947  if (element)
2948  rec->musical_tuning = (::Bse::MusicalTuningType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MUSICAL_TUNING_TYPE, SFI_END_ARGS1 (element);
2949  element = sfi_rec_get (sfi_rec, "note");
2950  if (element)
2951  rec->note = sfi_value_get_int (element);
2952  element = sfi_rec_get (sfi_rec, "octave");
2953  if (element)
2954  rec->octave = sfi_value_get_int (element);
2955  element = sfi_rec_get (sfi_rec, "freq");
2956  if (element)
2957  rec->freq = sfi_value_get_real (element);
2958  element = sfi_rec_get (sfi_rec, "fine_tune");
2959  if (element)
2960  rec->fine_tune = sfi_value_get_int (element);
2961  element = sfi_rec_get (sfi_rec, "semitone");
2962  if (element)
2963  rec->semitone = sfi_value_get_int (element);
2964  element = sfi_rec_get (sfi_rec, "upshift");
2965  if (element)
2966  rec->upshift = sfi_value_get_bool (element);
2967  element = sfi_rec_get (sfi_rec, "letter");
2968  if (element)
2969  rec->letter = sfi_value_get_int (element);
2970  element = sfi_rec_get (sfi_rec, "name");
2971  if (element)
2972  rec->name = ::Sfi::String::value_get_string (element);
2973  element = sfi_rec_get (sfi_rec, "max_fine_tune");
2974  if (element)
2975  rec->max_fine_tune = sfi_value_get_int (element);
2976  element = sfi_rec_get (sfi_rec, "kammer_note");
2977  if (element)
2978  rec->kammer_note = sfi_value_get_int (element);
2979  return rec;
2980 }
2981 
2982 SfiRec *
2983 NoteDescription::to_rec (const ::Bse::NoteDescriptionHandle & rec)
2984 {
2985  SfiRec *sfi_rec;
2986  GValue *element;
2987 
2988  if (!rec)
2989  return NULL;
2990 
2991  sfi_rec = sfi_rec_new ();
2992  element = sfi_rec_forced_get (sfi_rec, "musical_tuning", SFI_TYPE_CHOICE);
2993  sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MUSICAL_TUNING_TYPE, SFI_END_ARGS2 (element, rec->musical_tuning);
2994  element = sfi_rec_forced_get (sfi_rec, "note", SFI_TYPE_INT);
2995  sfi_value_set_int (element, rec->note);
2996  element = sfi_rec_forced_get (sfi_rec, "octave", SFI_TYPE_INT);
2997  sfi_value_set_int (element, rec->octave);
2998  element = sfi_rec_forced_get (sfi_rec, "freq", SFI_TYPE_REAL);
2999  sfi_value_set_real (element, rec->freq);
3000  element = sfi_rec_forced_get (sfi_rec, "fine_tune", SFI_TYPE_INT);
3001  sfi_value_set_int (element, rec->fine_tune);
3002  element = sfi_rec_forced_get (sfi_rec, "semitone", SFI_TYPE_INT);
3003  sfi_value_set_int (element, rec->semitone);
3004  element = sfi_rec_forced_get (sfi_rec, "upshift", SFI_TYPE_BOOL);
3005  sfi_value_set_bool (element, rec->upshift);
3006  element = sfi_rec_forced_get (sfi_rec, "letter", SFI_TYPE_INT);
3007  sfi_value_set_int (element, rec->letter);
3008  element = sfi_rec_forced_get (sfi_rec, "name", SFI_TYPE_STRING);
3009  ::Sfi::String::value_set_string (element, rec->name);
3010  element = sfi_rec_forced_get (sfi_rec, "max_fine_tune", SFI_TYPE_INT);
3011  sfi_value_set_int (element, rec->max_fine_tune);
3012  element = sfi_rec_forced_get (sfi_rec, "kammer_note", SFI_TYPE_INT);
3013  sfi_value_set_int (element, rec->kammer_note);
3014  return sfi_rec;
3015 }
3016 
3017 ::Bse::NoteDescriptionHandle
3018 NoteDescription::value_get_boxed (const GValue *value)
3019 {
3020  return ::Bse::NoteDescriptionHandle::value_get_boxed (value);
3021 }
3022 
3023 void
3024 NoteDescription::value_set_boxed (GValue *value, const ::Bse::NoteDescriptionHandle & self)
3025 {
3026  ::Bse::NoteDescriptionHandle::value_set_boxed (value, self);
3027 }
3028 
3030 NoteDescription::get_fields()
3031 {
3032  static SfiRecFields rfields = { 0, NULL };
3033  if (!rfields.n_fields)
3034  {
3035  static GParamSpec *fields[11 + 1];
3036  rfields.n_fields = 11;
3037  fields[0] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",551, "musical_tuning", Bse::MusicalTuningType_choice_values());
3038  fields[1] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",552,"note","Note" , "" , KAMMER_NOTE , ":readwrite");
3039  fields[2] = sfidl_pspec_Octave (NULL,"/opt/src/beast/bse/bsebasics.idl",553,"octave","Octave" , "" , KAMMER_OCTAVE , ":readwrite");
3040  fields[3] = sfidl_pspec_Freq (NULL,"/opt/src/beast/bse/bsebasics.idl",554,"freq","Frequency" , "" , KAMMER_FREQ , ":readwrite");
3041  fields[4] = sfidl_pspec_FineTune (NULL,"/opt/src/beast/bse/bsebasics.idl",555,"fine_tune","Fine Tune" , "" , ":readwrite");
3042  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",556,"semitone","Semitone" , "" , 0LL , 0LL , 11LL , 1LL , ":readwrite");
3043  fields[6] = sfidl_pspec_Bool_default (NULL,"/opt/src/beast/bse/bsebasics.idl",557,"upshift");
3044  fields[7] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",558,"letter","Letter" , "International abbreviation letter for this note" , 64LL , 32LL , 126LL , 1LL , ":readwrite");
3045  fields[8] = sfidl_pspec_String (NULL,"/opt/src/beast/bse/bsebasics.idl",559,"name","Name" , "" , "" , ":readwrite");
3046  fields[9] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",561,"max_fine_tune","Max Fine Tune" , "" , MAX_FINE_TUNE , MAX_FINE_TUNE , MAX_FINE_TUNE , 0LL , ":readable");
3047  fields[10] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",562,"kammer_note","Kammer Note" , "" , KAMMER_NOTE , KAMMER_NOTE , KAMMER_NOTE , 0LL , ":readable");
3048  rfields.fields = fields;
3049  }
3050  return rfields;
3051 }
3053 NoteSequence::from_rec (SfiRec *sfi_rec)
3054 {
3055  GValue *element;
3056 
3057  if (!sfi_rec)
3058  return Sfi::INIT_NULL;
3059 
3060  ::Bse::NoteSequenceHandle rec = Sfi::INIT_DEFAULT;
3061  element = sfi_rec_get (sfi_rec, "offset");
3062  if (element)
3063  rec->offset = sfi_value_get_int (element);
3064  element = sfi_rec_get (sfi_rec, "notes");
3065  if (element)
3066  rec->notes = ::Bse::NoteSeq::value_get_boxed (element);
3067  return rec;
3068 }
3069 
3070 SfiRec *
3071 NoteSequence::to_rec (const ::Bse::NoteSequenceHandle & rec)
3072 {
3073  SfiRec *sfi_rec;
3074  GValue *element;
3075 
3076  if (!rec)
3077  return NULL;
3078 
3079  sfi_rec = sfi_rec_new ();
3080  element = sfi_rec_forced_get (sfi_rec, "offset", SFI_TYPE_INT);
3081  sfi_value_set_int (element, rec->offset);
3082  element = sfi_rec_forced_get (sfi_rec, "notes", SFI_TYPE_SEQ);
3083  ::Bse::NoteSeq::value_set_boxed (element, rec->notes);
3084  return sfi_rec;
3085 }
3086 
3088 NoteSequence::value_get_boxed (const GValue *value)
3089 {
3090  return ::Bse::NoteSequenceHandle::value_get_boxed (value);
3091 }
3092 
3093 void
3094 NoteSequence::value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self)
3095 {
3096  ::Bse::NoteSequenceHandle::value_set_boxed (value, self);
3097 }
3098 
3100 NoteSequence::get_fields()
3101 {
3102  static SfiRecFields rfields = { 0, NULL };
3103  if (!rfields.n_fields)
3104  {
3105  static GParamSpec *fields[2 + 1];
3106  rfields.n_fields = 2;
3107  fields[0] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",570,"offset","Note Offset" , "Center/base note" , KAMMER_NOTE , ":readwrite");
3108  fields[1] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",571, "notes", "Notes" , "Sequence of notes" , ":readwrite", Bse::NoteSeq::get_element());
3109  rfields.fields = fields;
3110  }
3111  return rfields;
3112 }
3114 Icon::from_rec (SfiRec *sfi_rec)
3115 {
3116  GValue *element;
3117 
3118  if (!sfi_rec)
3119  return Sfi::INIT_NULL;
3120 
3121  ::Bse::IconHandle rec = Sfi::INIT_DEFAULT;
3122  element = sfi_rec_get (sfi_rec, "width");
3123  if (element)
3124  rec->width = sfi_value_get_int (element);
3125  element = sfi_rec_get (sfi_rec, "height");
3126  if (element)
3127  rec->height = sfi_value_get_int (element);
3128  element = sfi_rec_get (sfi_rec, "pixel_seq");
3129  if (element)
3130  rec->pixel_seq = ::Bse::PixelSeq::value_get_boxed (element);
3131  return rec;
3132 }
3133 
3134 SfiRec *
3135 Icon::to_rec (const ::Bse::IconHandle & rec)
3136 {
3137  SfiRec *sfi_rec;
3138  GValue *element;
3139 
3140  if (!rec)
3141  return NULL;
3142 
3143  sfi_rec = sfi_rec_new ();
3144  element = sfi_rec_forced_get (sfi_rec, "width", SFI_TYPE_INT);
3145  sfi_value_set_int (element, rec->width);
3146  element = sfi_rec_forced_get (sfi_rec, "height", SFI_TYPE_INT);
3147  sfi_value_set_int (element, rec->height);
3148  element = sfi_rec_forced_get (sfi_rec, "pixel_seq", SFI_TYPE_SEQ);
3149  ::Bse::PixelSeq::value_set_boxed (element, rec->pixel_seq);
3150  return sfi_rec;
3151 }
3152 
3154 Icon::value_get_boxed (const GValue *value)
3155 {
3156  return ::Bse::IconHandle::value_get_boxed (value);
3157 }
3158 
3159 void
3160 Icon::value_set_boxed (GValue *value, const ::Bse::IconHandle & self)
3161 {
3162  ::Bse::IconHandle::value_set_boxed (value, self);
3163 }
3164 
3166 Icon::get_fields()
3167 {
3168  static SfiRecFields rfields = { 0, NULL };
3169  if (!rfields.n_fields)
3170  {
3171  static GParamSpec *fields[3 + 1];
3172  rfields.n_fields = 3;
3173  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",579,"width","Width" , "Width in pixels or 0 for no icon" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
3174  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",580,"height","Height" , "Height in pixels or 0 for no icon" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
3175  fields[2] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",581, "pixel_seq", "Pixels" , "Pixel array of width*height ARGB pixels" , ":readwrite", Bse::PixelSeq::get_element());
3176  rfields.fields = fields;
3177  }
3178  return rfields;
3179 }
3181 Category::from_rec (SfiRec *sfi_rec)
3182 {
3183  GValue *element;
3184 
3185  if (!sfi_rec)
3186  return Sfi::INIT_NULL;
3187 
3188  ::Bse::CategoryHandle rec = Sfi::INIT_DEFAULT;
3189  element = sfi_rec_get (sfi_rec, "category_id");
3190  if (element)
3191  rec->category_id = sfi_value_get_int (element);
3192  element = sfi_rec_get (sfi_rec, "category");
3193  if (element)
3194  rec->category = ::Sfi::String::value_get_string (element);
3195  element = sfi_rec_get (sfi_rec, "mindex");
3196  if (element)
3197  rec->mindex = sfi_value_get_int (element);
3198  element = sfi_rec_get (sfi_rec, "lindex");
3199  if (element)
3200  rec->lindex = sfi_value_get_int (element);
3201  element = sfi_rec_get (sfi_rec, "type");
3202  if (element)
3203  rec->type = ::Sfi::String::value_get_string (element);
3204  element = sfi_rec_get (sfi_rec, "icon");
3205  if (element)
3206  rec->icon = ::Bse::Icon::value_get_boxed (element);
3207  return rec;
3208 }
3209 
3210 SfiRec *
3211 Category::to_rec (const ::Bse::CategoryHandle & rec)
3212 {
3213  SfiRec *sfi_rec;
3214  GValue *element;
3215 
3216  if (!rec)
3217  return NULL;
3218 
3219  sfi_rec = sfi_rec_new ();
3220  element = sfi_rec_forced_get (sfi_rec, "category_id", SFI_TYPE_INT);
3221  sfi_value_set_int (element, rec->category_id);
3222  element = sfi_rec_forced_get (sfi_rec, "category", SFI_TYPE_STRING);
3223  ::Sfi::String::value_set_string (element, rec->category);
3224  element = sfi_rec_forced_get (sfi_rec, "mindex", SFI_TYPE_INT);
3225  sfi_value_set_int (element, rec->mindex);
3226  element = sfi_rec_forced_get (sfi_rec, "lindex", SFI_TYPE_INT);
3227  sfi_value_set_int (element, rec->lindex);
3228  element = sfi_rec_forced_get (sfi_rec, "type", SFI_TYPE_STRING);
3229  ::Sfi::String::value_set_string (element, rec->type);
3230  element = sfi_rec_forced_get (sfi_rec, "icon", SFI_TYPE_REC);
3231  ::Bse::Icon::value_set_boxed (element, rec->icon);
3232  return sfi_rec;
3233 }
3234 
3236 Category::value_get_boxed (const GValue *value)
3237 {
3238  return ::Bse::CategoryHandle::value_get_boxed (value);
3239 }
3240 
3241 void
3242 Category::value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self)
3243 {
3244  ::Bse::CategoryHandle::value_set_boxed (value, self);
3245 }
3246 
3248 Category::get_fields()
3249 {
3250  static SfiRecFields rfields = { 0, NULL };
3251  if (!rfields.n_fields)
3252  {
3253  static GParamSpec *fields[6 + 1];
3254  rfields.n_fields = 6;
3255  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",585,"category_id","Category ID" , "" , 1LL , 1LL , G_MAXINT , 1LL , ":readwrite");
3256  fields[1] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",586,"category");
3257  fields[2] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",587,"mindex");
3258  fields[3] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",588,"lindex");
3259  fields[4] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",589,"type");
3260  fields[5] = sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",590, "icon", Bse::Icon::get_fields());
3261  rfields.fields = fields;
3262  }
3263  return rfields;
3264 }
3266 Dot::from_rec (SfiRec *sfi_rec)
3267 {
3268  GValue *element;
3269 
3270  if (!sfi_rec)
3271  return Sfi::INIT_NULL;
3272 
3273  ::Bse::DotHandle rec = Sfi::INIT_DEFAULT;
3274  element = sfi_rec_get (sfi_rec, "x");
3275  if (element)
3276  rec->x = sfi_value_get_real (element);
3277  element = sfi_rec_get (sfi_rec, "y");
3278  if (element)
3279  rec->y = sfi_value_get_real (element);
3280  return rec;
3281 }
3282 
3283 SfiRec *
3284 Dot::to_rec (const ::Bse::DotHandle & rec)
3285 {
3286  SfiRec *sfi_rec;
3287  GValue *element;
3288 
3289  if (!rec)
3290  return NULL;
3291 
3292  sfi_rec = sfi_rec_new ();
3293  element = sfi_rec_forced_get (sfi_rec, "x", SFI_TYPE_REAL);
3294  sfi_value_set_real (element, rec->x);
3295  element = sfi_rec_forced_get (sfi_rec, "y", SFI_TYPE_REAL);
3296  sfi_value_set_real (element, rec->y);
3297  return sfi_rec;
3298 }
3299 
3301 Dot::value_get_boxed (const GValue *value)
3302 {
3303  return ::Bse::DotHandle::value_get_boxed (value);
3304 }
3305 
3306 void
3307 Dot::value_set_boxed (GValue *value, const ::Bse::DotHandle & self)
3308 {
3309  ::Bse::DotHandle::value_set_boxed (value, self);
3310 }
3311 
3313 Dot::get_fields()
3314 {
3315  static SfiRecFields rfields = { 0, NULL };
3316  if (!rfields.n_fields)
3317  {
3318  static GParamSpec *fields[2 + 1];
3319  rfields.n_fields = 2;
3320  fields[0] = sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",597,"x");
3321  fields[1] = sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",598,"y");
3322  rfields.fields = fields;
3323  }
3324  return rfields;
3325 }
3327 PartLink::from_rec (SfiRec *sfi_rec)
3328 {
3329  GValue *element;
3330 
3331  if (!sfi_rec)
3332  return Sfi::INIT_NULL;
3333 
3334  ::Bse::PartLinkHandle rec = Sfi::INIT_DEFAULT;
3335  element = sfi_rec_get (sfi_rec, "track");
3336  if (element)
3337  rec->track = ::Bse::CxxBase::value_get_gobject< BseTrack> (element);
3338  element = sfi_rec_get (sfi_rec, "tick");
3339  if (element)
3340  rec->tick = sfi_value_get_int (element);
3341  element = sfi_rec_get (sfi_rec, "part");
3342  if (element)
3343  rec->part = ::Bse::CxxBase::value_get_gobject< BsePart> (element);
3344  element = sfi_rec_get (sfi_rec, "duration");
3345  if (element)
3346  rec->duration = sfi_value_get_int (element);
3347  return rec;
3348 }
3349 
3350 SfiRec *
3351 PartLink::to_rec (const ::Bse::PartLinkHandle & rec)
3352 {
3353  SfiRec *sfi_rec;
3354  GValue *element;
3355 
3356  if (!rec)
3357  return NULL;
3358 
3359  sfi_rec = sfi_rec_new ();
3360  element = sfi_rec_forced_get (sfi_rec, "track", SFI_TYPE_PROXY);
3361  ::Bse::CxxBase::value_set_gobject (element, rec->track);
3362  element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
3363  sfi_value_set_int (element, rec->tick);
3364  element = sfi_rec_forced_get (sfi_rec, "part", SFI_TYPE_PROXY);
3365  ::Bse::CxxBase::value_set_gobject (element, rec->part);
3366  element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
3367  sfi_value_set_int (element, rec->duration);
3368  return sfi_rec;
3369 }
3370 
3372 PartLink::value_get_boxed (const GValue *value)
3373 {
3374  return ::Bse::PartLinkHandle::value_get_boxed (value);
3375 }
3376 
3377 void
3378 PartLink::value_set_boxed (GValue *value, const ::Bse::PartLinkHandle & self)
3379 {
3380  ::Bse::PartLinkHandle::value_set_boxed (value, self);
3381 }
3382 
3384 PartLink::get_fields()
3385 {
3386  static SfiRecFields rfields = { 0, NULL };
3387  if (!rfields.n_fields)
3388  {
3389  static GParamSpec *fields[4 + 1];
3390  rfields.n_fields = 4;
3391  fields[0] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",607,"track");
3392  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",608,"tick","Tick" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
3393  fields[2] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",609,"part");
3394  fields[3] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",610,"duration","Duration" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
3395  rfields.fields = fields;
3396  }
3397  return rfields;
3398 }
3400 TrackPart::from_rec (SfiRec *sfi_rec)
3401 {
3402  GValue *element;
3403 
3404  if (!sfi_rec)
3405  return Sfi::INIT_NULL;
3406 
3407  ::Bse::TrackPartHandle rec = Sfi::INIT_DEFAULT;
3408  element = sfi_rec_get (sfi_rec, "tick");
3409  if (element)
3410  rec->tick = sfi_value_get_int (element);
3411  element = sfi_rec_get (sfi_rec, "part");
3412  if (element)
3413  rec->part = ::Bse::CxxBase::value_get_gobject< BsePart> (element);
3414  element = sfi_rec_get (sfi_rec, "duration");
3415  if (element)
3416  rec->duration = sfi_value_get_int (element);
3417  return rec;
3418 }
3419 
3420 SfiRec *
3421 TrackPart::to_rec (const ::Bse::TrackPartHandle & rec)
3422 {
3423  SfiRec *sfi_rec;
3424  GValue *element;
3425 
3426  if (!rec)
3427  return NULL;
3428 
3429  sfi_rec = sfi_rec_new ();
3430  element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
3431  sfi_value_set_int (element, rec->tick);
3432  element = sfi_rec_forced_get (sfi_rec, "part", SFI_TYPE_PROXY);
3433  ::Bse::CxxBase::value_set_gobject (element, rec->part);
3434  element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
3435  sfi_value_set_int (element, rec->duration);
3436  return sfi_rec;
3437 }
3438 
3440 TrackPart::value_get_boxed (const GValue *value)
3441 {
3442  return ::Bse::TrackPartHandle::value_get_boxed (value);
3443 }
3444 
3445 void
3446 TrackPart::value_set_boxed (GValue *value, const ::Bse::TrackPartHandle & self)
3447 {
3448  ::Bse::TrackPartHandle::value_set_boxed (value, self);
3449 }
3450 
3452 TrackPart::get_fields()
3453 {
3454  static SfiRecFields rfields = { 0, NULL };
3455  if (!rfields.n_fields)
3456  {
3457  static GParamSpec *fields[3 + 1];
3458  rfields.n_fields = 3;
3459  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",618,"tick","Tick" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
3460  fields[1] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",619,"part");
3461  fields[2] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",620,"duration","Duration" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
3462  rfields.fields = fields;
3463  }
3464  return rfields;
3465 }
3467 SongTiming::from_rec (SfiRec *sfi_rec)
3468 {
3469  GValue *element;
3470 
3471  if (!sfi_rec)
3472  return Sfi::INIT_NULL;
3473 
3474  ::Bse::SongTimingHandle rec = Sfi::INIT_DEFAULT;
3475  element = sfi_rec_get (sfi_rec, "tick");
3476  if (element)
3477  rec->tick = sfi_value_get_int (element);
3478  element = sfi_rec_get (sfi_rec, "bpm");
3479  if (element)
3480  rec->bpm = sfi_value_get_real (element);
3481  element = sfi_rec_get (sfi_rec, "numerator");
3482  if (element)
3483  rec->numerator = sfi_value_get_int (element);
3484  element = sfi_rec_get (sfi_rec, "denominator");
3485  if (element)
3486  rec->denominator = sfi_value_get_int (element);
3487  element = sfi_rec_get (sfi_rec, "tpqn");
3488  if (element)
3489  rec->tpqn = sfi_value_get_int (element);
3490  element = sfi_rec_get (sfi_rec, "tpt");
3491  if (element)
3492  rec->tpt = sfi_value_get_int (element);
3493  element = sfi_rec_get (sfi_rec, "stamp_ticks");
3494  if (element)
3495  rec->stamp_ticks = sfi_value_get_real (element);
3496  return rec;
3497 }
3498 
3499 SfiRec *
3500 SongTiming::to_rec (const ::Bse::SongTimingHandle & rec)
3501 {
3502  SfiRec *sfi_rec;
3503  GValue *element;
3504 
3505  if (!rec)
3506  return NULL;
3507 
3508  sfi_rec = sfi_rec_new ();
3509  element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
3510  sfi_value_set_int (element, rec->tick);
3511  element = sfi_rec_forced_get (sfi_rec, "bpm", SFI_TYPE_REAL);
3512  sfi_value_set_real (element, rec->bpm);
3513  element = sfi_rec_forced_get (sfi_rec, "numerator", SFI_TYPE_INT);
3514  sfi_value_set_int (element, rec->numerator);
3515  element = sfi_rec_forced_get (sfi_rec, "denominator", SFI_TYPE_INT);
3516  sfi_value_set_int (element, rec->denominator);
3517  element = sfi_rec_forced_get (sfi_rec, "tpqn", SFI_TYPE_INT);
3518  sfi_value_set_int (element, rec->tpqn);
3519  element = sfi_rec_forced_get (sfi_rec, "tpt", SFI_TYPE_INT);
3520  sfi_value_set_int (element, rec->tpt);
3521  element = sfi_rec_forced_get (sfi_rec, "stamp_ticks", SFI_TYPE_REAL);
3522  sfi_value_set_real (element, rec->stamp_ticks);
3523  return sfi_rec;
3524 }
3525 
3527 SongTiming::value_get_boxed (const GValue *value)
3528 {
3529  return ::Bse::SongTimingHandle::value_get_boxed (value);
3530 }
3531 
3532 void
3533 SongTiming::value_set_boxed (GValue *value, const ::Bse::SongTimingHandle & self)
3534 {
3535  ::Bse::SongTimingHandle::value_set_boxed (value, self);
3536 }
3537 
3539 SongTiming::get_fields()
3540 {
3541  static SfiRecFields rfields = { 0, NULL };
3542  if (!rfields.n_fields)
3543  {
3544  static GParamSpec *fields[7 + 1];
3545  rfields.n_fields = 7;
3546  fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",628,"tick","Current tick" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
3547  fields[1] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",630,"bpm","Beats per minute" , "" , 120LL , BSE_MIN_BPM , BSE_MAX_BPM , 10LL , ":r:w:S:G:");
3548  fields[2] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",632,"numerator","Numerator" , "Number of notes per measure" , 4LL , 1LL , 256LL , 2LL , ":r:w:S:G:");
3549  fields[3] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",633,"denominator","Denominator" , "Type of notes counted per measure" , 4LL , 1LL , 256LL , 2LL , ":r:w:S:G:");
3550  fields[4] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",635,"tpqn","Ticks per quarter note" , "" , 384LL , 1LL , G_MAXINT , 12LL , ":r:w:S:G:");
3551  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",636,"tpt","Ticks per tact" , "" , 384LL , 1LL , G_MAXINT , 12LL , ":r:w:S:G:");
3552  fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",638,"stamp_ticks","Ticks per stamp increment (valid only during playback)" , "" , 384LL , 1LL , G_MAXINT , 12LL , ":r:w:S:G:");
3553  rfields.fields = fields;
3554  }
3555  return rfields;
3556 }
3558 SampleFileInfo::from_rec (SfiRec *sfi_rec)
3559 {
3560  GValue *element;
3561 
3562  if (!sfi_rec)
3563  return Sfi::INIT_NULL;
3564 
3565  ::Bse::SampleFileInfoHandle rec = Sfi::INIT_DEFAULT;
3566  element = sfi_rec_get (sfi_rec, "file");
3567  if (element)
3568  rec->file = ::Sfi::String::value_get_string (element);
3569  element = sfi_rec_get (sfi_rec, "size");
3570  if (element)
3571  rec->size = sfi_value_get_int (element);
3572  element = sfi_rec_get (sfi_rec, "mtime");
3573  if (element)
3574  rec->mtime = sfi_value_get_num (element);
3575  element = sfi_rec_get (sfi_rec, "loader");
3576  if (element)
3577  rec->loader = ::Sfi::String::value_get_string (element);
3578  element = sfi_rec_get (sfi_rec, "waves");
3579  if (element)
3580  rec->waves = ::Bse::StringSeq::value_get_boxed (element);
3581  element = sfi_rec_get (sfi_rec, "error");
3582  if (element)
3583  rec->error = sfi_value_get_int (element);
3584  return rec;
3585 }
3586 
3587 SfiRec *
3588 SampleFileInfo::to_rec (const ::Bse::SampleFileInfoHandle & rec)
3589 {
3590  SfiRec *sfi_rec;
3591  GValue *element;
3592 
3593  if (!rec)
3594  return NULL;
3595 
3596  sfi_rec = sfi_rec_new ();
3597  element = sfi_rec_forced_get (sfi_rec, "file", SFI_TYPE_STRING);
3598  ::Sfi::String::value_set_string (element, rec->file);
3599  element = sfi_rec_forced_get (sfi_rec, "size", SFI_TYPE_INT);
3600  sfi_value_set_int (element, rec->size);
3601  element = sfi_rec_forced_get (sfi_rec, "mtime", SFI_TYPE_NUM);
3602  sfi_value_set_num (element, rec->mtime);
3603  element = sfi_rec_forced_get (sfi_rec, "loader", SFI_TYPE_STRING);
3604  ::Sfi::String::value_set_string (element, rec->loader);
3605  element = sfi_rec_forced_get (sfi_rec, "waves", SFI_TYPE_SEQ);
3606  ::Bse::StringSeq::value_set_boxed (element, rec->waves);
3607  element = sfi_rec_forced_get (sfi_rec, "error", SFI_TYPE_INT);
3608  sfi_value_set_int (element, rec->error);
3609  return sfi_rec;
3610 }
3611 
3613 SampleFileInfo::value_get_boxed (const GValue *value)
3614 {
3615  return ::Bse::SampleFileInfoHandle::value_get_boxed (value);
3616 }
3617 
3618 void
3619 SampleFileInfo::value_set_boxed (GValue *value, const ::Bse::SampleFileInfoHandle & self)
3620 {
3621  ::Bse::SampleFileInfoHandle::value_set_boxed (value, self);
3622 }
3623 
3625 SampleFileInfo::get_fields()
3626 {
3627  static SfiRecFields rfields = { 0, NULL };
3628  if (!rfields.n_fields)
3629  {
3630  static GParamSpec *fields[6 + 1];
3631  rfields.n_fields = 6;
3632  fields[0] = sfidl_pspec_SfiString (NULL,"/opt/src/beast/bse/bsebasics.idl",641,"file","Filename" , "" , "" , ":r:w:S:G:");
3633  fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",642,"size","File Size" , "" , 0LL , 0LL , G_MAXINT , 0LL , ":r:w:S:G:");
3634  fields[2] = sfidl_pspec_SfiNum (NULL,"/opt/src/beast/bse/bsebasics.idl",643,"mtime","Modification Time" , "" , 0LL , 0LL , SFI_MAXNUM , 0LL , ":r:w:S:G:");
3635  fields[3] = sfidl_pspec_SfiString (NULL,"/opt/src/beast/bse/bsebasics.idl",644,"loader","Loader" , "" , "" , ":r:w:S:G:");
3636  fields[4] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",645, "waves", "" , "" , ":r:w:S:G:", Bse::StringSeq::get_element());
3637  fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",646,"error","BseErrorType" , "" , 0LL , 0LL , G_MAXINT , 0LL , ":r:w:S:G:");
3638  rfields.fields = fields;
3639  }
3640  return rfields;
3641 }
3643 GConfig::from_rec (SfiRec *sfi_rec)
3644 {
3645  GValue *element;
3646 
3647  if (!sfi_rec)
3648  return Sfi::INIT_NULL;
3649 
3650  ::Bse::GConfigHandle rec = Sfi::INIT_DEFAULT;
3651  element = sfi_rec_get (sfi_rec, "synth_latency");
3652  if (element)
3653  rec->synth_latency = sfi_value_get_int (element);
3654  element = sfi_rec_get (sfi_rec, "synth_mixing_freq");
3655  if (element)
3656  rec->synth_mixing_freq = sfi_value_get_int (element);
3657  element = sfi_rec_get (sfi_rec, "synth_control_freq");
3658  if (element)
3659  rec->synth_control_freq = sfi_value_get_int (element);
3660  element = sfi_rec_get (sfi_rec, "invert_sustain");
3661  if (element)
3662  rec->invert_sustain = sfi_value_get_bool (element);
3663  element = sfi_rec_get (sfi_rec, "author_default");
3664  if (element)
3665  rec->author_default = ::Sfi::String::value_get_string (element);
3666  element = sfi_rec_get (sfi_rec, "license_default");
3667  if (element)
3668  rec->license_default = ::Sfi::String::value_get_string (element);
3669  element = sfi_rec_get (sfi_rec, "sample_path");
3670  if (element)
3671  rec->sample_path = ::Sfi::String::value_get_string (element);
3672  element = sfi_rec_get (sfi_rec, "effect_path");
3673  if (element)
3674  rec->effect_path = ::Sfi::String::value_get_string (element);
3675  element = sfi_rec_get (sfi_rec, "instrument_path");
3676  if (element)
3677  rec->instrument_path = ::Sfi::String::value_get_string (element);
3678  element = sfi_rec_get (sfi_rec, "script_path");
3679  if (element)
3680  rec->script_path = ::Sfi::String::value_get_string (element);
3681  element = sfi_rec_get (sfi_rec, "plugin_path");
3682  if (element)
3683  rec->plugin_path = ::Sfi::String::value_get_string (element);
3684  element = sfi_rec_get (sfi_rec, "ladspa_path");
3685  if (element)
3686  rec->ladspa_path = ::Sfi::String::value_get_string (element);
3687  return rec;
3688 }
3689 
3690 SfiRec *
3691 GConfig::to_rec (const ::Bse::GConfigHandle & rec)
3692 {
3693  SfiRec *sfi_rec;
3694  GValue *element;
3695 
3696  if (!rec)
3697  return NULL;
3698 
3699  sfi_rec = sfi_rec_new ();
3700  element = sfi_rec_forced_get (sfi_rec, "synth_latency", SFI_TYPE_INT);
3701  sfi_value_set_int (element, rec->synth_latency);
3702  element = sfi_rec_forced_get (sfi_rec, "synth_mixing_freq", SFI_TYPE_INT);
3703  sfi_value_set_int (element, rec->synth_mixing_freq);
3704  element = sfi_rec_forced_get (sfi_rec, "synth_control_freq", SFI_TYPE_INT);
3705  sfi_value_set_int (element, rec->synth_control_freq);
3706  element = sfi_rec_forced_get (sfi_rec, "invert_sustain", SFI_TYPE_BOOL);
3707  sfi_value_set_bool (element, rec->invert_sustain);
3708  element = sfi_rec_forced_get (sfi_rec, "author_default", SFI_TYPE_STRING);
3709  ::Sfi::String::value_set_string (element, rec->author_default);
3710  element = sfi_rec_forced_get (sfi_rec, "license_default", SFI_TYPE_STRING);
3711  ::Sfi::String::value_set_string (element, rec->license_default);
3712  element = sfi_rec_forced_get (sfi_rec, "sample_path", SFI_TYPE_STRING);
3713  ::Sfi::String::value_set_string (element, rec->sample_path);
3714  element = sfi_rec_forced_get (sfi_rec, "effect_path", SFI_TYPE_STRING);
3715  ::Sfi::String::value_set_string (element, rec->effect_path);
3716  element = sfi_rec_forced_get (sfi_rec, "instrument_path", SFI_TYPE_STRING);
3717  ::Sfi::String::value_set_string (element, rec->instrument_path);
3718  element = sfi_rec_forced_get (sfi_rec, "script_path", SFI_TYPE_STRING);
3719  ::Sfi::String::value_set_string (element, rec->script_path);
3720  element = sfi_rec_forced_get (sfi_rec, "plugin_path", SFI_TYPE_STRING);
3721  ::Sfi::String::value_set_string (element, rec->plugin_path);
3722  element = sfi_rec_forced_get (sfi_rec, "ladspa_path", SFI_TYPE_STRING);
3723  ::Sfi::String::value_set_string (element, rec->ladspa_path);
3724  return sfi_rec;
3725 }
3726 
3728 GConfig::value_get_boxed (const GValue *value)
3729 {
3730  return ::Bse::GConfigHandle::value_get_boxed (value);
3731 }
3732 
3733 void
3734 GConfig::value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self)
3735 {
3736  ::Bse::GConfigHandle::value_set_boxed (value, self);
3737 }
3738 
3740 GConfig::get_fields()
3741 {
3742  static SfiRecFields rfields = { 0, NULL };
3743  if (!rfields.n_fields)
3744  {
3745  static GParamSpec *fields[12 + 1];
3746  rfields.n_fields = 12;
3747  fields[0] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",662,"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:");
3748  fields[1] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",666,"synth_mixing_freq",_ ( "Synth Mixing Frequency" ) , _ ( "Synthesis mixing frequency, common values are: 22050, 44100, 48000" ) , 44100LL , 8000LL , 192000LL , 0LL , ":r:w:S:G:");
3749  fields[2] = sfidl_pspec_SfiInt (_("Synthesis Settings"),"/opt/src/beast/bse/bsebasics.idl",670,"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:");
3750  fields[3] = sfidl_pspec_SfiBool (_("MIDI"),"/opt/src/beast/bse/bsebasics.idl",677,"invert_sustain",_ ( "Invert Sustain Pedal" ) , _ ( "Invert the state of sustain (damper) pedal so on/off meanings are reversed" ) , FALSE , ":r:w:S:G:");
3751  fields[4] = sfidl_pspec_SfiString (_("Default Values"),"/opt/src/beast/bse/bsebasics.idl",682,"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:");
3752  fields[5] = sfidl_pspec_SfiString (_("Default Values"),"/opt/src/beast/bse/bsebasics.idl",684,"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:");
3753  fields[6] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",688,"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");
3754  fields[7] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",691,"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");
3755  fields[8] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",694,"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");
3756  fields[9] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",697,"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");
3757  fields[10] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",700,"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");
3758  fields[11] = sfidl_pspec_SfiString (_("Search Paths"),"/opt/src/beast/bse/bsebasics.idl",704,"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");
3759  rfields.fields = fields;
3760  }
3761  return rfields;
3762 }
3763 
3764 
3765 /* sequence implementations */
3767 IntSeq::from_seq (SfiSeq *sfi_seq)
3768 {
3769  ::Bse::IntSeq cseq;
3770  guint i, length;
3771 
3772  if (!sfi_seq)
3773  return cseq;
3774 
3775  length = sfi_seq_length (sfi_seq);
3776  cseq.resize (length);
3777  for (i = 0; i < length; i++)
3778  {
3779  GValue *element = sfi_seq_get (sfi_seq, i);
3780  cseq[i] = sfi_value_get_int (element);
3781  }
3782  return cseq;
3783 }
3784 
3785 SfiSeq *
3786 IntSeq::to_seq (const ::Bse::IntSeq & cseq)
3787 {
3788  SfiSeq *sfi_seq = sfi_seq_new ();
3789  for (guint i = 0; i < cseq.length(); i++)
3790  {
3791  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
3792  sfi_value_set_int (element, cseq[i]);
3793  }
3794  return sfi_seq;
3795 }
3796 
3798 IntSeq::value_get_boxed (const GValue *value)
3799 {
3800  return ::Sfi::cxx_value_get_boxed_sequence< IntSeq> (value);
3801 }
3802 
3803 void
3804 IntSeq::value_set_boxed (GValue *value, const ::Bse::IntSeq & self)
3805 {
3806  ::Sfi::cxx_value_set_boxed_sequence< IntSeq> (value, self);
3807 }
3808 
3809 GParamSpec*
3810 IntSeq::get_element()
3811 {
3812  static GParamSpec *element = NULL;
3813  if (!element) {
3814  element = g_param_spec_ref (sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",24,"ints"));
3815  g_param_spec_sink (element);
3816  }
3817  return element;
3818 }
3819 
3821 TypeSeq::from_seq (SfiSeq *sfi_seq)
3822 {
3823  ::Bse::TypeSeq cseq;
3824  guint i, length;
3825 
3826  if (!sfi_seq)
3827  return cseq;
3828 
3829  length = sfi_seq_length (sfi_seq);
3830  cseq.resize (length);
3831  for (i = 0; i < length; i++)
3832  {
3833  GValue *element = sfi_seq_get (sfi_seq, i);
3834  cseq[i] = ::Sfi::String::value_get_string (element);
3835  }
3836  return cseq;
3837 }
3838 
3839 SfiSeq *
3840 TypeSeq::to_seq (const ::Bse::TypeSeq & cseq)
3841 {
3842  SfiSeq *sfi_seq = sfi_seq_new ();
3843  for (guint i = 0; i < cseq.length(); i++)
3844  {
3845  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_STRING);
3846  ::Sfi::String::value_set_string (element, cseq[i]);
3847  }
3848  return sfi_seq;
3849 }
3850 
3852 TypeSeq::value_get_boxed (const GValue *value)
3853 {
3854  return ::Sfi::cxx_value_get_boxed_sequence< TypeSeq> (value);
3855 }
3856 
3857 void
3858 TypeSeq::value_set_boxed (GValue *value, const ::Bse::TypeSeq & self)
3859 {
3860  ::Sfi::cxx_value_set_boxed_sequence< TypeSeq> (value, self);
3861 }
3862 
3863 GParamSpec*
3864 TypeSeq::get_element()
3865 {
3866  static GParamSpec *element = NULL;
3867  if (!element) {
3868  element = g_param_spec_ref (sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",27,"types"));
3869  g_param_spec_sink (element);
3870  }
3871  return element;
3872 }
3873 
3875 StringSeq::from_seq (SfiSeq *sfi_seq)
3876 {
3877  ::Bse::StringSeq cseq;
3878  guint i, length;
3879 
3880  if (!sfi_seq)
3881  return cseq;
3882 
3883  length = sfi_seq_length (sfi_seq);
3884  cseq.resize (length);
3885  for (i = 0; i < length; i++)
3886  {
3887  GValue *element = sfi_seq_get (sfi_seq, i);
3888  cseq[i] = ::Sfi::String::value_get_string (element);
3889  }
3890  return cseq;
3891 }
3892 
3893 SfiSeq *
3894 StringSeq::to_seq (const ::Bse::StringSeq & cseq)
3895 {
3896  SfiSeq *sfi_seq = sfi_seq_new ();
3897  for (guint i = 0; i < cseq.length(); i++)
3898  {
3899  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_STRING);
3900  ::Sfi::String::value_set_string (element, cseq[i]);
3901  }
3902  return sfi_seq;
3903 }
3904 
3906 StringSeq::value_get_boxed (const GValue *value)
3907 {
3908  return ::Sfi::cxx_value_get_boxed_sequence< StringSeq> (value);
3909 }
3910 
3911 void
3912 StringSeq::value_set_boxed (GValue *value, const ::Bse::StringSeq & self)
3913 {
3914  ::Sfi::cxx_value_set_boxed_sequence< StringSeq> (value, self);
3915 }
3916 
3917 GParamSpec*
3918 StringSeq::get_element()
3919 {
3920  static GParamSpec *element = NULL;
3921  if (!element) {
3922  element = g_param_spec_ref (sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",30,"strings"));
3923  g_param_spec_sink (element);
3924  }
3925  return element;
3926 }
3927 
3929 FloatSeq::from_seq (SfiSeq *sfi_seq)
3930 {
3931  ::Bse::FloatSeq cseq;
3932  guint i, length;
3933 
3934  if (!sfi_seq)
3935  return cseq;
3936 
3937  length = sfi_seq_length (sfi_seq);
3938  cseq.resize (length);
3939  for (i = 0; i < length; i++)
3940  {
3941  GValue *element = sfi_seq_get (sfi_seq, i);
3942  cseq[i] = sfi_value_get_real (element);
3943  }
3944  return cseq;
3945 }
3946 
3947 SfiSeq *
3948 FloatSeq::to_seq (const ::Bse::FloatSeq & cseq)
3949 {
3950  SfiSeq *sfi_seq = sfi_seq_new ();
3951  for (guint i = 0; i < cseq.length(); i++)
3952  {
3953  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REAL);
3954  sfi_value_set_real (element, cseq[i]);
3955  }
3956  return sfi_seq;
3957 }
3958 
3960 FloatSeq::value_get_boxed (const GValue *value)
3961 {
3962  return ::Sfi::cxx_value_get_boxed_sequence< FloatSeq> (value);
3963 }
3964 
3965 void
3966 FloatSeq::value_set_boxed (GValue *value, const ::Bse::FloatSeq & self)
3967 {
3968  ::Sfi::cxx_value_set_boxed_sequence< FloatSeq> (value, self);
3969 }
3970 
3971 GParamSpec*
3972 FloatSeq::get_element()
3973 {
3974  static GParamSpec *element = NULL;
3975  if (!element) {
3976  element = g_param_spec_ref (sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",33,"values"));
3977  g_param_spec_sink (element);
3978  }
3979  return element;
3980 }
3981 
3983 NoteSeq::from_seq (SfiSeq *sfi_seq)
3984 {
3985  ::Bse::NoteSeq cseq;
3986  guint i, length;
3987 
3988  if (!sfi_seq)
3989  return cseq;
3990 
3991  length = sfi_seq_length (sfi_seq);
3992  cseq.resize (length);
3993  for (i = 0; i < length; i++)
3994  {
3995  GValue *element = sfi_seq_get (sfi_seq, i);
3996  cseq[i] = sfi_value_get_int (element);
3997  }
3998  return cseq;
3999 }
4000 
4001 SfiSeq *
4002 NoteSeq::to_seq (const ::Bse::NoteSeq & cseq)
4003 {
4004  SfiSeq *sfi_seq = sfi_seq_new ();
4005  for (guint i = 0; i < cseq.length(); i++)
4006  {
4007  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
4008  sfi_value_set_int (element, cseq[i]);
4009  }
4010  return sfi_seq;
4011 }
4012 
4014 NoteSeq::value_get_boxed (const GValue *value)
4015 {
4016  return ::Sfi::cxx_value_get_boxed_sequence< NoteSeq> (value);
4017 }
4018 
4019 void
4020 NoteSeq::value_set_boxed (GValue *value, const ::Bse::NoteSeq & self)
4021 {
4022  ::Sfi::cxx_value_set_boxed_sequence< NoteSeq> (value, self);
4023 }
4024 
4025 GParamSpec*
4026 NoteSeq::get_element()
4027 {
4028  static GParamSpec *element = NULL;
4029  if (!element) {
4030  element = g_param_spec_ref (sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",506,"notes","Note" , "" , KAMMER_NOTE , ":readwrite"));
4031  g_param_spec_sink (element);
4032  }
4033  return element;
4034 }
4035 
4037 ItemSeq::from_seq (SfiSeq *sfi_seq)
4038 {
4039  ::Bse::ItemSeq cseq;
4040  guint i, length;
4041 
4042  if (!sfi_seq)
4043  return cseq;
4044 
4045  length = sfi_seq_length (sfi_seq);
4046  cseq.resize (length);
4047  for (i = 0; i < length; i++)
4048  {
4049  GValue *element = sfi_seq_get (sfi_seq, i);
4050  cseq[i] = ::Bse::CxxBase::value_get_gobject< BseItem> (element);
4051  }
4052  return cseq;
4053 }
4054 
4055 SfiSeq *
4056 ItemSeq::to_seq (const ::Bse::ItemSeq & cseq)
4057 {
4058  SfiSeq *sfi_seq = sfi_seq_new ();
4059  for (guint i = 0; i < cseq.length(); i++)
4060  {
4061  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_PROXY);
4062  ::Bse::CxxBase::value_set_gobject (element, cseq[i]);
4063  }
4064  return sfi_seq;
4065 }
4066 
4068 ItemSeq::value_get_boxed (const GValue *value)
4069 {
4070  return ::Sfi::cxx_value_get_boxed_sequence< ItemSeq> (value);
4071 }
4072 
4073 void
4074 ItemSeq::value_set_boxed (GValue *value, const ::Bse::ItemSeq & self)
4075 {
4076  ::Sfi::cxx_value_set_boxed_sequence< ItemSeq> (value, self);
4077 }
4078 
4079 GParamSpec*
4080 ItemSeq::get_element()
4081 {
4082  static GParamSpec *element = NULL;
4083  if (!element) {
4084  element = g_param_spec_ref (sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",511,"items"));
4085  g_param_spec_sink (element);
4086  }
4087  return element;
4088 }
4089 
4091 PartNoteSeq::from_seq (SfiSeq *sfi_seq)
4092 {
4093  ::Bse::PartNoteSeq cseq;
4094  guint i, length;
4095 
4096  if (!sfi_seq)
4097  return cseq;
4098 
4099  length = sfi_seq_length (sfi_seq);
4100  cseq.resize (length);
4101  for (i = 0; i < length; i++)
4102  {
4103  GValue *element = sfi_seq_get (sfi_seq, i);
4104  cseq[i] = ::Bse::PartNote::value_get_boxed (element);
4105  }
4106  return cseq;
4107 }
4108 
4109 SfiSeq *
4110 PartNoteSeq::to_seq (const ::Bse::PartNoteSeq & cseq)
4111 {
4112  SfiSeq *sfi_seq = sfi_seq_new ();
4113  for (guint i = 0; i < cseq.length(); i++)
4114  {
4115  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4116  ::Bse::PartNote::value_set_boxed (element, cseq[i]);
4117  }
4118  return sfi_seq;
4119 }
4120 
4122 PartNoteSeq::value_get_boxed (const GValue *value)
4123 {
4124  return ::Sfi::cxx_value_get_boxed_sequence< PartNoteSeq> (value);
4125 }
4126 
4127 void
4128 PartNoteSeq::value_set_boxed (GValue *value, const ::Bse::PartNoteSeq & self)
4129 {
4130  ::Sfi::cxx_value_set_boxed_sequence< PartNoteSeq> (value, self);
4131 }
4132 
4133 GParamSpec*
4134 PartNoteSeq::get_element()
4135 {
4136  static GParamSpec *element = NULL;
4137  if (!element) {
4138  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",534, "pnotes", Bse::PartNote::get_fields()));
4139  g_param_spec_sink (element);
4140  }
4141  return element;
4142 }
4143 
4145 PartControlSeq::from_seq (SfiSeq *sfi_seq)
4146 {
4147  ::Bse::PartControlSeq cseq;
4148  guint i, length;
4149 
4150  if (!sfi_seq)
4151  return cseq;
4152 
4153  length = sfi_seq_length (sfi_seq);
4154  cseq.resize (length);
4155  for (i = 0; i < length; i++)
4156  {
4157  GValue *element = sfi_seq_get (sfi_seq, i);
4158  cseq[i] = ::Bse::PartControl::value_get_boxed (element);
4159  }
4160  return cseq;
4161 }
4162 
4163 SfiSeq *
4164 PartControlSeq::to_seq (const ::Bse::PartControlSeq & cseq)
4165 {
4166  SfiSeq *sfi_seq = sfi_seq_new ();
4167  for (guint i = 0; i < cseq.length(); i++)
4168  {
4169  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4170  ::Bse::PartControl::value_set_boxed (element, cseq[i]);
4171  }
4172  return sfi_seq;
4173 }
4174 
4176 PartControlSeq::value_get_boxed (const GValue *value)
4177 {
4178  return ::Sfi::cxx_value_get_boxed_sequence< PartControlSeq> (value);
4179 }
4180 
4181 void
4182 PartControlSeq::value_set_boxed (GValue *value, const ::Bse::PartControlSeq & self)
4183 {
4184  ::Sfi::cxx_value_set_boxed_sequence< PartControlSeq> (value, self);
4185 }
4186 
4187 GParamSpec*
4188 PartControlSeq::get_element()
4189 {
4190  static GParamSpec *element = NULL;
4191  if (!element) {
4192  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",547, "pcontrols", Bse::PartControl::get_fields()));
4193  g_param_spec_sink (element);
4194  }
4195  return element;
4196 }
4197 
4199 PixelSeq::from_seq (SfiSeq *sfi_seq)
4200 {
4201  ::Bse::PixelSeq cseq;
4202  guint i, length;
4203 
4204  if (!sfi_seq)
4205  return cseq;
4206 
4207  length = sfi_seq_length (sfi_seq);
4208  cseq.resize (length);
4209  for (i = 0; i < length; i++)
4210  {
4211  GValue *element = sfi_seq_get (sfi_seq, i);
4212  cseq[i] = sfi_value_get_int (element);
4213  }
4214  return cseq;
4215 }
4216 
4217 SfiSeq *
4218 PixelSeq::to_seq (const ::Bse::PixelSeq & cseq)
4219 {
4220  SfiSeq *sfi_seq = sfi_seq_new ();
4221  for (guint i = 0; i < cseq.length(); i++)
4222  {
4223  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
4224  sfi_value_set_int (element, cseq[i]);
4225  }
4226  return sfi_seq;
4227 }
4228 
4230 PixelSeq::value_get_boxed (const GValue *value)
4231 {
4232  return ::Sfi::cxx_value_get_boxed_sequence< PixelSeq> (value);
4233 }
4234 
4235 void
4236 PixelSeq::value_set_boxed (GValue *value, const ::Bse::PixelSeq & self)
4237 {
4238  ::Sfi::cxx_value_set_boxed_sequence< PixelSeq> (value, self);
4239 }
4240 
4241 GParamSpec*
4242 PixelSeq::get_element()
4243 {
4244  static GParamSpec *element = NULL;
4245  if (!element) {
4246  element = g_param_spec_ref (sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",574,"pixels"));
4247  g_param_spec_sink (element);
4248  }
4249  return element;
4250 }
4251 
4253 CategorySeq::from_seq (SfiSeq *sfi_seq)
4254 {
4255  ::Bse::CategorySeq cseq;
4256  guint i, length;
4257 
4258  if (!sfi_seq)
4259  return cseq;
4260 
4261  length = sfi_seq_length (sfi_seq);
4262  cseq.resize (length);
4263  for (i = 0; i < length; i++)
4264  {
4265  GValue *element = sfi_seq_get (sfi_seq, i);
4266  cseq[i] = ::Bse::Category::value_get_boxed (element);
4267  }
4268  return cseq;
4269 }
4270 
4271 SfiSeq *
4272 CategorySeq::to_seq (const ::Bse::CategorySeq & cseq)
4273 {
4274  SfiSeq *sfi_seq = sfi_seq_new ();
4275  for (guint i = 0; i < cseq.length(); i++)
4276  {
4277  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4278  ::Bse::Category::value_set_boxed (element, cseq[i]);
4279  }
4280  return sfi_seq;
4281 }
4282 
4284 CategorySeq::value_get_boxed (const GValue *value)
4285 {
4286  return ::Sfi::cxx_value_get_boxed_sequence< CategorySeq> (value);
4287 }
4288 
4289 void
4290 CategorySeq::value_set_boxed (GValue *value, const ::Bse::CategorySeq & self)
4291 {
4292  ::Sfi::cxx_value_set_boxed_sequence< CategorySeq> (value, self);
4293 }
4294 
4295 GParamSpec*
4296 CategorySeq::get_element()
4297 {
4298  static GParamSpec *element = NULL;
4299  if (!element) {
4300  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",593, "cats", Bse::Category::get_fields()));
4301  g_param_spec_sink (element);
4302  }
4303  return element;
4304 }
4305 
4307 DotSeq::from_seq (SfiSeq *sfi_seq)
4308 {
4309  ::Bse::DotSeq cseq;
4310  guint i, length;
4311 
4312  if (!sfi_seq)
4313  return cseq;
4314 
4315  length = sfi_seq_length (sfi_seq);
4316  cseq.resize (length);
4317  for (i = 0; i < length; i++)
4318  {
4319  GValue *element = sfi_seq_get (sfi_seq, i);
4320  cseq[i] = ::Bse::Dot::value_get_boxed (element);
4321  }
4322  return cseq;
4323 }
4324 
4325 SfiSeq *
4326 DotSeq::to_seq (const ::Bse::DotSeq & cseq)
4327 {
4328  SfiSeq *sfi_seq = sfi_seq_new ();
4329  for (guint i = 0; i < cseq.length(); i++)
4330  {
4331  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4332  ::Bse::Dot::value_set_boxed (element, cseq[i]);
4333  }
4334  return sfi_seq;
4335 }
4336 
4338 DotSeq::value_get_boxed (const GValue *value)
4339 {
4340  return ::Sfi::cxx_value_get_boxed_sequence< DotSeq> (value);
4341 }
4342 
4343 void
4344 DotSeq::value_set_boxed (GValue *value, const ::Bse::DotSeq & self)
4345 {
4346  ::Sfi::cxx_value_set_boxed_sequence< DotSeq> (value, self);
4347 }
4348 
4349 GParamSpec*
4350 DotSeq::get_element()
4351 {
4352  static GParamSpec *element = NULL;
4353  if (!element) {
4354  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",601, "dots", Bse::Dot::get_fields()));
4355  g_param_spec_sink (element);
4356  }
4357  return element;
4358 }
4359 
4361 PartLinkSeq::from_seq (SfiSeq *sfi_seq)
4362 {
4363  ::Bse::PartLinkSeq cseq;
4364  guint i, length;
4365 
4366  if (!sfi_seq)
4367  return cseq;
4368 
4369  length = sfi_seq_length (sfi_seq);
4370  cseq.resize (length);
4371  for (i = 0; i < length; i++)
4372  {
4373  GValue *element = sfi_seq_get (sfi_seq, i);
4374  cseq[i] = ::Bse::PartLink::value_get_boxed (element);
4375  }
4376  return cseq;
4377 }
4378 
4379 SfiSeq *
4380 PartLinkSeq::to_seq (const ::Bse::PartLinkSeq & cseq)
4381 {
4382  SfiSeq *sfi_seq = sfi_seq_new ();
4383  for (guint i = 0; i < cseq.length(); i++)
4384  {
4385  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4386  ::Bse::PartLink::value_set_boxed (element, cseq[i]);
4387  }
4388  return sfi_seq;
4389 }
4390 
4392 PartLinkSeq::value_get_boxed (const GValue *value)
4393 {
4394  return ::Sfi::cxx_value_get_boxed_sequence< PartLinkSeq> (value);
4395 }
4396 
4397 void
4398 PartLinkSeq::value_set_boxed (GValue *value, const ::Bse::PartLinkSeq & self)
4399 {
4400  ::Sfi::cxx_value_set_boxed_sequence< PartLinkSeq> (value, self);
4401 }
4402 
4403 GParamSpec*
4404 PartLinkSeq::get_element()
4405 {
4406  static GParamSpec *element = NULL;
4407  if (!element) {
4408  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",614, "plinks", Bse::PartLink::get_fields()));
4409  g_param_spec_sink (element);
4410  }
4411  return element;
4412 }
4413 
4415 TrackPartSeq::from_seq (SfiSeq *sfi_seq)
4416 {
4417  ::Bse::TrackPartSeq cseq;
4418  guint i, length;
4419 
4420  if (!sfi_seq)
4421  return cseq;
4422 
4423  length = sfi_seq_length (sfi_seq);
4424  cseq.resize (length);
4425  for (i = 0; i < length; i++)
4426  {
4427  GValue *element = sfi_seq_get (sfi_seq, i);
4428  cseq[i] = ::Bse::TrackPart::value_get_boxed (element);
4429  }
4430  return cseq;
4431 }
4432 
4433 SfiSeq *
4434 TrackPartSeq::to_seq (const ::Bse::TrackPartSeq & cseq)
4435 {
4436  SfiSeq *sfi_seq = sfi_seq_new ();
4437  for (guint i = 0; i < cseq.length(); i++)
4438  {
4439  GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
4440  ::Bse::TrackPart::value_set_boxed (element, cseq[i]);
4441  }
4442  return sfi_seq;
4443 }
4444 
4446 TrackPartSeq::value_get_boxed (const GValue *value)
4447 {
4448  return ::Sfi::cxx_value_get_boxed_sequence< TrackPartSeq> (value);
4449 }
4450 
4451 void
4452 TrackPartSeq::value_set_boxed (GValue *value, const ::Bse::TrackPartSeq & self)
4453 {
4454  ::Sfi::cxx_value_set_boxed_sequence< TrackPartSeq> (value, self);
4455 }
4456 
4457 GParamSpec*
4458 TrackPartSeq::get_element()
4459 {
4460  static GParamSpec *element = NULL;
4461  if (!element) {
4462  element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",623, "tparts", Bse::TrackPart::get_fields()));
4463  g_param_spec_sink (element);
4464  }
4465  return element;
4466 }
4467 
4468 
4469 
4470 /* class implementations */
4471 
4472 
4473 /* procedure implementations */
4474 
4475 
4476 /* bsebasics.idl type registrations */
4477 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_BSEBASICS_IDL() \
4478  BSE_CXX_REGISTER_ENUM (MusicalTuningType); \
4479  BSE_CXX_REGISTER_ENUM (MidiSignalType); \
4480  BSE_CXX_REGISTER_ENUM (MidiControlType); \
4481  BSE_CXX_REGISTER_ENUM (MidiChannelEventType); \
4482  BSE_CXX_REGISTER_RECORD (MidiChannelEvent); \
4483  BSE_CXX_REGISTER_RECORD (PropertyCandidates); \
4484  BSE_CXX_REGISTER_RECORD (PartNote); \
4485  BSE_CXX_REGISTER_RECORD (PartControl); \
4486  BSE_CXX_REGISTER_RECORD (NoteDescription); \
4487  BSE_CXX_REGISTER_RECORD (NoteSequence); \
4488  BSE_CXX_REGISTER_RECORD (Icon); \
4489  BSE_CXX_REGISTER_RECORD (Category); \
4490  BSE_CXX_REGISTER_RECORD (Dot); \
4491  BSE_CXX_REGISTER_RECORD (PartLink); \
4492  BSE_CXX_REGISTER_RECORD (TrackPart); \
4493  BSE_CXX_REGISTER_RECORD (SongTiming); \
4494  BSE_CXX_REGISTER_RECORD (SampleFileInfo); \
4495  BSE_CXX_REGISTER_RECORD (GConfig); \
4496  BSE_CXX_REGISTER_SEQUENCE (IntSeq); \
4497  BSE_CXX_REGISTER_SEQUENCE (TypeSeq); \
4498  BSE_CXX_REGISTER_SEQUENCE (StringSeq); \
4499  BSE_CXX_REGISTER_SEQUENCE (FloatSeq); \
4500  BSE_CXX_REGISTER_SEQUENCE (NoteSeq); \
4501  BSE_CXX_REGISTER_SEQUENCE (ItemSeq); \
4502  BSE_CXX_REGISTER_SEQUENCE (PartNoteSeq); \
4503  BSE_CXX_REGISTER_SEQUENCE (PartControlSeq); \
4504  BSE_CXX_REGISTER_SEQUENCE (PixelSeq); \
4505  BSE_CXX_REGISTER_SEQUENCE (CategorySeq); \
4506  BSE_CXX_REGISTER_SEQUENCE (DotSeq); \
4507  BSE_CXX_REGISTER_SEQUENCE (PartLinkSeq); \
4508  BSE_CXX_REGISTER_SEQUENCE (TrackPartSeq); \
4509  /* bsebasics.idl type registrations done */
4510 } // Bse
4511 
4512 /*-------- end ../sfi/sfidl generated code --------*/
4513 
4514 
Definition: bsebasics.genidl.hh:481
Definition: bsebasics.genidl.hh:679
Definition: bsebasics.genidl.hh:616
Definition: bsetrack.hh:24
Definition: bsebasics.genidl.hh:789
Definition: sficxx.hh:15
Definition: bsebasics.genidl.hh:893
Definition: bsebasics.genidl.hh:745
Definition: bsebasics.genidl.hh:556
std::string String
Definition: sficxx.hh:325
Definition: sfiparams.hh:63
Definition: bsebasics.genidl.hh:496
Definition: bsebasics.genidl.hh:876
Definition: sfitypes.hh:32
Definition: bsebasics.genidl.hh:541
Definition: sfiparams.hh:68
Definition: bsebasics.genidl.hh:631
Definition: bsebasics.genidl.hh:586
Definition: bsebasics.genidl.hh:822
Definition: sficxx.hh:168
Definition: bsebasics.genidl.hh:934
Definition: bsebasics.genidl.hh:646
Definition: bsebasics.genidl.hh:661
Definition: bsebasics.genidl.hh:764
Definition: bsebasics.genidl.hh:723
Definition: bsepart.hh:26
Definition: bsebasics.genidl.hh:914
Definition: bsebasics.genidl.hh:842
Definition: sficxx.hh:142
Definition: bsebasics.genidl.hh:705
Definition: bsebasics.genidl.hh:571
Definition: bsebasics.genidl.hh:526
Definition: bsebasics.genidl.hh:805