BEAST/BSE - Better Audio System and Sound Engine  0.8.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
bsebasics.genidl.hh
Go to the documentation of this file.
00001 
00002 /*-------- begin ../sfi/sfidl generated code --------*/
00003 
00004 
00005 
00006 #include <bse/bsecxxplugin.hh>
00007 
00008 
00009 /* enum prototypes */
00010 namespace Bse {
00011 #define BSE_TYPE_MUSICAL_TUNING_TYPE            BSE_CXX_DECLARED_ENUM_TYPE (Bse, MusicalTuningType)
00012 #define BSE_TYPE_MIDI_SIGNAL_TYPE               BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiSignalType)
00013 #define BSE_TYPE_MIDI_CONTROL_TYPE              BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiControlType)
00014 #define BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE                BSE_CXX_DECLARED_ENUM_TYPE (Bse, MidiChannelEventType)
00015 
00016 
00017 /* choice prototypes */
00018 static SfiChoiceValues MusicalTuningType_choice_values();
00019 static SfiChoiceValues MidiSignalType_choice_values();
00020 static SfiChoiceValues MidiControlType_choice_values();
00021 static SfiChoiceValues MidiChannelEventType_choice_values();
00022 
00023 
00024 /* record prototypes */
00025 class MidiChannelEvent;
00026 typedef Sfi::RecordHandle<MidiChannelEvent> MidiChannelEventHandle;
00027 #define BSE_TYPE_MIDI_CHANNEL_EVENT             BSE_CXX_DECLARED_RECORD_TYPE (Bse, MidiChannelEvent)
00028 class PropertyCandidates;
00029 typedef Sfi::RecordHandle<PropertyCandidates> PropertyCandidatesHandle;
00030 #define BSE_TYPE_PROPERTY_CANDIDATES            BSE_CXX_DECLARED_RECORD_TYPE (Bse, PropertyCandidates)
00031 class PartNote;
00032 typedef Sfi::RecordHandle<PartNote> PartNoteHandle;
00033 #define BSE_TYPE_PART_NOTE              BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartNote)
00034 class PartControl;
00035 typedef Sfi::RecordHandle<PartControl> PartControlHandle;
00036 #define BSE_TYPE_PART_CONTROL           BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartControl)
00037 class NoteDescription;
00038 typedef Sfi::RecordHandle<NoteDescription> NoteDescriptionHandle;
00039 #define BSE_TYPE_NOTE_DESCRIPTION               BSE_CXX_DECLARED_RECORD_TYPE (Bse, NoteDescription)
00040 class NoteSequence;
00041 typedef Sfi::RecordHandle<NoteSequence> NoteSequenceHandle;
00042 #define BSE_TYPE_NOTE_SEQUENCE          BSE_CXX_DECLARED_RECORD_TYPE (Bse, NoteSequence)
00043 class Icon;
00044 typedef Sfi::RecordHandle<Icon> IconHandle;
00045 #define BSE_TYPE_ICON           BSE_CXX_DECLARED_RECORD_TYPE (Bse, Icon)
00046 class Category;
00047 typedef Sfi::RecordHandle<Category> CategoryHandle;
00048 #define BSE_TYPE_CATEGORY               BSE_CXX_DECLARED_RECORD_TYPE (Bse, Category)
00049 class Dot;
00050 typedef Sfi::RecordHandle<Dot> DotHandle;
00051 #define BSE_TYPE_DOT            BSE_CXX_DECLARED_RECORD_TYPE (Bse, Dot)
00052 class PartLink;
00053 typedef Sfi::RecordHandle<PartLink> PartLinkHandle;
00054 #define BSE_TYPE_PART_LINK              BSE_CXX_DECLARED_RECORD_TYPE (Bse, PartLink)
00055 class TrackPart;
00056 typedef Sfi::RecordHandle<TrackPart> TrackPartHandle;
00057 #define BSE_TYPE_TRACK_PART             BSE_CXX_DECLARED_RECORD_TYPE (Bse, TrackPart)
00058 class SongTiming;
00059 typedef Sfi::RecordHandle<SongTiming> SongTimingHandle;
00060 #define BSE_TYPE_SONG_TIMING            BSE_CXX_DECLARED_RECORD_TYPE (Bse, SongTiming)
00061 class SampleFileInfo;
00062 typedef Sfi::RecordHandle<SampleFileInfo> SampleFileInfoHandle;
00063 #define BSE_TYPE_SAMPLE_FILE_INFO               BSE_CXX_DECLARED_RECORD_TYPE (Bse, SampleFileInfo)
00064 class GConfig;
00065 typedef Sfi::RecordHandle<GConfig> GConfigHandle;
00066 #define BSE_TYPE_GCONFIG                BSE_CXX_DECLARED_RECORD_TYPE (Bse, GConfig)
00067 
00068 
00069 /* sequence prototypes */
00070 class IntSeq;
00071 #define BSE_TYPE_INT_SEQ                BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, IntSeq)
00072 class TypeSeq;
00073 #define BSE_TYPE_TYPE_SEQ               BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, TypeSeq)
00074 class StringSeq;
00075 #define BSE_TYPE_STRING_SEQ             BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, StringSeq)
00076 class FloatSeq;
00077 #define BSE_TYPE_FLOAT_SEQ              BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, FloatSeq)
00078 class NoteSeq;
00079 #define BSE_TYPE_NOTE_SEQ               BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, NoteSeq)
00080 class ItemSeq;
00081 #define BSE_TYPE_ITEM_SEQ               BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, ItemSeq)
00082 class PartNoteSeq;
00083 #define BSE_TYPE_PART_NOTE_SEQ          BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartNoteSeq)
00084 class PartControlSeq;
00085 #define BSE_TYPE_PART_CONTROL_SEQ               BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartControlSeq)
00086 class PixelSeq;
00087 #define BSE_TYPE_PIXEL_SEQ              BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PixelSeq)
00088 class CategorySeq;
00089 #define BSE_TYPE_CATEGORY_SEQ           BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, CategorySeq)
00090 class DotSeq;
00091 #define BSE_TYPE_DOT_SEQ                BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, DotSeq)
00092 class PartLinkSeq;
00093 #define BSE_TYPE_PART_LINK_SEQ          BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, PartLinkSeq)
00094 class TrackPartSeq;
00095 #define BSE_TYPE_TRACK_PART_SEQ         BSE_CXX_DECLARED_SEQUENCE_TYPE (Bse, TrackPartSeq)
00096 
00097 
00098 /* class prototypes */
00099 
00100 
00101 /* enum definitions */
00102 enum MusicalTuningType {
00103   MUSICAL_TUNING_12_TET = 1,
00104   MUSICAL_TUNING_7_TET = 2,
00105   MUSICAL_TUNING_5_TET = 3,
00106   MUSICAL_TUNING_DIATONIC_SCALE = 4,
00107   MUSICAL_TUNING_INDIAN_SCALE = 5,
00108   MUSICAL_TUNING_PYTHAGOREAN_TUNING = 6,
00109   MUSICAL_TUNING_PENTATONIC_5_LIMIT = 7,
00110   MUSICAL_TUNING_PENTATONIC_BLUES = 8,
00111   MUSICAL_TUNING_PENTATONIC_GOGO = 9,
00112   MUSICAL_TUNING_QUARTER_COMMA_MEANTONE = 10,
00113   MUSICAL_TUNING_SILBERMANN_SORGE = 11,
00114   MUSICAL_TUNING_WERCKMEISTER_3 = 12,
00115   MUSICAL_TUNING_WERCKMEISTER_4 = 13,
00116   MUSICAL_TUNING_WERCKMEISTER_5 = 14,
00117   MUSICAL_TUNING_WERCKMEISTER_6 = 15,
00118   MUSICAL_TUNING_KIRNBERGER_3 = 16,
00119   MUSICAL_TUNING_YOUNG = 17,
00120 };
00121 enum MidiSignalType {
00122   MIDI_SIGNAL_PROGRAM = 1,
00123   MIDI_SIGNAL_PRESSURE = 2,
00124   MIDI_SIGNAL_PITCH_BEND = 3,
00125   MIDI_SIGNAL_VELOCITY = 4,
00126   MIDI_SIGNAL_FINE_TUNE = 5,
00127   MIDI_SIGNAL_CONTINUOUS_0 = 64,
00128   MIDI_SIGNAL_CONTINUOUS_1 = 65,
00129   MIDI_SIGNAL_CONTINUOUS_2 = 66,
00130   MIDI_SIGNAL_CONTINUOUS_3 = 67,
00131   MIDI_SIGNAL_CONTINUOUS_4 = 68,
00132   MIDI_SIGNAL_CONTINUOUS_5 = 69,
00133   MIDI_SIGNAL_CONTINUOUS_6 = 70,
00134   MIDI_SIGNAL_CONTINUOUS_7 = 71,
00135   MIDI_SIGNAL_CONTINUOUS_8 = 72,
00136   MIDI_SIGNAL_CONTINUOUS_9 = 73,
00137   MIDI_SIGNAL_CONTINUOUS_10 = 74,
00138   MIDI_SIGNAL_CONTINUOUS_11 = 75,
00139   MIDI_SIGNAL_CONTINUOUS_12 = 76,
00140   MIDI_SIGNAL_CONTINUOUS_13 = 77,
00141   MIDI_SIGNAL_CONTINUOUS_14 = 78,
00142   MIDI_SIGNAL_CONTINUOUS_15 = 79,
00143   MIDI_SIGNAL_CONTINUOUS_16 = 80,
00144   MIDI_SIGNAL_CONTINUOUS_17 = 81,
00145   MIDI_SIGNAL_CONTINUOUS_18 = 82,
00146   MIDI_SIGNAL_CONTINUOUS_19 = 83,
00147   MIDI_SIGNAL_CONTINUOUS_20 = 84,
00148   MIDI_SIGNAL_CONTINUOUS_21 = 85,
00149   MIDI_SIGNAL_CONTINUOUS_22 = 86,
00150   MIDI_SIGNAL_CONTINUOUS_23 = 87,
00151   MIDI_SIGNAL_CONTINUOUS_24 = 88,
00152   MIDI_SIGNAL_CONTINUOUS_25 = 89,
00153   MIDI_SIGNAL_CONTINUOUS_26 = 90,
00154   MIDI_SIGNAL_CONTINUOUS_27 = 91,
00155   MIDI_SIGNAL_CONTINUOUS_28 = 92,
00156   MIDI_SIGNAL_CONTINUOUS_29 = 93,
00157   MIDI_SIGNAL_CONTINUOUS_30 = 94,
00158   MIDI_SIGNAL_CONTINUOUS_31 = 95,
00159   MIDI_SIGNAL_CONSTANT_HIGH = 96,
00160   MIDI_SIGNAL_CONSTANT_CENTER = 97,
00161   MIDI_SIGNAL_CONSTANT_LOW = 98,
00162   MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER = 99,
00163   MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH = 100,
00164   MIDI_SIGNAL_PARAMETER = 101,
00165   MIDI_SIGNAL_NON_PARAMETER = 102,
00166   MIDI_SIGNAL_CONTROL_0 = 128,
00167   MIDI_SIGNAL_CONTROL_1 = 129,
00168   MIDI_SIGNAL_CONTROL_2 = 130,
00169   MIDI_SIGNAL_CONTROL_3 = 131,
00170   MIDI_SIGNAL_CONTROL_4 = 132,
00171   MIDI_SIGNAL_CONTROL_5 = 133,
00172   MIDI_SIGNAL_CONTROL_6 = 134,
00173   MIDI_SIGNAL_CONTROL_7 = 135,
00174   MIDI_SIGNAL_CONTROL_8 = 136,
00175   MIDI_SIGNAL_CONTROL_9 = 137,
00176   MIDI_SIGNAL_CONTROL_10 = 138,
00177   MIDI_SIGNAL_CONTROL_11 = 139,
00178   MIDI_SIGNAL_CONTROL_12 = 140,
00179   MIDI_SIGNAL_CONTROL_13 = 141,
00180   MIDI_SIGNAL_CONTROL_14 = 142,
00181   MIDI_SIGNAL_CONTROL_15 = 143,
00182   MIDI_SIGNAL_CONTROL_16 = 144,
00183   MIDI_SIGNAL_CONTROL_17 = 145,
00184   MIDI_SIGNAL_CONTROL_18 = 146,
00185   MIDI_SIGNAL_CONTROL_19 = 147,
00186   MIDI_SIGNAL_CONTROL_20 = 148,
00187   MIDI_SIGNAL_CONTROL_21 = 149,
00188   MIDI_SIGNAL_CONTROL_22 = 150,
00189   MIDI_SIGNAL_CONTROL_23 = 151,
00190   MIDI_SIGNAL_CONTROL_24 = 152,
00191   MIDI_SIGNAL_CONTROL_25 = 153,
00192   MIDI_SIGNAL_CONTROL_26 = 154,
00193   MIDI_SIGNAL_CONTROL_27 = 155,
00194   MIDI_SIGNAL_CONTROL_28 = 156,
00195   MIDI_SIGNAL_CONTROL_29 = 157,
00196   MIDI_SIGNAL_CONTROL_30 = 158,
00197   MIDI_SIGNAL_CONTROL_31 = 159,
00198   MIDI_SIGNAL_CONTROL_32 = 160,
00199   MIDI_SIGNAL_CONTROL_33 = 161,
00200   MIDI_SIGNAL_CONTROL_34 = 162,
00201   MIDI_SIGNAL_CONTROL_35 = 163,
00202   MIDI_SIGNAL_CONTROL_36 = 164,
00203   MIDI_SIGNAL_CONTROL_37 = 165,
00204   MIDI_SIGNAL_CONTROL_38 = 166,
00205   MIDI_SIGNAL_CONTROL_39 = 167,
00206   MIDI_SIGNAL_CONTROL_40 = 168,
00207   MIDI_SIGNAL_CONTROL_41 = 169,
00208   MIDI_SIGNAL_CONTROL_42 = 170,
00209   MIDI_SIGNAL_CONTROL_43 = 171,
00210   MIDI_SIGNAL_CONTROL_44 = 172,
00211   MIDI_SIGNAL_CONTROL_45 = 173,
00212   MIDI_SIGNAL_CONTROL_46 = 174,
00213   MIDI_SIGNAL_CONTROL_47 = 175,
00214   MIDI_SIGNAL_CONTROL_48 = 176,
00215   MIDI_SIGNAL_CONTROL_49 = 177,
00216   MIDI_SIGNAL_CONTROL_50 = 178,
00217   MIDI_SIGNAL_CONTROL_51 = 179,
00218   MIDI_SIGNAL_CONTROL_52 = 180,
00219   MIDI_SIGNAL_CONTROL_53 = 181,
00220   MIDI_SIGNAL_CONTROL_54 = 182,
00221   MIDI_SIGNAL_CONTROL_55 = 183,
00222   MIDI_SIGNAL_CONTROL_56 = 184,
00223   MIDI_SIGNAL_CONTROL_57 = 185,
00224   MIDI_SIGNAL_CONTROL_58 = 186,
00225   MIDI_SIGNAL_CONTROL_59 = 187,
00226   MIDI_SIGNAL_CONTROL_60 = 188,
00227   MIDI_SIGNAL_CONTROL_61 = 189,
00228   MIDI_SIGNAL_CONTROL_62 = 190,
00229   MIDI_SIGNAL_CONTROL_63 = 191,
00230   MIDI_SIGNAL_CONTROL_64 = 192,
00231   MIDI_SIGNAL_CONTROL_65 = 193,
00232   MIDI_SIGNAL_CONTROL_66 = 194,
00233   MIDI_SIGNAL_CONTROL_67 = 195,
00234   MIDI_SIGNAL_CONTROL_68 = 196,
00235   MIDI_SIGNAL_CONTROL_69 = 197,
00236   MIDI_SIGNAL_CONTROL_70 = 198,
00237   MIDI_SIGNAL_CONTROL_71 = 199,
00238   MIDI_SIGNAL_CONTROL_72 = 200,
00239   MIDI_SIGNAL_CONTROL_73 = 201,
00240   MIDI_SIGNAL_CONTROL_74 = 202,
00241   MIDI_SIGNAL_CONTROL_75 = 203,
00242   MIDI_SIGNAL_CONTROL_76 = 204,
00243   MIDI_SIGNAL_CONTROL_77 = 205,
00244   MIDI_SIGNAL_CONTROL_78 = 206,
00245   MIDI_SIGNAL_CONTROL_79 = 207,
00246   MIDI_SIGNAL_CONTROL_80 = 208,
00247   MIDI_SIGNAL_CONTROL_81 = 209,
00248   MIDI_SIGNAL_CONTROL_82 = 210,
00249   MIDI_SIGNAL_CONTROL_83 = 211,
00250   MIDI_SIGNAL_CONTROL_84 = 212,
00251   MIDI_SIGNAL_CONTROL_85 = 213,
00252   MIDI_SIGNAL_CONTROL_86 = 214,
00253   MIDI_SIGNAL_CONTROL_87 = 215,
00254   MIDI_SIGNAL_CONTROL_88 = 216,
00255   MIDI_SIGNAL_CONTROL_89 = 217,
00256   MIDI_SIGNAL_CONTROL_90 = 218,
00257   MIDI_SIGNAL_CONTROL_91 = 219,
00258   MIDI_SIGNAL_CONTROL_92 = 220,
00259   MIDI_SIGNAL_CONTROL_93 = 221,
00260   MIDI_SIGNAL_CONTROL_94 = 222,
00261   MIDI_SIGNAL_CONTROL_95 = 223,
00262   MIDI_SIGNAL_CONTROL_96 = 224,
00263   MIDI_SIGNAL_CONTROL_97 = 225,
00264   MIDI_SIGNAL_CONTROL_98 = 226,
00265   MIDI_SIGNAL_CONTROL_99 = 227,
00266   MIDI_SIGNAL_CONTROL_100 = 228,
00267   MIDI_SIGNAL_CONTROL_101 = 229,
00268   MIDI_SIGNAL_CONTROL_102 = 230,
00269   MIDI_SIGNAL_CONTROL_103 = 231,
00270   MIDI_SIGNAL_CONTROL_104 = 232,
00271   MIDI_SIGNAL_CONTROL_105 = 233,
00272   MIDI_SIGNAL_CONTROL_106 = 234,
00273   MIDI_SIGNAL_CONTROL_107 = 235,
00274   MIDI_SIGNAL_CONTROL_108 = 236,
00275   MIDI_SIGNAL_CONTROL_109 = 237,
00276   MIDI_SIGNAL_CONTROL_110 = 238,
00277   MIDI_SIGNAL_CONTROL_111 = 239,
00278   MIDI_SIGNAL_CONTROL_112 = 240,
00279   MIDI_SIGNAL_CONTROL_113 = 241,
00280   MIDI_SIGNAL_CONTROL_114 = 242,
00281   MIDI_SIGNAL_CONTROL_115 = 243,
00282   MIDI_SIGNAL_CONTROL_116 = 244,
00283   MIDI_SIGNAL_CONTROL_117 = 245,
00284   MIDI_SIGNAL_CONTROL_118 = 246,
00285   MIDI_SIGNAL_CONTROL_119 = 247,
00286   MIDI_SIGNAL_CONTROL_120 = 248,
00287   MIDI_SIGNAL_CONTROL_121 = 249,
00288   MIDI_SIGNAL_CONTROL_122 = 250,
00289   MIDI_SIGNAL_CONTROL_123 = 251,
00290   MIDI_SIGNAL_CONTROL_124 = 252,
00291   MIDI_SIGNAL_CONTROL_125 = 253,
00292   MIDI_SIGNAL_CONTROL_126 = 254,
00293   MIDI_SIGNAL_CONTROL_127 = 255,
00294 };
00295 enum MidiControlType {
00296   MIDI_CONTROL_NONE = 0,
00297   MIDI_CONTROL_CONTINUOUS_0 = 64,
00298   MIDI_CONTROL_CONTINUOUS_1 = 65,
00299   MIDI_CONTROL_CONTINUOUS_2 = 66,
00300   MIDI_CONTROL_CONTINUOUS_3 = 67,
00301   MIDI_CONTROL_CONTINUOUS_4 = 68,
00302   MIDI_CONTROL_CONTINUOUS_5 = 69,
00303   MIDI_CONTROL_CONTINUOUS_6 = 70,
00304   MIDI_CONTROL_CONTINUOUS_7 = 71,
00305   MIDI_CONTROL_CONTINUOUS_8 = 72,
00306   MIDI_CONTROL_CONTINUOUS_9 = 73,
00307   MIDI_CONTROL_CONTINUOUS_10 = 74,
00308   MIDI_CONTROL_CONTINUOUS_11 = 75,
00309   MIDI_CONTROL_CONTINUOUS_12 = 76,
00310   MIDI_CONTROL_CONTINUOUS_13 = 77,
00311   MIDI_CONTROL_CONTINUOUS_14 = 78,
00312   MIDI_CONTROL_CONTINUOUS_15 = 79,
00313   MIDI_CONTROL_CONTINUOUS_16 = 80,
00314   MIDI_CONTROL_CONTINUOUS_17 = 81,
00315   MIDI_CONTROL_CONTINUOUS_18 = 82,
00316   MIDI_CONTROL_CONTINUOUS_19 = 83,
00317   MIDI_CONTROL_CONTINUOUS_20 = 84,
00318   MIDI_CONTROL_CONTINUOUS_21 = 85,
00319   MIDI_CONTROL_CONTINUOUS_22 = 86,
00320   MIDI_CONTROL_CONTINUOUS_23 = 87,
00321   MIDI_CONTROL_CONTINUOUS_24 = 88,
00322   MIDI_CONTROL_CONTINUOUS_25 = 89,
00323   MIDI_CONTROL_CONTINUOUS_26 = 90,
00324   MIDI_CONTROL_CONTINUOUS_27 = 91,
00325   MIDI_CONTROL_CONTINUOUS_28 = 92,
00326   MIDI_CONTROL_CONTINUOUS_29 = 93,
00327   MIDI_CONTROL_CONTINUOUS_30 = 94,
00328   MIDI_CONTROL_CONTINUOUS_31 = 95,
00329   MIDI_CONTROL_0 = 128,
00330   MIDI_CONTROL_1 = 129,
00331   MIDI_CONTROL_2 = 130,
00332   MIDI_CONTROL_3 = 131,
00333   MIDI_CONTROL_4 = 132,
00334   MIDI_CONTROL_5 = 133,
00335   MIDI_CONTROL_6 = 134,
00336   MIDI_CONTROL_7 = 135,
00337   MIDI_CONTROL_8 = 136,
00338   MIDI_CONTROL_9 = 137,
00339   MIDI_CONTROL_10 = 138,
00340   MIDI_CONTROL_11 = 139,
00341   MIDI_CONTROL_12 = 140,
00342   MIDI_CONTROL_13 = 141,
00343   MIDI_CONTROL_14 = 142,
00344   MIDI_CONTROL_15 = 143,
00345   MIDI_CONTROL_16 = 144,
00346   MIDI_CONTROL_17 = 145,
00347   MIDI_CONTROL_18 = 146,
00348   MIDI_CONTROL_19 = 147,
00349   MIDI_CONTROL_20 = 148,
00350   MIDI_CONTROL_21 = 149,
00351   MIDI_CONTROL_22 = 150,
00352   MIDI_CONTROL_23 = 151,
00353   MIDI_CONTROL_24 = 152,
00354   MIDI_CONTROL_25 = 153,
00355   MIDI_CONTROL_26 = 154,
00356   MIDI_CONTROL_27 = 155,
00357   MIDI_CONTROL_28 = 156,
00358   MIDI_CONTROL_29 = 157,
00359   MIDI_CONTROL_30 = 158,
00360   MIDI_CONTROL_31 = 159,
00361   MIDI_CONTROL_32 = 160,
00362   MIDI_CONTROL_33 = 161,
00363   MIDI_CONTROL_34 = 162,
00364   MIDI_CONTROL_35 = 163,
00365   MIDI_CONTROL_36 = 164,
00366   MIDI_CONTROL_37 = 165,
00367   MIDI_CONTROL_38 = 166,
00368   MIDI_CONTROL_39 = 167,
00369   MIDI_CONTROL_40 = 168,
00370   MIDI_CONTROL_41 = 169,
00371   MIDI_CONTROL_42 = 170,
00372   MIDI_CONTROL_43 = 171,
00373   MIDI_CONTROL_44 = 172,
00374   MIDI_CONTROL_45 = 173,
00375   MIDI_CONTROL_46 = 174,
00376   MIDI_CONTROL_47 = 175,
00377   MIDI_CONTROL_48 = 176,
00378   MIDI_CONTROL_49 = 177,
00379   MIDI_CONTROL_50 = 178,
00380   MIDI_CONTROL_51 = 179,
00381   MIDI_CONTROL_52 = 180,
00382   MIDI_CONTROL_53 = 181,
00383   MIDI_CONTROL_54 = 182,
00384   MIDI_CONTROL_55 = 183,
00385   MIDI_CONTROL_56 = 184,
00386   MIDI_CONTROL_57 = 185,
00387   MIDI_CONTROL_58 = 186,
00388   MIDI_CONTROL_59 = 187,
00389   MIDI_CONTROL_60 = 188,
00390   MIDI_CONTROL_61 = 189,
00391   MIDI_CONTROL_62 = 190,
00392   MIDI_CONTROL_63 = 191,
00393   MIDI_CONTROL_64 = 192,
00394   MIDI_CONTROL_65 = 193,
00395   MIDI_CONTROL_66 = 194,
00396   MIDI_CONTROL_67 = 195,
00397   MIDI_CONTROL_68 = 196,
00398   MIDI_CONTROL_69 = 197,
00399   MIDI_CONTROL_70 = 198,
00400   MIDI_CONTROL_71 = 199,
00401   MIDI_CONTROL_72 = 200,
00402   MIDI_CONTROL_73 = 201,
00403   MIDI_CONTROL_74 = 202,
00404   MIDI_CONTROL_75 = 203,
00405   MIDI_CONTROL_76 = 204,
00406   MIDI_CONTROL_77 = 205,
00407   MIDI_CONTROL_78 = 206,
00408   MIDI_CONTROL_79 = 207,
00409   MIDI_CONTROL_80 = 208,
00410   MIDI_CONTROL_81 = 209,
00411   MIDI_CONTROL_82 = 210,
00412   MIDI_CONTROL_83 = 211,
00413   MIDI_CONTROL_84 = 212,
00414   MIDI_CONTROL_85 = 213,
00415   MIDI_CONTROL_86 = 214,
00416   MIDI_CONTROL_87 = 215,
00417   MIDI_CONTROL_88 = 216,
00418   MIDI_CONTROL_89 = 217,
00419   MIDI_CONTROL_90 = 218,
00420   MIDI_CONTROL_91 = 219,
00421   MIDI_CONTROL_92 = 220,
00422   MIDI_CONTROL_93 = 221,
00423   MIDI_CONTROL_94 = 222,
00424   MIDI_CONTROL_95 = 223,
00425   MIDI_CONTROL_96 = 224,
00426   MIDI_CONTROL_97 = 225,
00427   MIDI_CONTROL_98 = 226,
00428   MIDI_CONTROL_99 = 227,
00429   MIDI_CONTROL_100 = 228,
00430   MIDI_CONTROL_101 = 229,
00431   MIDI_CONTROL_102 = 230,
00432   MIDI_CONTROL_103 = 231,
00433   MIDI_CONTROL_104 = 232,
00434   MIDI_CONTROL_105 = 233,
00435   MIDI_CONTROL_106 = 234,
00436   MIDI_CONTROL_107 = 235,
00437   MIDI_CONTROL_108 = 236,
00438   MIDI_CONTROL_109 = 237,
00439   MIDI_CONTROL_110 = 238,
00440   MIDI_CONTROL_111 = 239,
00441   MIDI_CONTROL_112 = 240,
00442   MIDI_CONTROL_113 = 241,
00443   MIDI_CONTROL_114 = 242,
00444   MIDI_CONTROL_115 = 243,
00445   MIDI_CONTROL_116 = 244,
00446   MIDI_CONTROL_117 = 245,
00447   MIDI_CONTROL_118 = 246,
00448   MIDI_CONTROL_119 = 247,
00449   MIDI_CONTROL_120 = 248,
00450   MIDI_CONTROL_121 = 249,
00451   MIDI_CONTROL_122 = 250,
00452   MIDI_CONTROL_123 = 251,
00453   MIDI_CONTROL_124 = 252,
00454   MIDI_CONTROL_125 = 253,
00455   MIDI_CONTROL_126 = 254,
00456   MIDI_CONTROL_127 = 255,
00457 };
00458 enum MidiChannelEventType {
00459   MIDI_EVENT_NONE = 0,
00460   MIDI_EVENT_NOTE_OFF = 1,
00461   MIDI_EVENT_NOTE_ON = 2,
00462   MIDI_EVENT_KEY_PRESSURE = 3,
00463   MIDI_EVENT_CONTROL_CHANGE = 4,
00464   MIDI_EVENT_PROGRAM_CHANGE = 5,
00465   MIDI_EVENT_CHANNEL_PRESSURE = 6,
00466   MIDI_EVENT_PITCH_BEND = 7,
00467   MIDI_EVENT_SYS_EX = 8,
00468   MIDI_EVENT_SONG_POINTER = 9,
00469   MIDI_EVENT_SONG_SELECT = 10,
00470   MIDI_EVENT_TUNE = 11,
00471   MIDI_EVENT_TIMING_CLOCK = 12,
00472   MIDI_EVENT_SONG_START = 13,
00473   MIDI_EVENT_SONG_CONTINUE = 14,
00474   MIDI_EVENT_SONG_STOP = 15,
00475   MIDI_EVENT_ACTIVE_SENSING = 16,
00476   MIDI_EVENT_SYSTEM_RESET = 17,
00477 };
00478 
00479 
00480 /* sequence definitions */
00481 class IntSeq : public Sfi::Sequence< Sfi::Int > {
00482 public:
00483   IntSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
00484   static inline ::Bse::IntSeq from_seq (SfiSeq *seq);
00485   static inline SfiSeq *to_seq (const ::Bse::IntSeq & seq);
00486   static inline ::Bse::IntSeq value_get_boxed (const GValue *value);
00487   static inline void value_set_boxed (GValue *value, const ::Bse::IntSeq & self);
00488   static inline const char* options   () { return ""; }
00489   static inline const char* blurb     () { return ""; }
00490   static inline const char* authors   () { return ""; }
00491   static inline const char* license   () { return ""; }
00492   static inline const char* type_name () { return "BseIntSeq"; }
00493   static inline GParamSpec* get_element ();
00494 };
00495 
00496 class TypeSeq : public Sfi::Sequence< Sfi::String > {
00497 public:
00498   TypeSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::String > (n) {}
00499   static inline ::Bse::TypeSeq from_seq (SfiSeq *seq);
00500   static inline SfiSeq *to_seq (const ::Bse::TypeSeq & seq);
00501   static inline ::Bse::TypeSeq value_get_boxed (const GValue *value);
00502   static inline void value_set_boxed (GValue *value, const ::Bse::TypeSeq & self);
00503   static inline const char* options   () { return ""; }
00504   static inline const char* blurb     () { return ""; }
00505   static inline const char* authors   () { return ""; }
00506   static inline const char* license   () { return ""; }
00507   static inline const char* type_name () { return "BseTypeSeq"; }
00508   static inline GParamSpec* get_element ();
00509 };
00510 
00511 class StringSeq : public Sfi::Sequence< Sfi::String > {
00512 public:
00513   StringSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::String > (n) {}
00514   static inline ::Bse::StringSeq from_seq (SfiSeq *seq);
00515   static inline SfiSeq *to_seq (const ::Bse::StringSeq & seq);
00516   static inline ::Bse::StringSeq value_get_boxed (const GValue *value);
00517   static inline void value_set_boxed (GValue *value, const ::Bse::StringSeq & self);
00518   static inline const char* options   () { return ""; }
00519   static inline const char* blurb     () { return ""; }
00520   static inline const char* authors   () { return ""; }
00521   static inline const char* license   () { return ""; }
00522   static inline const char* type_name () { return "BseStringSeq"; }
00523   static inline GParamSpec* get_element ();
00524 };
00525 
00526 class FloatSeq : public Sfi::Sequence< Sfi::Real > {
00527 public:
00528   FloatSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Real > (n) {}
00529   static inline ::Bse::FloatSeq from_seq (SfiSeq *seq);
00530   static inline SfiSeq *to_seq (const ::Bse::FloatSeq & seq);
00531   static inline ::Bse::FloatSeq value_get_boxed (const GValue *value);
00532   static inline void value_set_boxed (GValue *value, const ::Bse::FloatSeq & self);
00533   static inline const char* options   () { return ""; }
00534   static inline const char* blurb     () { return ""; }
00535   static inline const char* authors   () { return ""; }
00536   static inline const char* license   () { return ""; }
00537   static inline const char* type_name () { return "BseFloatSeq"; }
00538   static inline GParamSpec* get_element ();
00539 };
00540 
00541 class NoteSeq : public Sfi::Sequence< Sfi::Int > {
00542 public:
00543   NoteSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
00544   static inline ::Bse::NoteSeq from_seq (SfiSeq *seq);
00545   static inline SfiSeq *to_seq (const ::Bse::NoteSeq & seq);
00546   static inline ::Bse::NoteSeq value_get_boxed (const GValue *value);
00547   static inline void value_set_boxed (GValue *value, const ::Bse::NoteSeq & self);
00548   static inline const char* options   () { return ""; }
00549   static inline const char* blurb     () { return ""; }
00550   static inline const char* authors   () { return ""; }
00551   static inline const char* license   () { return ""; }
00552   static inline const char* type_name () { return "BseNoteSeq"; }
00553   static inline GParamSpec* get_element ();
00554 };
00555 
00556 class ItemSeq : public Sfi::Sequence< BseItem* > {
00557 public:
00558   ItemSeq (unsigned int n = 0) : Sfi::Sequence< BseItem* > (n) {}
00559   static inline ::Bse::ItemSeq from_seq (SfiSeq *seq);
00560   static inline SfiSeq *to_seq (const ::Bse::ItemSeq & seq);
00561   static inline ::Bse::ItemSeq value_get_boxed (const GValue *value);
00562   static inline void value_set_boxed (GValue *value, const ::Bse::ItemSeq & self);
00563   static inline const char* options   () { return ""; }
00564   static inline const char* blurb     () { return "A list of BSE items or derived types."; }
00565   static inline const char* authors   () { return ""; }
00566   static inline const char* license   () { return ""; }
00567   static inline const char* type_name () { return "BseItemSeq"; }
00568   static inline GParamSpec* get_element ();
00569 };
00570 
00571 class PartNoteSeq : public Sfi::Sequence< ::Bse::PartNoteHandle > {
00572 public:
00573   PartNoteSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartNoteHandle > (n) {}
00574   static inline ::Bse::PartNoteSeq from_seq (SfiSeq *seq);
00575   static inline SfiSeq *to_seq (const ::Bse::PartNoteSeq & seq);
00576   static inline ::Bse::PartNoteSeq value_get_boxed (const GValue *value);
00577   static inline void value_set_boxed (GValue *value, const ::Bse::PartNoteSeq & self);
00578   static inline const char* options   () { return ""; }
00579   static inline const char* blurb     () { return "A list of part notes"; }
00580   static inline const char* authors   () { return ""; }
00581   static inline const char* license   () { return ""; }
00582   static inline const char* type_name () { return "BsePartNoteSeq"; }
00583   static inline GParamSpec* get_element ();
00584 };
00585 
00586 class PartControlSeq : public Sfi::Sequence< ::Bse::PartControlHandle > {
00587 public:
00588   PartControlSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartControlHandle > (n) {}
00589   static inline ::Bse::PartControlSeq from_seq (SfiSeq *seq);
00590   static inline SfiSeq *to_seq (const ::Bse::PartControlSeq & seq);
00591   static inline ::Bse::PartControlSeq value_get_boxed (const GValue *value);
00592   static inline void value_set_boxed (GValue *value, const ::Bse::PartControlSeq & self);
00593   static inline const char* options   () { return ""; }
00594   static inline const char* blurb     () { return "A list of part control events"; }
00595   static inline const char* authors   () { return ""; }
00596   static inline const char* license   () { return ""; }
00597   static inline const char* type_name () { return "BsePartControlSeq"; }
00598   static inline GParamSpec* get_element ();
00599 };
00600 
00601 class PixelSeq : public Sfi::Sequence< Sfi::Int > {
00602 public:
00603   PixelSeq (unsigned int n = 0) : Sfi::Sequence< Sfi::Int > (n) {}
00604   static inline ::Bse::PixelSeq from_seq (SfiSeq *seq);
00605   static inline SfiSeq *to_seq (const ::Bse::PixelSeq & seq);
00606   static inline ::Bse::PixelSeq value_get_boxed (const GValue *value);
00607   static inline void value_set_boxed (GValue *value, const ::Bse::PixelSeq & self);
00608   static inline const char* options   () { return ""; }
00609   static inline const char* blurb     () { return ""; }
00610   static inline const char* authors   () { return ""; }
00611   static inline const char* license   () { return ""; }
00612   static inline const char* type_name () { return "BsePixelSeq"; }
00613   static inline GParamSpec* get_element ();
00614 };
00615 
00616 class CategorySeq : public Sfi::Sequence< ::Bse::CategoryHandle > {
00617 public:
00618   CategorySeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::CategoryHandle > (n) {}
00619   static inline ::Bse::CategorySeq from_seq (SfiSeq *seq);
00620   static inline SfiSeq *to_seq (const ::Bse::CategorySeq & seq);
00621   static inline ::Bse::CategorySeq value_get_boxed (const GValue *value);
00622   static inline void value_set_boxed (GValue *value, const ::Bse::CategorySeq & self);
00623   static inline const char* options   () { return ""; }
00624   static inline const char* blurb     () { return ""; }
00625   static inline const char* authors   () { return ""; }
00626   static inline const char* license   () { return ""; }
00627   static inline const char* type_name () { return "BseCategorySeq"; }
00628   static inline GParamSpec* get_element ();
00629 };
00630 
00631 class DotSeq : public Sfi::Sequence< ::Bse::DotHandle > {
00632 public:
00633   DotSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::DotHandle > (n) {}
00634   static inline ::Bse::DotSeq from_seq (SfiSeq *seq);
00635   static inline SfiSeq *to_seq (const ::Bse::DotSeq & seq);
00636   static inline ::Bse::DotSeq value_get_boxed (const GValue *value);
00637   static inline void value_set_boxed (GValue *value, const ::Bse::DotSeq & self);
00638   static inline const char* options   () { return ""; }
00639   static inline const char* blurb     () { return ""; }
00640   static inline const char* authors   () { return ""; }
00641   static inline const char* license   () { return ""; }
00642   static inline const char* type_name () { return "BseDotSeq"; }
00643   static inline GParamSpec* get_element ();
00644 };
00645 
00646 class PartLinkSeq : public Sfi::Sequence< ::Bse::PartLinkHandle > {
00647 public:
00648   PartLinkSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::PartLinkHandle > (n) {}
00649   static inline ::Bse::PartLinkSeq from_seq (SfiSeq *seq);
00650   static inline SfiSeq *to_seq (const ::Bse::PartLinkSeq & seq);
00651   static inline ::Bse::PartLinkSeq value_get_boxed (const GValue *value);
00652   static inline void value_set_boxed (GValue *value, const ::Bse::PartLinkSeq & self);
00653   static inline const char* options   () { return ""; }
00654   static inline const char* blurb     () { return ""; }
00655   static inline const char* authors   () { return ""; }
00656   static inline const char* license   () { return ""; }
00657   static inline const char* type_name () { return "BsePartLinkSeq"; }
00658   static inline GParamSpec* get_element ();
00659 };
00660 
00661 class TrackPartSeq : public Sfi::Sequence< ::Bse::TrackPartHandle > {
00662 public:
00663   TrackPartSeq (unsigned int n = 0) : Sfi::Sequence< ::Bse::TrackPartHandle > (n) {}
00664   static inline ::Bse::TrackPartSeq from_seq (SfiSeq *seq);
00665   static inline SfiSeq *to_seq (const ::Bse::TrackPartSeq & seq);
00666   static inline ::Bse::TrackPartSeq value_get_boxed (const GValue *value);
00667   static inline void value_set_boxed (GValue *value, const ::Bse::TrackPartSeq & self);
00668   static inline const char* options   () { return ""; }
00669   static inline const char* blurb     () { return ""; }
00670   static inline const char* authors   () { return ""; }
00671   static inline const char* license   () { return ""; }
00672   static inline const char* type_name () { return "BseTrackPartSeq"; }
00673   static inline GParamSpec* get_element ();
00674 };
00675 
00676 
00677 
00678 /* record definitions */
00679 class MidiChannelEvent : public ::Sfi::GNewable {
00680 public:
00681   ::Bse::MidiChannelEventType event_type;
00682   Sfi::Int channel;
00683   Sfi::Num tick_stamp;
00684   Sfi::Real frequency;
00685   Sfi::Real velocity;
00686   Sfi::Int control;
00687   Sfi::Real value;
00688   Sfi::Int program;
00689   Sfi::Real intensity;
00690   Sfi::Real pitch_bend;
00691   Sfi::Int song_pointer;
00692   Sfi::Int song_number;
00693   static inline ::Bse::MidiChannelEventHandle from_rec (SfiRec *rec);
00694   static inline SfiRec *to_rec (const ::Bse::MidiChannelEventHandle & ptr);
00695   static inline ::Bse::MidiChannelEventHandle value_get_boxed (const GValue *value);
00696   static inline void value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self);
00697   static inline const char* options   () { return ""; }
00698   static inline const char* blurb     () { return ""; }
00699   static inline const char* authors   () { return ""; }
00700   static inline const char* license   () { return ""; }
00701   static inline const char* type_name () { return "BseMidiChannelEvent"; }
00702   static inline SfiRecFields get_fields ();
00703 };
00704 
00705 class PropertyCandidates : public ::Sfi::GNewable {
00706 public:
00707   Sfi::String label;
00708   Sfi::String tooltip;
00709   ::Bse::ItemSeq items;
00710   ::Bse::TypeSeq partitions;
00711   static inline ::Bse::PropertyCandidatesHandle from_rec (SfiRec *rec);
00712   static inline SfiRec *to_rec (const ::Bse::PropertyCandidatesHandle & ptr);
00713   static inline ::Bse::PropertyCandidatesHandle value_get_boxed (const GValue *value);
00714   static inline void value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self);
00715   static inline const char* options   () { return ""; }
00716   static inline const char* blurb     () { return "A strcuture describing tentative property values."; }
00717   static inline const char* authors   () { return ""; }
00718   static inline const char* license   () { return ""; }
00719   static inline const char* type_name () { return "BsePropertyCandidates"; }
00720   static inline SfiRecFields get_fields ();
00721 };
00722 
00723 class PartNote : public ::Sfi::GNewable {
00724 public:
00725   Sfi::Int id;
00726   Sfi::Int channel;
00727   Sfi::Int tick;
00728   Sfi::Int duration;
00729   Sfi::Int note;
00730   Sfi::Int fine_tune;
00731   Sfi::Real velocity;
00732   bool selected;
00733   static inline ::Bse::PartNoteHandle from_rec (SfiRec *rec);
00734   static inline SfiRec *to_rec (const ::Bse::PartNoteHandle & ptr);
00735   static inline ::Bse::PartNoteHandle value_get_boxed (const GValue *value);
00736   static inline void value_set_boxed (GValue *value, const ::Bse::PartNoteHandle & self);
00737   static inline const char* options   () { return ""; }
00738   static inline const char* blurb     () { return "Part specific note representation"; }
00739   static inline const char* authors   () { return ""; }
00740   static inline const char* license   () { return ""; }
00741   static inline const char* type_name () { return "BsePartNote"; }
00742   static inline SfiRecFields get_fields ();
00743 };
00744 
00745 class PartControl : public ::Sfi::GNewable {
00746 public:
00747   Sfi::Int id;
00748   Sfi::Int tick;
00749   ::Bse::MidiSignalType control_type;
00750   Sfi::Real value;
00751   bool selected;
00752   static inline ::Bse::PartControlHandle from_rec (SfiRec *rec);
00753   static inline SfiRec *to_rec (const ::Bse::PartControlHandle & ptr);
00754   static inline ::Bse::PartControlHandle value_get_boxed (const GValue *value);
00755   static inline void value_set_boxed (GValue *value, const ::Bse::PartControlHandle & self);
00756   static inline const char* options   () { return ""; }
00757   static inline const char* blurb     () { return "Part specific control event representation"; }
00758   static inline const char* authors   () { return ""; }
00759   static inline const char* license   () { return ""; }
00760   static inline const char* type_name () { return "BsePartControl"; }
00761   static inline SfiRecFields get_fields ();
00762 };
00763 
00764 class NoteDescription : public ::Sfi::GNewable {
00765 public:
00766   ::Bse::MusicalTuningType musical_tuning;
00767   Sfi::Int note;
00768   Sfi::Int octave;
00769   Sfi::Real freq;
00770   Sfi::Int fine_tune;
00771   Sfi::Int semitone;
00772   bool upshift;
00773   Sfi::Int letter;
00774   Sfi::String name;
00775   Sfi::Int max_fine_tune;
00776   Sfi::Int kammer_note;
00777   static inline ::Bse::NoteDescriptionHandle from_rec (SfiRec *rec);
00778   static inline SfiRec *to_rec (const ::Bse::NoteDescriptionHandle & ptr);
00779   static inline ::Bse::NoteDescriptionHandle value_get_boxed (const GValue *value);
00780   static inline void value_set_boxed (GValue *value, const ::Bse::NoteDescriptionHandle & self);
00781   static inline const char* options   () { return ""; }
00782   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."; }
00783   static inline const char* authors   () { return ""; }
00784   static inline const char* license   () { return ""; }
00785   static inline const char* type_name () { return "BseNoteDescription"; }
00786   static inline SfiRecFields get_fields ();
00787 };
00788 
00789 class NoteSequence : public ::Sfi::GNewable {
00790 public:
00791   Sfi::Int offset;
00792   ::Bse::NoteSeq notes;
00793   static inline ::Bse::NoteSequenceHandle from_rec (SfiRec *rec);
00794   static inline SfiRec *to_rec (const ::Bse::NoteSequenceHandle & ptr);
00795   static inline ::Bse::NoteSequenceHandle value_get_boxed (const GValue *value);
00796   static inline void value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self);
00797   static inline const char* options   () { return ""; }
00798   static inline const char* blurb     () { return ""; }
00799   static inline const char* authors   () { return ""; }
00800   static inline const char* license   () { return ""; }
00801   static inline const char* type_name () { return "BseNoteSequence"; }
00802   static inline SfiRecFields get_fields ();
00803 };
00804 
00805 class Icon : public ::Sfi::GNewable {
00806 public:
00807   Sfi::Int width;
00808   Sfi::Int height;
00809   ::Bse::PixelSeq pixel_seq;
00810   static inline ::Bse::IconHandle from_rec (SfiRec *rec);
00811   static inline SfiRec *to_rec (const ::Bse::IconHandle & ptr);
00812   static inline ::Bse::IconHandle value_get_boxed (const GValue *value);
00813   static inline void value_set_boxed (GValue *value, const ::Bse::IconHandle & self);
00814   static inline const char* options   () { return ""; }
00815   static inline const char* blurb     () { return "BSE icon representation."; }
00816   static inline const char* authors   () { return ""; }
00817   static inline const char* license   () { return ""; }
00818   static inline const char* type_name () { return "BseIcon"; }
00819   static inline SfiRecFields get_fields ();
00820 };
00821 
00822 class Category : public ::Sfi::GNewable {
00823 public:
00824   Sfi::Int category_id;
00825   Sfi::String category;
00826   Sfi::Int mindex;
00827   Sfi::Int lindex;
00828   Sfi::String type;
00829   ::Bse::IconHandle icon;
00830   static inline ::Bse::CategoryHandle from_rec (SfiRec *rec);
00831   static inline SfiRec *to_rec (const ::Bse::CategoryHandle & ptr);
00832   static inline ::Bse::CategoryHandle value_get_boxed (const GValue *value);
00833   static inline void value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self);
00834   static inline const char* options   () { return ""; }
00835   static inline const char* blurb     () { return ""; }
00836   static inline const char* authors   () { return ""; }
00837   static inline const char* license   () { return ""; }
00838   static inline const char* type_name () { return "BseCategory"; }
00839   static inline SfiRecFields get_fields ();
00840 };
00841 
00842 class Dot : public ::Sfi::GNewable {
00843 public:
00844   Sfi::Real x;
00845   Sfi::Real y;
00846   static inline ::Bse::DotHandle from_rec (SfiRec *rec);
00847   static inline SfiRec *to_rec (const ::Bse::DotHandle & ptr);
00848   static inline ::Bse::DotHandle value_get_boxed (const GValue *value);
00849   static inline void value_set_boxed (GValue *value, const ::Bse::DotHandle & self);
00850   static inline const char* options   () { return ""; }
00851   static inline const char* blurb     () { return ""; }
00852   static inline const char* authors   () { return ""; }
00853   static inline const char* license   () { return ""; }
00854   static inline const char* type_name () { return "BseDot"; }
00855   static inline SfiRecFields get_fields ();
00856 };
00857 
00858 class PartLink : public ::Sfi::GNewable {
00859 public:
00860   BseTrack* track;
00861   Sfi::Int tick;
00862   BsePart* part;
00863   Sfi::Int duration;
00864   static inline ::Bse::PartLinkHandle from_rec (SfiRec *rec);
00865   static inline SfiRec *to_rec (const ::Bse::PartLinkHandle & ptr);
00866   static inline ::Bse::PartLinkHandle value_get_boxed (const GValue *value);
00867   static inline void value_set_boxed (GValue *value, const ::Bse::PartLinkHandle & self);
00868   static inline const char* options   () { return ""; }
00869   static inline const char* blurb     () { return ""; }
00870   static inline const char* authors   () { return ""; }
00871   static inline const char* license   () { return ""; }
00872   static inline const char* type_name () { return "BsePartLink"; }
00873   static inline SfiRecFields get_fields ();
00874 };
00875 
00876 class TrackPart : public ::Sfi::GNewable {
00877 public:
00878   Sfi::Int tick;
00879   BsePart* part;
00880   Sfi::Int duration;
00881   static inline ::Bse::TrackPartHandle from_rec (SfiRec *rec);
00882   static inline SfiRec *to_rec (const ::Bse::TrackPartHandle & ptr);
00883   static inline ::Bse::TrackPartHandle value_get_boxed (const GValue *value);
00884   static inline void value_set_boxed (GValue *value, const ::Bse::TrackPartHandle & self);
00885   static inline const char* options   () { return ""; }
00886   static inline const char* blurb     () { return ""; }
00887   static inline const char* authors   () { return ""; }
00888   static inline const char* license   () { return ""; }
00889   static inline const char* type_name () { return "BseTrackPart"; }
00890   static inline SfiRecFields get_fields ();
00891 };
00892 
00893 class SongTiming : public ::Sfi::GNewable {
00894 public:
00895   Sfi::Int tick;
00896   Sfi::Real bpm;
00897   Sfi::Int numerator;
00898   Sfi::Int denominator;
00899   Sfi::Int tpqn;
00900   Sfi::Int tpt;
00901   Sfi::Real stamp_ticks;
00902   static inline ::Bse::SongTimingHandle from_rec (SfiRec *rec);
00903   static inline SfiRec *to_rec (const ::Bse::SongTimingHandle & ptr);
00904   static inline ::Bse::SongTimingHandle value_get_boxed (const GValue *value);
00905   static inline void value_set_boxed (GValue *value, const ::Bse::SongTimingHandle & self);
00906   static inline const char* options   () { return ""; }
00907   static inline const char* blurb     () { return ""; }
00908   static inline const char* authors   () { return ""; }
00909   static inline const char* license   () { return ""; }
00910   static inline const char* type_name () { return "BseSongTiming"; }
00911   static inline SfiRecFields get_fields ();
00912 };
00913 
00914 class SampleFileInfo : public ::Sfi::GNewable {
00915 public:
00916   Sfi::String file;
00917   Sfi::Int size;
00918   Sfi::Num mtime;
00919   Sfi::String loader;
00920   ::Bse::StringSeq waves;
00921   Sfi::Int error;
00922   static inline ::Bse::SampleFileInfoHandle from_rec (SfiRec *rec);
00923   static inline SfiRec *to_rec (const ::Bse::SampleFileInfoHandle & ptr);
00924   static inline ::Bse::SampleFileInfoHandle value_get_boxed (const GValue *value);
00925   static inline void value_set_boxed (GValue *value, const ::Bse::SampleFileInfoHandle & self);
00926   static inline const char* options   () { return ""; }
00927   static inline const char* blurb     () { return ""; }
00928   static inline const char* authors   () { return ""; }
00929   static inline const char* license   () { return ""; }
00930   static inline const char* type_name () { return "BseSampleFileInfo"; }
00931   static inline SfiRecFields get_fields ();
00932 };
00933 
00934 class GConfig : public ::Sfi::GNewable {
00935 public:
00936   Sfi::Int synth_latency;
00937   Sfi::Int synth_mixing_freq;
00938   Sfi::Int synth_control_freq;
00939   bool invert_sustain;
00940   Sfi::String author_default;
00941   Sfi::String license_default;
00942   Sfi::String sample_path;
00943   Sfi::String effect_path;
00944   Sfi::String instrument_path;
00945   Sfi::String script_path;
00946   Sfi::String plugin_path;
00947   Sfi::String ladspa_path;
00948   static inline ::Bse::GConfigHandle from_rec (SfiRec *rec);
00949   static inline SfiRec *to_rec (const ::Bse::GConfigHandle & ptr);
00950   static inline ::Bse::GConfigHandle value_get_boxed (const GValue *value);
00951   static inline void value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self);
00952   static inline const char* options   () { return ""; }
00953   static inline const char* blurb     () { return ""; }
00954   static inline const char* authors   () { return ""; }
00955   static inline const char* license   () { return ""; }
00956   static inline const char* type_name () { return "BseGConfig"; }
00957   static inline SfiRecFields get_fields ();
00958 };
00959 
00960 
00961 
00962 /* enum declarations */
00963 BSE_CXX_DECLARE_ENUM (MusicalTuningType, "BseMusicalTuningType", 17,
00964   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_12_TET, "BSE_MUSICAL_TUNING_12_TET", _("12 Tone Equal Temperament") );
00965   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_7_TET, "BSE_MUSICAL_TUNING_7_TET", _("7 Tone Equal Temperament") );
00966   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_5_TET, "BSE_MUSICAL_TUNING_5_TET", _("5 Tone Equal Temperament") );
00967   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_DIATONIC_SCALE, "BSE_MUSICAL_TUNING_DIATONIC_SCALE", _("Diatonic Scale") );
00968   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_INDIAN_SCALE, "BSE_MUSICAL_TUNING_INDIAN_SCALE", _("Indian Scale") );
00969   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PYTHAGOREAN_TUNING, "BSE_MUSICAL_TUNING_PYTHAGOREAN_TUNING", _("Pythagorean Tuning") );
00970   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_5_LIMIT, "BSE_MUSICAL_TUNING_PENTATONIC_5_LIMIT", _("Pentatonic 5-limit") );
00971   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_BLUES, "BSE_MUSICAL_TUNING_PENTATONIC_BLUES", _("Pentatonic Blues") );
00972   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_PENTATONIC_GOGO, "BSE_MUSICAL_TUNING_PENTATONIC_GOGO", _("Pentatonic Gogo") );
00973   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_QUARTER_COMMA_MEANTONE, "BSE_MUSICAL_TUNING_QUARTER_COMMA_MEANTONE", _("Quarter-Comma Meantone") );
00974   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_SILBERMANN_SORGE, "BSE_MUSICAL_TUNING_SILBERMANN_SORGE", _("Silbermann-Sorge Temperament") );
00975   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_3, "BSE_MUSICAL_TUNING_WERCKMEISTER_3", _("Werckmeister III") );
00976   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_4, "BSE_MUSICAL_TUNING_WERCKMEISTER_4", _("Werckmeister IV") );
00977   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_5, "BSE_MUSICAL_TUNING_WERCKMEISTER_5", _("Werckmeister V") );
00978   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_WERCKMEISTER_6, "BSE_MUSICAL_TUNING_WERCKMEISTER_6", _("Werckmeister VI") );
00979   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_KIRNBERGER_3, "BSE_MUSICAL_TUNING_KIRNBERGER_3", _("Kirnberger III") );
00980   *v++ = ::Bse::EnumValue (MUSICAL_TUNING_YOUNG, "BSE_MUSICAL_TUNING_YOUNG", _("Young Temperament") );
00981 );
00982 BSE_CXX_DECLARE_ENUM (MidiSignalType, "BseMidiSignalType", 172,
00983   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PROGRAM, "BSE_MIDI_SIGNAL_PROGRAM", _("Program Change") );
00984   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PRESSURE, "BSE_MIDI_SIGNAL_PRESSURE", _("Channel Pressure") );
00985   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PITCH_BEND, "BSE_MIDI_SIGNAL_PITCH_BEND", _("Pitch Bend") );
00986   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_VELOCITY, "BSE_MIDI_SIGNAL_VELOCITY", _("Note Velocity") );
00987   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_FINE_TUNE, "BSE_MIDI_SIGNAL_FINE_TUNE", _("Note Fine Tune") );
00988   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_0, "BSE_MIDI_SIGNAL_CONTINUOUS_0", _("Bank Select") );
00989   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_1, "BSE_MIDI_SIGNAL_CONTINUOUS_1", _("Modulation Depth") );
00990   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_2, "BSE_MIDI_SIGNAL_CONTINUOUS_2", _("Breath Control") );
00991   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_3, "BSE_MIDI_SIGNAL_CONTINUOUS_3", _("Continuous 3") );
00992   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_4, "BSE_MIDI_SIGNAL_CONTINUOUS_4", _("Foot Controller") );
00993   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_5, "BSE_MIDI_SIGNAL_CONTINUOUS_5", _("Portamento Time") );
00994   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_6, "BSE_MIDI_SIGNAL_CONTINUOUS_6", _("Data Entry") );
00995   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_7, "BSE_MIDI_SIGNAL_CONTINUOUS_7", _("Volume") );
00996   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_8, "BSE_MIDI_SIGNAL_CONTINUOUS_8", _("Balance") );
00997   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_9, "BSE_MIDI_SIGNAL_CONTINUOUS_9", _("Continuous 9") );
00998   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_10, "BSE_MIDI_SIGNAL_CONTINUOUS_10", _("Panorama") );
00999   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_11, "BSE_MIDI_SIGNAL_CONTINUOUS_11", _("Expression") );
01000   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_12, "BSE_MIDI_SIGNAL_CONTINUOUS_12", _("Effect Control 1") );
01001   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_13, "BSE_MIDI_SIGNAL_CONTINUOUS_13", _("Effect Control 2") );
01002   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_14, "BSE_MIDI_SIGNAL_CONTINUOUS_14", _("Continuous 14") );
01003   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_15, "BSE_MIDI_SIGNAL_CONTINUOUS_15", _("Continuous 15") );
01004   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_16, "BSE_MIDI_SIGNAL_CONTINUOUS_16", _("General Purpose Controller 1") );
01005   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_17, "BSE_MIDI_SIGNAL_CONTINUOUS_17", _("General Purpose Controller 2") );
01006   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_18, "BSE_MIDI_SIGNAL_CONTINUOUS_18", _("General Purpose Controller 3") );
01007   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_19, "BSE_MIDI_SIGNAL_CONTINUOUS_19", _("General Purpose Controller 4") );
01008   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_20, "BSE_MIDI_SIGNAL_CONTINUOUS_20", _("Continuous 20") );
01009   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_21, "BSE_MIDI_SIGNAL_CONTINUOUS_21", _("Continuous 21") );
01010   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_22, "BSE_MIDI_SIGNAL_CONTINUOUS_22", _("Continuous 22") );
01011   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_23, "BSE_MIDI_SIGNAL_CONTINUOUS_23", _("Continuous 23") );
01012   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_24, "BSE_MIDI_SIGNAL_CONTINUOUS_24", _("Continuous 24") );
01013   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_25, "BSE_MIDI_SIGNAL_CONTINUOUS_25", _("Continuous 25") );
01014   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_26, "BSE_MIDI_SIGNAL_CONTINUOUS_26", _("Continuous 26") );
01015   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_27, "BSE_MIDI_SIGNAL_CONTINUOUS_27", _("Continuous 27") );
01016   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_28, "BSE_MIDI_SIGNAL_CONTINUOUS_28", _("Continuous 28") );
01017   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_29, "BSE_MIDI_SIGNAL_CONTINUOUS_29", _("Continuous 29") );
01018   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_30, "BSE_MIDI_SIGNAL_CONTINUOUS_30", _("Continuous 30") );
01019   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTINUOUS_31, "BSE_MIDI_SIGNAL_CONTINUOUS_31", _("Continuous 31") );
01020   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_HIGH, "BSE_MIDI_SIGNAL_CONSTANT_HIGH", _("Constant HIGH") );
01021   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_CENTER, "BSE_MIDI_SIGNAL_CONSTANT_CENTER", _("Constant CENTER") );
01022   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_LOW, "BSE_MIDI_SIGNAL_CONSTANT_LOW", _("Constant LOW") );
01023   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER, "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER", _("Constant Negative CENTER") );
01024   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH, "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH", _("Constant Negative HIGH") );
01025   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_PARAMETER, "BSE_MIDI_SIGNAL_PARAMETER", _("Registered Parameter") );
01026   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_NON_PARAMETER, "BSE_MIDI_SIGNAL_NON_PARAMETER", _("Non-Registered Parameter") );
01027   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_0, "BSE_MIDI_SIGNAL_CONTROL_0", _("Control 0 Bank Select MSB") );
01028   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_1, "BSE_MIDI_SIGNAL_CONTROL_1", _("Control 1 Modulation Depth MSB") );
01029   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_2, "BSE_MIDI_SIGNAL_CONTROL_2", _("Control 2 Breath Control MSB") );
01030   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_3, "BSE_MIDI_SIGNAL_CONTROL_3", _("control-3") );
01031   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_4, "BSE_MIDI_SIGNAL_CONTROL_4", _("Control 4 Foot Controller MSB") );
01032   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_5, "BSE_MIDI_SIGNAL_CONTROL_5", _("Control 5 Portamento Time MSB") );
01033   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_6, "BSE_MIDI_SIGNAL_CONTROL_6", _("Control 6 Data Entry MSB") );
01034   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_7, "BSE_MIDI_SIGNAL_CONTROL_7", _("Control 7 Volume MSB") );
01035   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_8, "BSE_MIDI_SIGNAL_CONTROL_8", _("Control 8 Balance MSB") );
01036   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_9, "BSE_MIDI_SIGNAL_CONTROL_9", _("control-9") );
01037   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_10, "BSE_MIDI_SIGNAL_CONTROL_10", _("Control 10 Panorama MSB") );
01038   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_11, "BSE_MIDI_SIGNAL_CONTROL_11", _("Control 11 Expression MSB") );
01039   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_12, "BSE_MIDI_SIGNAL_CONTROL_12", _("Control 12 Effect Control 1 MSB") );
01040   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_13, "BSE_MIDI_SIGNAL_CONTROL_13", _("Control 13 Effect Control 2 MSB") );
01041   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_14, "BSE_MIDI_SIGNAL_CONTROL_14", _("control-14") );
01042   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_15, "BSE_MIDI_SIGNAL_CONTROL_15", _("control-15") );
01043   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_16, "BSE_MIDI_SIGNAL_CONTROL_16", _("Control 16 General Purpose Controller 1 MSB") );
01044   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_17, "BSE_MIDI_SIGNAL_CONTROL_17", _("Control 17 General Purpose Controller 2 MSB") );
01045   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_18, "BSE_MIDI_SIGNAL_CONTROL_18", _("Control 18 General Purpose Controller 3 MSB") );
01046   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_19, "BSE_MIDI_SIGNAL_CONTROL_19", _("Control 19 General Purpose Controller 4 MSB") );
01047   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_20, "BSE_MIDI_SIGNAL_CONTROL_20", _("control-20") );
01048   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_21, "BSE_MIDI_SIGNAL_CONTROL_21", _("control-21") );
01049   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_22, "BSE_MIDI_SIGNAL_CONTROL_22", _("control-22") );
01050   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_23, "BSE_MIDI_SIGNAL_CONTROL_23", _("control-23") );
01051   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_24, "BSE_MIDI_SIGNAL_CONTROL_24", _("control-24") );
01052   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_25, "BSE_MIDI_SIGNAL_CONTROL_25", _("control-25") );
01053   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_26, "BSE_MIDI_SIGNAL_CONTROL_26", _("control-26") );
01054   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_27, "BSE_MIDI_SIGNAL_CONTROL_27", _("control-27") );
01055   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_28, "BSE_MIDI_SIGNAL_CONTROL_28", _("control-28") );
01056   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_29, "BSE_MIDI_SIGNAL_CONTROL_29", _("control-29") );
01057   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_30, "BSE_MIDI_SIGNAL_CONTROL_30", _("control-30") );
01058   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_31, "BSE_MIDI_SIGNAL_CONTROL_31", _("control-31") );
01059   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_32, "BSE_MIDI_SIGNAL_CONTROL_32", _("Control 32 Bank Select LSB") );
01060   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_33, "BSE_MIDI_SIGNAL_CONTROL_33", _("Control 33 Modulation Depth LSB") );
01061   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_34, "BSE_MIDI_SIGNAL_CONTROL_34", _("Control 34 Breath Control LSB") );
01062   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_35, "BSE_MIDI_SIGNAL_CONTROL_35", _("control-35") );
01063   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_36, "BSE_MIDI_SIGNAL_CONTROL_36", _("Control 36 Foot Controller LSB") );
01064   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_37, "BSE_MIDI_SIGNAL_CONTROL_37", _("Control 37 Portamento Time LSB") );
01065   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_38, "BSE_MIDI_SIGNAL_CONTROL_38", _("Control 38 Data Entry LSB") );
01066   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_39, "BSE_MIDI_SIGNAL_CONTROL_39", _("Control 39 Volume LSB") );
01067   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_40, "BSE_MIDI_SIGNAL_CONTROL_40", _("Control 40 Balance LSB") );
01068   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_41, "BSE_MIDI_SIGNAL_CONTROL_41", _("control-41") );
01069   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_42, "BSE_MIDI_SIGNAL_CONTROL_42", _("Control 42 Panorama LSB") );
01070   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_43, "BSE_MIDI_SIGNAL_CONTROL_43", _("Control 43 Expression LSB") );
01071   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_44, "BSE_MIDI_SIGNAL_CONTROL_44", _("Control 44 Effect Control 1 LSB") );
01072   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_45, "BSE_MIDI_SIGNAL_CONTROL_45", _("Control 45 Effect Control 2 LSB") );
01073   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_46, "BSE_MIDI_SIGNAL_CONTROL_46", _("control-46") );
01074   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_47, "BSE_MIDI_SIGNAL_CONTROL_47", _("control-47") );
01075   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_48, "BSE_MIDI_SIGNAL_CONTROL_48", _("Control 48 General Purpose Controller 1 LSB") );
01076   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_49, "BSE_MIDI_SIGNAL_CONTROL_49", _("Control 49 General Purpose Controller 2 LSB") );
01077   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_50, "BSE_MIDI_SIGNAL_CONTROL_50", _("Control 50 General Purpose Controller 3 LSB") );
01078   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_51, "BSE_MIDI_SIGNAL_CONTROL_51", _("Control 51 General Purpose Controller 4 LSB") );
01079   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_52, "BSE_MIDI_SIGNAL_CONTROL_52", _("control-52") );
01080   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_53, "BSE_MIDI_SIGNAL_CONTROL_53", _("control-53") );
01081   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_54, "BSE_MIDI_SIGNAL_CONTROL_54", _("control-54") );
01082   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_55, "BSE_MIDI_SIGNAL_CONTROL_55", _("control-55") );
01083   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_56, "BSE_MIDI_SIGNAL_CONTROL_56", _("control-56") );
01084   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_57, "BSE_MIDI_SIGNAL_CONTROL_57", _("control-57") );
01085   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_58, "BSE_MIDI_SIGNAL_CONTROL_58", _("control-58") );
01086   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_59, "BSE_MIDI_SIGNAL_CONTROL_59", _("control-59") );
01087   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_60, "BSE_MIDI_SIGNAL_CONTROL_60", _("control-60") );
01088   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_61, "BSE_MIDI_SIGNAL_CONTROL_61", _("control-61") );
01089   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_62, "BSE_MIDI_SIGNAL_CONTROL_62", _("control-62") );
01090   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_63, "BSE_MIDI_SIGNAL_CONTROL_63", _("control-63") );
01091   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_64, "BSE_MIDI_SIGNAL_CONTROL_64", _("Control 64 Damper Pedal Switch (Sustain)") );
01092   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_65, "BSE_MIDI_SIGNAL_CONTROL_65", _("Control 65 Portamento Switch") );
01093   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_66, "BSE_MIDI_SIGNAL_CONTROL_66", _("Control 66 Sustenuto Switch") );
01094   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_67, "BSE_MIDI_SIGNAL_CONTROL_67", _("Control 67 Soft Switch") );
01095   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_68, "BSE_MIDI_SIGNAL_CONTROL_68", _("Control 68 Legato Pedal Switch") );
01096   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_69, "BSE_MIDI_SIGNAL_CONTROL_69", _("Control 69 Hold Pedal Switch") );
01097   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_70, "BSE_MIDI_SIGNAL_CONTROL_70", _("Control 70 Sound Variation") );
01098   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_71, "BSE_MIDI_SIGNAL_CONTROL_71", _("Control 71 Filter Resonance (Timbre)") );
01099   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_72, "BSE_MIDI_SIGNAL_CONTROL_72", _("Control 72 Sound Release Time") );
01100   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_73, "BSE_MIDI_SIGNAL_CONTROL_73", _("Control 73 Sound Attack Time") );
01101   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_74, "BSE_MIDI_SIGNAL_CONTROL_74", _("Control 74 Sound Brightness") );
01102   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_75, "BSE_MIDI_SIGNAL_CONTROL_75", _("Control 75 Sound Decay Time") );
01103   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_76, "BSE_MIDI_SIGNAL_CONTROL_76", _("Control 76 Vibrato Rate") );
01104   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_77, "BSE_MIDI_SIGNAL_CONTROL_77", _("Control 77 Vibrato Depth") );
01105   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_78, "BSE_MIDI_SIGNAL_CONTROL_78", _("Control 78 Vibrato Delay") );
01106   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_79, "BSE_MIDI_SIGNAL_CONTROL_79", _("Control 79 Sound Control 10") );
01107   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_80, "BSE_MIDI_SIGNAL_CONTROL_80", _("Control 80 General Purpose Switch 5") );
01108   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_81, "BSE_MIDI_SIGNAL_CONTROL_81", _("Control 81 General Purpose Switch 6") );
01109   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_82, "BSE_MIDI_SIGNAL_CONTROL_82", _("Control 82 General Purpose Switch 7") );
01110   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_83, "BSE_MIDI_SIGNAL_CONTROL_83", _("Control 83 General Purpose Switch 8") );
01111   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_84, "BSE_MIDI_SIGNAL_CONTROL_84", _("Control 84 Portamento Control (Note)") );
01112   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_85, "BSE_MIDI_SIGNAL_CONTROL_85", _("control-85") );
01113   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_86, "BSE_MIDI_SIGNAL_CONTROL_86", _("control-86") );
01114   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_87, "BSE_MIDI_SIGNAL_CONTROL_87", _("control-87") );
01115   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_88, "BSE_MIDI_SIGNAL_CONTROL_88", _("control-88") );
01116   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_89, "BSE_MIDI_SIGNAL_CONTROL_89", _("control-89") );
01117   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_90, "BSE_MIDI_SIGNAL_CONTROL_90", _("control-90") );
01118   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_91, "BSE_MIDI_SIGNAL_CONTROL_91", _("Control 91 Reverb Depth") );
01119   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_92, "BSE_MIDI_SIGNAL_CONTROL_92", _("Control 92 Tremolo Depth") );
01120   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_93, "BSE_MIDI_SIGNAL_CONTROL_93", _("Control 93 Chorus Depth") );
01121   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_94, "BSE_MIDI_SIGNAL_CONTROL_94", _("Control 93 Detune Depth") );
01122   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_95, "BSE_MIDI_SIGNAL_CONTROL_95", _("Control 95 Phase Depth") );
01123   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_96, "BSE_MIDI_SIGNAL_CONTROL_96", _("Control 96 Data Increment Trigger") );
01124   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_97, "BSE_MIDI_SIGNAL_CONTROL_97", _("Control 97 Data Decrement Trigger") );
01125   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_98, "BSE_MIDI_SIGNAL_CONTROL_98", _("Control 98 Non-Registered Parameter MSB") );
01126   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_99, "BSE_MIDI_SIGNAL_CONTROL_99", _("Control 99 Non-Registered Parameter LSB") );
01127   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_100, "BSE_MIDI_SIGNAL_CONTROL_100", _("Control 100 Registered Parameter MSB") );
01128   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_101, "BSE_MIDI_SIGNAL_CONTROL_101", _("Control 101 Registered Parameter LSB") );
01129   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_102, "BSE_MIDI_SIGNAL_CONTROL_102", _("control-102") );
01130   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_103, "BSE_MIDI_SIGNAL_CONTROL_103", _("control-103") );
01131   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_104, "BSE_MIDI_SIGNAL_CONTROL_104", _("control-104") );
01132   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_105, "BSE_MIDI_SIGNAL_CONTROL_105", _("control-105") );
01133   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_106, "BSE_MIDI_SIGNAL_CONTROL_106", _("control-106") );
01134   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_107, "BSE_MIDI_SIGNAL_CONTROL_107", _("control-107") );
01135   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_108, "BSE_MIDI_SIGNAL_CONTROL_108", _("control-108") );
01136   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_109, "BSE_MIDI_SIGNAL_CONTROL_109", _("control-109") );
01137   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_110, "BSE_MIDI_SIGNAL_CONTROL_110", _("control-110") );
01138   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_111, "BSE_MIDI_SIGNAL_CONTROL_111", _("control-111") );
01139   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_112, "BSE_MIDI_SIGNAL_CONTROL_112", _("control-112") );
01140   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_113, "BSE_MIDI_SIGNAL_CONTROL_113", _("control-113") );
01141   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_114, "BSE_MIDI_SIGNAL_CONTROL_114", _("control-114") );
01142   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_115, "BSE_MIDI_SIGNAL_CONTROL_115", _("control-115") );
01143   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_116, "BSE_MIDI_SIGNAL_CONTROL_116", _("control-116") );
01144   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_117, "BSE_MIDI_SIGNAL_CONTROL_117", _("control-117") );
01145   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_118, "BSE_MIDI_SIGNAL_CONTROL_118", _("control-118") );
01146   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_119, "BSE_MIDI_SIGNAL_CONTROL_119", _("control-119") );
01147   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_120, "BSE_MIDI_SIGNAL_CONTROL_120", _("Control 120 All Sound Off ITrigger") );
01148   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_121, "BSE_MIDI_SIGNAL_CONTROL_121", _("Control 121 All Controllers Off ITrigger") );
01149   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_122, "BSE_MIDI_SIGNAL_CONTROL_122", _("Control 122 Local Control Switch") );
01150   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_123, "BSE_MIDI_SIGNAL_CONTROL_123", _("Control 123 All Notes Off ITrigger") );
01151   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_124, "BSE_MIDI_SIGNAL_CONTROL_124", _("Control 124 Omni Mode Off ITrigger") );
01152   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_125, "BSE_MIDI_SIGNAL_CONTROL_125", _("Control 125 Omni Mode On ITrigger") );
01153   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_126, "BSE_MIDI_SIGNAL_CONTROL_126", _("Control 126 Monophonic Voices Mode") );
01154   *v++ = ::Bse::EnumValue (MIDI_SIGNAL_CONTROL_127, "BSE_MIDI_SIGNAL_CONTROL_127", _("Control 127 Polyphonic Mode On ITrigger") );
01155 );
01156 BSE_CXX_DECLARE_ENUM (MidiControlType, "BseMidiControlType", 161,
01157   *v++ = ::Bse::EnumValue (MIDI_CONTROL_NONE, "BSE_MIDI_CONTROL_NONE", _("None") );
01158   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_0, "BSE_MIDI_CONTROL_CONTINUOUS_0", _("Bank Select") );
01159   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_1, "BSE_MIDI_CONTROL_CONTINUOUS_1", _("Modulation Depth") );
01160   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_2, "BSE_MIDI_CONTROL_CONTINUOUS_2", _("Breath Control") );
01161   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_3, "BSE_MIDI_CONTROL_CONTINUOUS_3", _("Continuous 3") );
01162   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_4, "BSE_MIDI_CONTROL_CONTINUOUS_4", _("Foot Controller") );
01163   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_5, "BSE_MIDI_CONTROL_CONTINUOUS_5", _("Portamento Time") );
01164   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_6, "BSE_MIDI_CONTROL_CONTINUOUS_6", _("Data Entry") );
01165   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_7, "BSE_MIDI_CONTROL_CONTINUOUS_7", _("Volume") );
01166   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_8, "BSE_MIDI_CONTROL_CONTINUOUS_8", _("Balance") );
01167   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_9, "BSE_MIDI_CONTROL_CONTINUOUS_9", _("Continuous 9") );
01168   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_10, "BSE_MIDI_CONTROL_CONTINUOUS_10", _("Panorama") );
01169   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_11, "BSE_MIDI_CONTROL_CONTINUOUS_11", _("Expression") );
01170   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_12, "BSE_MIDI_CONTROL_CONTINUOUS_12", _("Effect Control 1") );
01171   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_13, "BSE_MIDI_CONTROL_CONTINUOUS_13", _("Effect Control 2") );
01172   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_14, "BSE_MIDI_CONTROL_CONTINUOUS_14", _("Continuous 14") );
01173   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_15, "BSE_MIDI_CONTROL_CONTINUOUS_15", _("Continuous 15") );
01174   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_16, "BSE_MIDI_CONTROL_CONTINUOUS_16", _("General Purpose Controller 1") );
01175   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_17, "BSE_MIDI_CONTROL_CONTINUOUS_17", _("General Purpose Controller 2") );
01176   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_18, "BSE_MIDI_CONTROL_CONTINUOUS_18", _("General Purpose Controller 3") );
01177   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_19, "BSE_MIDI_CONTROL_CONTINUOUS_19", _("General Purpose Controller 4") );
01178   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_20, "BSE_MIDI_CONTROL_CONTINUOUS_20", _("Continuous 20") );
01179   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_21, "BSE_MIDI_CONTROL_CONTINUOUS_21", _("Continuous 21") );
01180   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_22, "BSE_MIDI_CONTROL_CONTINUOUS_22", _("Continuous 22") );
01181   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_23, "BSE_MIDI_CONTROL_CONTINUOUS_23", _("Continuous 23") );
01182   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_24, "BSE_MIDI_CONTROL_CONTINUOUS_24", _("Continuous 24") );
01183   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_25, "BSE_MIDI_CONTROL_CONTINUOUS_25", _("Continuous 25") );
01184   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_26, "BSE_MIDI_CONTROL_CONTINUOUS_26", _("Continuous 26") );
01185   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_27, "BSE_MIDI_CONTROL_CONTINUOUS_27", _("Continuous 27") );
01186   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_28, "BSE_MIDI_CONTROL_CONTINUOUS_28", _("Continuous 28") );
01187   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_29, "BSE_MIDI_CONTROL_CONTINUOUS_29", _("Continuous 29") );
01188   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_30, "BSE_MIDI_CONTROL_CONTINUOUS_30", _("Continuous 30") );
01189   *v++ = ::Bse::EnumValue (MIDI_CONTROL_CONTINUOUS_31, "BSE_MIDI_CONTROL_CONTINUOUS_31", _("Continuous 31") );
01190   *v++ = ::Bse::EnumValue (MIDI_CONTROL_0, "BSE_MIDI_CONTROL_0", _("Control 0 Bank Select MSB") );
01191   *v++ = ::Bse::EnumValue (MIDI_CONTROL_1, "BSE_MIDI_CONTROL_1", _("Control 1 Modulation Depth MSB") );
01192   *v++ = ::Bse::EnumValue (MIDI_CONTROL_2, "BSE_MIDI_CONTROL_2", _("Control 2 Breath Control MSB") );
01193   *v++ = ::Bse::EnumValue (MIDI_CONTROL_3, "BSE_MIDI_CONTROL_3", _("control-3") );
01194   *v++ = ::Bse::EnumValue (MIDI_CONTROL_4, "BSE_MIDI_CONTROL_4", _("Control 4 Foot Controller MSB") );
01195   *v++ = ::Bse::EnumValue (MIDI_CONTROL_5, "BSE_MIDI_CONTROL_5", _("Control 5 Portamento Time MSB") );
01196   *v++ = ::Bse::EnumValue (MIDI_CONTROL_6, "BSE_MIDI_CONTROL_6", _("Control 6 Data Entry MSB") );
01197   *v++ = ::Bse::EnumValue (MIDI_CONTROL_7, "BSE_MIDI_CONTROL_7", _("Control 7 Volume MSB") );
01198   *v++ = ::Bse::EnumValue (MIDI_CONTROL_8, "BSE_MIDI_CONTROL_8", _("Control 8 Balance MSB") );
01199   *v++ = ::Bse::EnumValue (MIDI_CONTROL_9, "BSE_MIDI_CONTROL_9", _("control-9") );
01200   *v++ = ::Bse::EnumValue (MIDI_CONTROL_10, "BSE_MIDI_CONTROL_10", _("Control 10 Panorama MSB") );
01201   *v++ = ::Bse::EnumValue (MIDI_CONTROL_11, "BSE_MIDI_CONTROL_11", _("Control 11 Expression MSB") );
01202   *v++ = ::Bse::EnumValue (MIDI_CONTROL_12, "BSE_MIDI_CONTROL_12", _("Control 12 Effect Control 1 MSB") );
01203   *v++ = ::Bse::EnumValue (MIDI_CONTROL_13, "BSE_MIDI_CONTROL_13", _("Control 13 Effect Control 2 MSB") );
01204   *v++ = ::Bse::EnumValue (MIDI_CONTROL_14, "BSE_MIDI_CONTROL_14", _("control-14") );
01205   *v++ = ::Bse::EnumValue (MIDI_CONTROL_15, "BSE_MIDI_CONTROL_15", _("control-15") );
01206   *v++ = ::Bse::EnumValue (MIDI_CONTROL_16, "BSE_MIDI_CONTROL_16", _("Control 16 General Purpose Controller 1 MSB") );
01207   *v++ = ::Bse::EnumValue (MIDI_CONTROL_17, "BSE_MIDI_CONTROL_17", _("Control 17 General Purpose Controller 2 MSB") );
01208   *v++ = ::Bse::EnumValue (MIDI_CONTROL_18, "BSE_MIDI_CONTROL_18", _("Control 18 General Purpose Controller 3 MSB") );
01209   *v++ = ::Bse::EnumValue (MIDI_CONTROL_19, "BSE_MIDI_CONTROL_19", _("Control 19 General Purpose Controller 4 MSB") );
01210   *v++ = ::Bse::EnumValue (MIDI_CONTROL_20, "BSE_MIDI_CONTROL_20", _("control-20") );
01211   *v++ = ::Bse::EnumValue (MIDI_CONTROL_21, "BSE_MIDI_CONTROL_21", _("control-21") );
01212   *v++ = ::Bse::EnumValue (MIDI_CONTROL_22, "BSE_MIDI_CONTROL_22", _("control-22") );
01213   *v++ = ::Bse::EnumValue (MIDI_CONTROL_23, "BSE_MIDI_CONTROL_23", _("control-23") );
01214   *v++ = ::Bse::EnumValue (MIDI_CONTROL_24, "BSE_MIDI_CONTROL_24", _("control-24") );
01215   *v++ = ::Bse::EnumValue (MIDI_CONTROL_25, "BSE_MIDI_CONTROL_25", _("control-25") );
01216   *v++ = ::Bse::EnumValue (MIDI_CONTROL_26, "BSE_MIDI_CONTROL_26", _("control-26") );
01217   *v++ = ::Bse::EnumValue (MIDI_CONTROL_27, "BSE_MIDI_CONTROL_27", _("control-27") );
01218   *v++ = ::Bse::EnumValue (MIDI_CONTROL_28, "BSE_MIDI_CONTROL_28", _("control-28") );
01219   *v++ = ::Bse::EnumValue (MIDI_CONTROL_29, "BSE_MIDI_CONTROL_29", _("control-29") );
01220   *v++ = ::Bse::EnumValue (MIDI_CONTROL_30, "BSE_MIDI_CONTROL_30", _("control-30") );
01221   *v++ = ::Bse::EnumValue (MIDI_CONTROL_31, "BSE_MIDI_CONTROL_31", _("control-31") );
01222   *v++ = ::Bse::EnumValue (MIDI_CONTROL_32, "BSE_MIDI_CONTROL_32", _("Control 32 Bank Select LSB") );
01223   *v++ = ::Bse::EnumValue (MIDI_CONTROL_33, "BSE_MIDI_CONTROL_33", _("Control 33 Modulation Depth LSB") );
01224   *v++ = ::Bse::EnumValue (MIDI_CONTROL_34, "BSE_MIDI_CONTROL_34", _("Control 34 Breath Control LSB") );
01225   *v++ = ::Bse::EnumValue (MIDI_CONTROL_35, "BSE_MIDI_CONTROL_35", _("control-35") );
01226   *v++ = ::Bse::EnumValue (MIDI_CONTROL_36, "BSE_MIDI_CONTROL_36", _("Control 36 Foot Controller LSB") );
01227   *v++ = ::Bse::EnumValue (MIDI_CONTROL_37, "BSE_MIDI_CONTROL_37", _("Control 37 Portamento Time LSB") );
01228   *v++ = ::Bse::EnumValue (MIDI_CONTROL_38, "BSE_MIDI_CONTROL_38", _("Control 38 Data Entry LSB") );
01229   *v++ = ::Bse::EnumValue (MIDI_CONTROL_39, "BSE_MIDI_CONTROL_39", _("Control 39 Volume LSB") );
01230   *v++ = ::Bse::EnumValue (MIDI_CONTROL_40, "BSE_MIDI_CONTROL_40", _("Control 40 Balance LSB") );
01231   *v++ = ::Bse::EnumValue (MIDI_CONTROL_41, "BSE_MIDI_CONTROL_41", _("control-41") );
01232   *v++ = ::Bse::EnumValue (MIDI_CONTROL_42, "BSE_MIDI_CONTROL_42", _("Control 42 Panorama LSB") );
01233   *v++ = ::Bse::EnumValue (MIDI_CONTROL_43, "BSE_MIDI_CONTROL_43", _("Control 43 Expression LSB") );
01234   *v++ = ::Bse::EnumValue (MIDI_CONTROL_44, "BSE_MIDI_CONTROL_44", _("Control 44 Effect Control 1 LSB") );
01235   *v++ = ::Bse::EnumValue (MIDI_CONTROL_45, "BSE_MIDI_CONTROL_45", _("Control 45 Effect Control 2 LSB") );
01236   *v++ = ::Bse::EnumValue (MIDI_CONTROL_46, "BSE_MIDI_CONTROL_46", _("control-46") );
01237   *v++ = ::Bse::EnumValue (MIDI_CONTROL_47, "BSE_MIDI_CONTROL_47", _("control-47") );
01238   *v++ = ::Bse::EnumValue (MIDI_CONTROL_48, "BSE_MIDI_CONTROL_48", _("Control 48 General Purpose Controller 1 LSB") );
01239   *v++ = ::Bse::EnumValue (MIDI_CONTROL_49, "BSE_MIDI_CONTROL_49", _("Control 49 General Purpose Controller 2 LSB") );
01240   *v++ = ::Bse::EnumValue (MIDI_CONTROL_50, "BSE_MIDI_CONTROL_50", _("Control 50 General Purpose Controller 3 LSB") );
01241   *v++ = ::Bse::EnumValue (MIDI_CONTROL_51, "BSE_MIDI_CONTROL_51", _("Control 51 General Purpose Controller 4 LSB") );
01242   *v++ = ::Bse::EnumValue (MIDI_CONTROL_52, "BSE_MIDI_CONTROL_52", _("control-52") );
01243   *v++ = ::Bse::EnumValue (MIDI_CONTROL_53, "BSE_MIDI_CONTROL_53", _("control-53") );
01244   *v++ = ::Bse::EnumValue (MIDI_CONTROL_54, "BSE_MIDI_CONTROL_54", _("control-54") );
01245   *v++ = ::Bse::EnumValue (MIDI_CONTROL_55, "BSE_MIDI_CONTROL_55", _("control-55") );
01246   *v++ = ::Bse::EnumValue (MIDI_CONTROL_56, "BSE_MIDI_CONTROL_56", _("control-56") );
01247   *v++ = ::Bse::EnumValue (MIDI_CONTROL_57, "BSE_MIDI_CONTROL_57", _("control-57") );
01248   *v++ = ::Bse::EnumValue (MIDI_CONTROL_58, "BSE_MIDI_CONTROL_58", _("control-58") );
01249   *v++ = ::Bse::EnumValue (MIDI_CONTROL_59, "BSE_MIDI_CONTROL_59", _("control-59") );
01250   *v++ = ::Bse::EnumValue (MIDI_CONTROL_60, "BSE_MIDI_CONTROL_60", _("control-60") );
01251   *v++ = ::Bse::EnumValue (MIDI_CONTROL_61, "BSE_MIDI_CONTROL_61", _("control-61") );
01252   *v++ = ::Bse::EnumValue (MIDI_CONTROL_62, "BSE_MIDI_CONTROL_62", _("control-62") );
01253   *v++ = ::Bse::EnumValue (MIDI_CONTROL_63, "BSE_MIDI_CONTROL_63", _("control-63") );
01254   *v++ = ::Bse::EnumValue (MIDI_CONTROL_64, "BSE_MIDI_CONTROL_64", _("Control 64 Damper Pedal Switch (Sustain)") );
01255   *v++ = ::Bse::EnumValue (MIDI_CONTROL_65, "BSE_MIDI_CONTROL_65", _("Control 65 Portamento Switch") );
01256   *v++ = ::Bse::EnumValue (MIDI_CONTROL_66, "BSE_MIDI_CONTROL_66", _("Control 66 Sustenuto Switch") );
01257   *v++ = ::Bse::EnumValue (MIDI_CONTROL_67, "BSE_MIDI_CONTROL_67", _("Control 67 Soft Switch") );
01258   *v++ = ::Bse::EnumValue (MIDI_CONTROL_68, "BSE_MIDI_CONTROL_68", _("Control 68 Legato Pedal Switch") );
01259   *v++ = ::Bse::EnumValue (MIDI_CONTROL_69, "BSE_MIDI_CONTROL_69", _("Control 69 Hold Pedal Switch") );
01260   *v++ = ::Bse::EnumValue (MIDI_CONTROL_70, "BSE_MIDI_CONTROL_70", _("Control 70 Sound Variation") );
01261   *v++ = ::Bse::EnumValue (MIDI_CONTROL_71, "BSE_MIDI_CONTROL_71", _("Control 71 Filter Resonance (Timbre)") );
01262   *v++ = ::Bse::EnumValue (MIDI_CONTROL_72, "BSE_MIDI_CONTROL_72", _("Control 72 Sound Release Time") );
01263   *v++ = ::Bse::EnumValue (MIDI_CONTROL_73, "BSE_MIDI_CONTROL_73", _("Control 73 Sound Attack Time") );
01264   *v++ = ::Bse::EnumValue (MIDI_CONTROL_74, "BSE_MIDI_CONTROL_74", _("Control 74 Sound Brightness") );
01265   *v++ = ::Bse::EnumValue (MIDI_CONTROL_75, "BSE_MIDI_CONTROL_75", _("Control 75 Sound Decay Time") );
01266   *v++ = ::Bse::EnumValue (MIDI_CONTROL_76, "BSE_MIDI_CONTROL_76", _("Control 76 Vibrato Rate") );
01267   *v++ = ::Bse::EnumValue (MIDI_CONTROL_77, "BSE_MIDI_CONTROL_77", _("Control 77 Vibrato Depth") );
01268   *v++ = ::Bse::EnumValue (MIDI_CONTROL_78, "BSE_MIDI_CONTROL_78", _("Control 78 Vibrato Delay") );
01269   *v++ = ::Bse::EnumValue (MIDI_CONTROL_79, "BSE_MIDI_CONTROL_79", _("Control 79 Sound Control 10") );
01270   *v++ = ::Bse::EnumValue (MIDI_CONTROL_80, "BSE_MIDI_CONTROL_80", _("Control 80 General Purpose Switch 5") );
01271   *v++ = ::Bse::EnumValue (MIDI_CONTROL_81, "BSE_MIDI_CONTROL_81", _("Control 81 General Purpose Switch 6") );
01272   *v++ = ::Bse::EnumValue (MIDI_CONTROL_82, "BSE_MIDI_CONTROL_82", _("Control 82 General Purpose Switch 7") );
01273   *v++ = ::Bse::EnumValue (MIDI_CONTROL_83, "BSE_MIDI_CONTROL_83", _("Control 83 General Purpose Switch 8") );
01274   *v++ = ::Bse::EnumValue (MIDI_CONTROL_84, "BSE_MIDI_CONTROL_84", _("Control 84 Portamento Control (Note)") );
01275   *v++ = ::Bse::EnumValue (MIDI_CONTROL_85, "BSE_MIDI_CONTROL_85", _("control-85") );
01276   *v++ = ::Bse::EnumValue (MIDI_CONTROL_86, "BSE_MIDI_CONTROL_86", _("control-86") );
01277   *v++ = ::Bse::EnumValue (MIDI_CONTROL_87, "BSE_MIDI_CONTROL_87", _("control-87") );
01278   *v++ = ::Bse::EnumValue (MIDI_CONTROL_88, "BSE_MIDI_CONTROL_88", _("control-88") );
01279   *v++ = ::Bse::EnumValue (MIDI_CONTROL_89, "BSE_MIDI_CONTROL_89", _("control-89") );
01280   *v++ = ::Bse::EnumValue (MIDI_CONTROL_90, "BSE_MIDI_CONTROL_90", _("control-90") );
01281   *v++ = ::Bse::EnumValue (MIDI_CONTROL_91, "BSE_MIDI_CONTROL_91", _("Control 91 Reverb Depth") );
01282   *v++ = ::Bse::EnumValue (MIDI_CONTROL_92, "BSE_MIDI_CONTROL_92", _("Control 92 Tremolo Depth") );
01283   *v++ = ::Bse::EnumValue (MIDI_CONTROL_93, "BSE_MIDI_CONTROL_93", _("Control 93 Chorus Depth") );
01284   *v++ = ::Bse::EnumValue (MIDI_CONTROL_94, "BSE_MIDI_CONTROL_94", _("Control 93 Detune Depth") );
01285   *v++ = ::Bse::EnumValue (MIDI_CONTROL_95, "BSE_MIDI_CONTROL_95", _("Control 95 Phase Depth") );
01286   *v++ = ::Bse::EnumValue (MIDI_CONTROL_96, "BSE_MIDI_CONTROL_96", _("Control 96 Data Increment Trigger") );
01287   *v++ = ::Bse::EnumValue (MIDI_CONTROL_97, "BSE_MIDI_CONTROL_97", _("Control 97 Data Decrement Trigger") );
01288   *v++ = ::Bse::EnumValue (MIDI_CONTROL_98, "BSE_MIDI_CONTROL_98", _("Control 98 Non-Registered Parameter MSB") );
01289   *v++ = ::Bse::EnumValue (MIDI_CONTROL_99, "BSE_MIDI_CONTROL_99", _("Control 99 Non-Registered Parameter LSB") );
01290   *v++ = ::Bse::EnumValue (MIDI_CONTROL_100, "BSE_MIDI_CONTROL_100", _("Control 100 Registered Parameter MSB") );
01291   *v++ = ::Bse::EnumValue (MIDI_CONTROL_101, "BSE_MIDI_CONTROL_101", _("Control 101 Registered Parameter LSB") );
01292   *v++ = ::Bse::EnumValue (MIDI_CONTROL_102, "BSE_MIDI_CONTROL_102", _("control-102") );
01293   *v++ = ::Bse::EnumValue (MIDI_CONTROL_103, "BSE_MIDI_CONTROL_103", _("control-103") );
01294   *v++ = ::Bse::EnumValue (MIDI_CONTROL_104, "BSE_MIDI_CONTROL_104", _("control-104") );
01295   *v++ = ::Bse::EnumValue (MIDI_CONTROL_105, "BSE_MIDI_CONTROL_105", _("control-105") );
01296   *v++ = ::Bse::EnumValue (MIDI_CONTROL_106, "BSE_MIDI_CONTROL_106", _("control-106") );
01297   *v++ = ::Bse::EnumValue (MIDI_CONTROL_107, "BSE_MIDI_CONTROL_107", _("control-107") );
01298   *v++ = ::Bse::EnumValue (MIDI_CONTROL_108, "BSE_MIDI_CONTROL_108", _("control-108") );
01299   *v++ = ::Bse::EnumValue (MIDI_CONTROL_109, "BSE_MIDI_CONTROL_109", _("control-109") );
01300   *v++ = ::Bse::EnumValue (MIDI_CONTROL_110, "BSE_MIDI_CONTROL_110", _("control-110") );
01301   *v++ = ::Bse::EnumValue (MIDI_CONTROL_111, "BSE_MIDI_CONTROL_111", _("control-111") );
01302   *v++ = ::Bse::EnumValue (MIDI_CONTROL_112, "BSE_MIDI_CONTROL_112", _("control-112") );
01303   *v++ = ::Bse::EnumValue (MIDI_CONTROL_113, "BSE_MIDI_CONTROL_113", _("control-113") );
01304   *v++ = ::Bse::EnumValue (MIDI_CONTROL_114, "BSE_MIDI_CONTROL_114", _("control-114") );
01305   *v++ = ::Bse::EnumValue (MIDI_CONTROL_115, "BSE_MIDI_CONTROL_115", _("control-115") );
01306   *v++ = ::Bse::EnumValue (MIDI_CONTROL_116, "BSE_MIDI_CONTROL_116", _("control-116") );
01307   *v++ = ::Bse::EnumValue (MIDI_CONTROL_117, "BSE_MIDI_CONTROL_117", _("control-117") );
01308   *v++ = ::Bse::EnumValue (MIDI_CONTROL_118, "BSE_MIDI_CONTROL_118", _("control-118") );
01309   *v++ = ::Bse::EnumValue (MIDI_CONTROL_119, "BSE_MIDI_CONTROL_119", _("control-119") );
01310   *v++ = ::Bse::EnumValue (MIDI_CONTROL_120, "BSE_MIDI_CONTROL_120", _("Control 120 All Sound Off ITrigger") );
01311   *v++ = ::Bse::EnumValue (MIDI_CONTROL_121, "BSE_MIDI_CONTROL_121", _("Control 121 All Controllers Off ITrigger") );
01312   *v++ = ::Bse::EnumValue (MIDI_CONTROL_122, "BSE_MIDI_CONTROL_122", _("Control 122 Local Control Switch") );
01313   *v++ = ::Bse::EnumValue (MIDI_CONTROL_123, "BSE_MIDI_CONTROL_123", _("Control 123 All Notes Off ITrigger") );
01314   *v++ = ::Bse::EnumValue (MIDI_CONTROL_124, "BSE_MIDI_CONTROL_124", _("Control 124 Omni Mode Off ITrigger") );
01315   *v++ = ::Bse::EnumValue (MIDI_CONTROL_125, "BSE_MIDI_CONTROL_125", _("Control 125 Omni Mode On ITrigger") );
01316   *v++ = ::Bse::EnumValue (MIDI_CONTROL_126, "BSE_MIDI_CONTROL_126", _("Control 126 Monophonic Voices Mode") );
01317   *v++ = ::Bse::EnumValue (MIDI_CONTROL_127, "BSE_MIDI_CONTROL_127", _("Control 127 Polyphonic Mode On ITrigger") );
01318 );
01319 BSE_CXX_DECLARE_ENUM (MidiChannelEventType, "BseMidiChannelEventType", 18,
01320   *v++ = ::Bse::EnumValue (MIDI_EVENT_NONE, "BSE_MIDI_EVENT_NONE", "bse-midi-event-none" );
01321   *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_OFF, "BSE_MIDI_EVENT_NOTE_OFF", "bse-midi-event-note-off" );
01322   *v++ = ::Bse::EnumValue (MIDI_EVENT_NOTE_ON, "BSE_MIDI_EVENT_NOTE_ON", "bse-midi-event-note-on" );
01323   *v++ = ::Bse::EnumValue (MIDI_EVENT_KEY_PRESSURE, "BSE_MIDI_EVENT_KEY_PRESSURE", "bse-midi-event-key-pressure" );
01324   *v++ = ::Bse::EnumValue (MIDI_EVENT_CONTROL_CHANGE, "BSE_MIDI_EVENT_CONTROL_CHANGE", "bse-midi-event-control-change" );
01325   *v++ = ::Bse::EnumValue (MIDI_EVENT_PROGRAM_CHANGE, "BSE_MIDI_EVENT_PROGRAM_CHANGE", "bse-midi-event-program-change" );
01326   *v++ = ::Bse::EnumValue (MIDI_EVENT_CHANNEL_PRESSURE, "BSE_MIDI_EVENT_CHANNEL_PRESSURE", "bse-midi-event-channel-pressure" );
01327   *v++ = ::Bse::EnumValue (MIDI_EVENT_PITCH_BEND, "BSE_MIDI_EVENT_PITCH_BEND", "bse-midi-event-pitch-bend" );
01328   *v++ = ::Bse::EnumValue (MIDI_EVENT_SYS_EX, "BSE_MIDI_EVENT_SYS_EX", "bse-midi-event-sys-ex" );
01329   *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_POINTER, "BSE_MIDI_EVENT_SONG_POINTER", "bse-midi-event-song-pointer" );
01330   *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_SELECT, "BSE_MIDI_EVENT_SONG_SELECT", "bse-midi-event-song-select" );
01331   *v++ = ::Bse::EnumValue (MIDI_EVENT_TUNE, "BSE_MIDI_EVENT_TUNE", "bse-midi-event-tune" );
01332   *v++ = ::Bse::EnumValue (MIDI_EVENT_TIMING_CLOCK, "BSE_MIDI_EVENT_TIMING_CLOCK", "bse-midi-event-timing-clock" );
01333   *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_START, "BSE_MIDI_EVENT_SONG_START", "bse-midi-event-song-start" );
01334   *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_CONTINUE, "BSE_MIDI_EVENT_SONG_CONTINUE", "bse-midi-event-song-continue" );
01335   *v++ = ::Bse::EnumValue (MIDI_EVENT_SONG_STOP, "BSE_MIDI_EVENT_SONG_STOP", "bse-midi-event-song-stop" );
01336   *v++ = ::Bse::EnumValue (MIDI_EVENT_ACTIVE_SENSING, "BSE_MIDI_EVENT_ACTIVE_SENSING", "bse-midi-event-active-sensing" );
01337   *v++ = ::Bse::EnumValue (MIDI_EVENT_SYSTEM_RESET, "BSE_MIDI_EVENT_SYSTEM_RESET", "bse-midi-event-system-reset" );
01338 );
01339 
01340 
01341 /* sequence type declarations */
01342 BSE_CXX_DECLARE_SEQUENCE (IntSeq);
01343 
01344 BSE_CXX_DECLARE_SEQUENCE (TypeSeq);
01345 
01346 BSE_CXX_DECLARE_SEQUENCE (StringSeq);
01347 
01348 BSE_CXX_DECLARE_SEQUENCE (FloatSeq);
01349 
01350 BSE_CXX_DECLARE_SEQUENCE (NoteSeq);
01351 
01352 BSE_CXX_DECLARE_SEQUENCE (ItemSeq);
01353 
01354 BSE_CXX_DECLARE_SEQUENCE (PartNoteSeq);
01355 
01356 BSE_CXX_DECLARE_SEQUENCE (PartControlSeq);
01357 
01358 BSE_CXX_DECLARE_SEQUENCE (PixelSeq);
01359 
01360 BSE_CXX_DECLARE_SEQUENCE (CategorySeq);
01361 
01362 BSE_CXX_DECLARE_SEQUENCE (DotSeq);
01363 
01364 BSE_CXX_DECLARE_SEQUENCE (PartLinkSeq);
01365 
01366 BSE_CXX_DECLARE_SEQUENCE (TrackPartSeq);
01367 
01368 
01369 
01370 /* record type declarations */
01371 BSE_CXX_DECLARE_RECORD (MidiChannelEvent);
01372 
01373 BSE_CXX_DECLARE_RECORD (PropertyCandidates);
01374 
01375 BSE_CXX_DECLARE_RECORD (PartNote);
01376 
01377 BSE_CXX_DECLARE_RECORD (PartControl);
01378 
01379 BSE_CXX_DECLARE_RECORD (NoteDescription);
01380 
01381 BSE_CXX_DECLARE_RECORD (NoteSequence);
01382 
01383 BSE_CXX_DECLARE_RECORD (Icon);
01384 
01385 BSE_CXX_DECLARE_RECORD (Category);
01386 
01387 BSE_CXX_DECLARE_RECORD (Dot);
01388 
01389 BSE_CXX_DECLARE_RECORD (PartLink);
01390 
01391 BSE_CXX_DECLARE_RECORD (TrackPart);
01392 
01393 BSE_CXX_DECLARE_RECORD (SongTiming);
01394 
01395 BSE_CXX_DECLARE_RECORD (SampleFileInfo);
01396 
01397 BSE_CXX_DECLARE_RECORD (GConfig);
01398 
01399 
01400 
01401 /* procedure prototypes */
01402 
01403 
01404 /* class definitions */
01405 
01406 
01407 /* choice implementations */
01408 static SfiChoiceValues
01409 MusicalTuningType_choice_values()
01410 {
01411   static SfiChoiceValue values[17];
01412   static const SfiChoiceValues choice_values = {
01413     G_N_ELEMENTS (values), values,
01414   };
01415   if (!values[0].choice_ident)
01416     {
01417       values[0].choice_ident = "BSE_MUSICAL_TUNING_12_TET";
01418       values[0].choice_label = _("12 Tone Equal Temperament");
01419       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.");
01420       values[1].choice_ident = "BSE_MUSICAL_TUNING_7_TET";
01421       values[1].choice_label = _("7 Tone Equal Temperament");
01422       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.");
01423       values[2].choice_ident = "BSE_MUSICAL_TUNING_5_TET";
01424       values[2].choice_label = _("5 Tone Equal Temperament");
01425       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.");
01426       values[3].choice_ident = "BSE_MUSICAL_TUNING_DIATONIC_SCALE";
01427       values[3].choice_label = _("Diatonic Scale");
01428       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.");
01429       values[4].choice_ident = "BSE_MUSICAL_TUNING_INDIAN_SCALE";
01430       values[4].choice_label = _("Indian Scale");
01431       values[4].choice_blurb = _("Diatonic scale used in Indian music with wolf interval at Dha, close to 3/2");
01432       values[5].choice_ident = "BSE_MUSICAL_TUNING_PYTHAGOREAN_TUNING";
01433       values[5].choice_label = _("Pythagorean Tuning");
01434       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.");
01435       values[6].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_5_LIMIT";
01436       values[6].choice_label = _("Pentatonic 5-limit");
01437       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.");
01438       values[7].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_BLUES";
01439       values[7].choice_label = _("Pentatonic Blues");
01440       values[7].choice_blurb = _("The blues scale is the minor pentatonic with an additional augmented fourth, which is referred to as the \"blues note\".");
01441       values[8].choice_ident = "BSE_MUSICAL_TUNING_PENTATONIC_GOGO";
01442       values[8].choice_label = _("Pentatonic Gogo");
01443       values[8].choice_blurb = _("The Pentatonic Gogo scale is an anhemitonic pentatonic scale used to tune the instruments of the Gogo people of Tanzania.");
01444       values[9].choice_ident = "BSE_MUSICAL_TUNING_QUARTER_COMMA_MEANTONE";
01445       values[9].choice_label = _("Quarter-Comma Meantone");
01446       values[9].choice_blurb = _("Quarter-comma meantone was the most common meantone temperament in the sixteenth and seventeenth centuries and sometimes used later.");
01447       values[10].choice_ident = "BSE_MUSICAL_TUNING_SILBERMANN_SORGE";
01448       values[10].choice_label = _("Silbermann-Sorge Temperament");
01449       values[10].choice_blurb = _("The Silbermann-Sorge temperament is a meantone temperament used for Baroque era organs by Gottfried Silbermann.");
01450       values[11].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_3";
01451       values[11].choice_label = _("Werckmeister III");
01452       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.");
01453       values[12].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_4";
01454       values[12].choice_label = _("Werckmeister IV");
01455       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.");
01456       values[13].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_5";
01457       values[13].choice_label = _("Werckmeister V");
01458       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.");
01459       values[14].choice_ident = "BSE_MUSICAL_TUNING_WERCKMEISTER_6";
01460       values[14].choice_label = _("Werckmeister VI");
01461       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\".");
01462       values[15].choice_ident = "BSE_MUSICAL_TUNING_KIRNBERGER_3";
01463       values[15].choice_label = _("Kirnberger III");
01464       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).");
01465       values[16].choice_ident = "BSE_MUSICAL_TUNING_YOUNG";
01466       values[16].choice_label = _("Young Temperament");
01467       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.");
01468   }
01469   return choice_values;
01470 }
01471 
01472 static SfiChoiceValues
01473 MidiSignalType_choice_values()
01474 {
01475   static SfiChoiceValue values[172];
01476   static const SfiChoiceValues choice_values = {
01477     G_N_ELEMENTS (values), values,
01478   };
01479   if (!values[0].choice_ident)
01480     {
01481       values[0].choice_ident = "BSE_MIDI_SIGNAL_PROGRAM";
01482       values[0].choice_label = _("Program Change");
01483       values[0].choice_blurb = "";
01484       values[1].choice_ident = "BSE_MIDI_SIGNAL_PRESSURE";
01485       values[1].choice_label = _("Channel Pressure");
01486       values[1].choice_blurb = "";
01487       values[2].choice_ident = "BSE_MIDI_SIGNAL_PITCH_BEND";
01488       values[2].choice_label = _("Pitch Bend");
01489       values[2].choice_blurb = "";
01490       values[3].choice_ident = "BSE_MIDI_SIGNAL_VELOCITY";
01491       values[3].choice_label = _("Note Velocity");
01492       values[3].choice_blurb = "";
01493       values[4].choice_ident = "BSE_MIDI_SIGNAL_FINE_TUNE";
01494       values[4].choice_label = _("Note Fine Tune");
01495       values[4].choice_blurb = "";
01496       values[5].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_0";
01497       values[5].choice_label = _("Bank Select");
01498       values[5].choice_blurb = "";
01499       values[6].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_1";
01500       values[6].choice_label = _("Modulation Depth");
01501       values[6].choice_blurb = "";
01502       values[7].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_2";
01503       values[7].choice_label = _("Breath Control");
01504       values[7].choice_blurb = "";
01505       values[8].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_3";
01506       values[8].choice_label = _("Continuous 3");
01507       values[8].choice_blurb = "";
01508       values[9].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_4";
01509       values[9].choice_label = _("Foot Controller");
01510       values[9].choice_blurb = "";
01511       values[10].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_5";
01512       values[10].choice_label = _("Portamento Time");
01513       values[10].choice_blurb = "";
01514       values[11].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_6";
01515       values[11].choice_label = _("Data Entry");
01516       values[11].choice_blurb = "";
01517       values[12].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_7";
01518       values[12].choice_label = _("Volume");
01519       values[12].choice_blurb = "";
01520       values[13].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_8";
01521       values[13].choice_label = _("Balance");
01522       values[13].choice_blurb = "";
01523       values[14].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_9";
01524       values[14].choice_label = _("Continuous 9");
01525       values[14].choice_blurb = "";
01526       values[15].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_10";
01527       values[15].choice_label = _("Panorama");
01528       values[15].choice_blurb = "";
01529       values[16].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_11";
01530       values[16].choice_label = _("Expression");
01531       values[16].choice_blurb = "";
01532       values[17].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_12";
01533       values[17].choice_label = _("Effect Control 1");
01534       values[17].choice_blurb = "";
01535       values[18].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_13";
01536       values[18].choice_label = _("Effect Control 2");
01537       values[18].choice_blurb = "";
01538       values[19].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_14";
01539       values[19].choice_label = _("Continuous 14");
01540       values[19].choice_blurb = "";
01541       values[20].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_15";
01542       values[20].choice_label = _("Continuous 15");
01543       values[20].choice_blurb = "";
01544       values[21].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_16";
01545       values[21].choice_label = _("General Purpose Controller 1");
01546       values[21].choice_blurb = "";
01547       values[22].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_17";
01548       values[22].choice_label = _("General Purpose Controller 2");
01549       values[22].choice_blurb = "";
01550       values[23].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_18";
01551       values[23].choice_label = _("General Purpose Controller 3");
01552       values[23].choice_blurb = "";
01553       values[24].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_19";
01554       values[24].choice_label = _("General Purpose Controller 4");
01555       values[24].choice_blurb = "";
01556       values[25].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_20";
01557       values[25].choice_label = _("Continuous 20");
01558       values[25].choice_blurb = "";
01559       values[26].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_21";
01560       values[26].choice_label = _("Continuous 21");
01561       values[26].choice_blurb = "";
01562       values[27].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_22";
01563       values[27].choice_label = _("Continuous 22");
01564       values[27].choice_blurb = "";
01565       values[28].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_23";
01566       values[28].choice_label = _("Continuous 23");
01567       values[28].choice_blurb = "";
01568       values[29].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_24";
01569       values[29].choice_label = _("Continuous 24");
01570       values[29].choice_blurb = "";
01571       values[30].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_25";
01572       values[30].choice_label = _("Continuous 25");
01573       values[30].choice_blurb = "";
01574       values[31].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_26";
01575       values[31].choice_label = _("Continuous 26");
01576       values[31].choice_blurb = "";
01577       values[32].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_27";
01578       values[32].choice_label = _("Continuous 27");
01579       values[32].choice_blurb = "";
01580       values[33].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_28";
01581       values[33].choice_label = _("Continuous 28");
01582       values[33].choice_blurb = "";
01583       values[34].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_29";
01584       values[34].choice_label = _("Continuous 29");
01585       values[34].choice_blurb = "";
01586       values[35].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_30";
01587       values[35].choice_label = _("Continuous 30");
01588       values[35].choice_blurb = "";
01589       values[36].choice_ident = "BSE_MIDI_SIGNAL_CONTINUOUS_31";
01590       values[36].choice_label = _("Continuous 31");
01591       values[36].choice_blurb = "";
01592       values[37].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_HIGH";
01593       values[37].choice_label = _("Constant HIGH");
01594       values[37].choice_blurb = "";
01595       values[38].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_CENTER";
01596       values[38].choice_label = _("Constant CENTER");
01597       values[38].choice_blurb = "";
01598       values[39].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_LOW";
01599       values[39].choice_label = _("Constant LOW");
01600       values[39].choice_blurb = "";
01601       values[40].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_CENTER";
01602       values[40].choice_label = _("Constant Negative CENTER");
01603       values[40].choice_blurb = "";
01604       values[41].choice_ident = "BSE_MIDI_SIGNAL_CONSTANT_NEGATIVE_HIGH";
01605       values[41].choice_label = _("Constant Negative HIGH");
01606       values[41].choice_blurb = "";
01607       values[42].choice_ident = "BSE_MIDI_SIGNAL_PARAMETER";
01608       values[42].choice_label = _("Registered Parameter");
01609       values[42].choice_blurb = "";
01610       values[43].choice_ident = "BSE_MIDI_SIGNAL_NON_PARAMETER";
01611       values[43].choice_label = _("Non-Registered Parameter");
01612       values[43].choice_blurb = "";
01613       values[44].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_0";
01614       values[44].choice_label = _("Control 0 Bank Select MSB");
01615       values[44].choice_blurb = "";
01616       values[45].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_1";
01617       values[45].choice_label = _("Control 1 Modulation Depth MSB");
01618       values[45].choice_blurb = "";
01619       values[46].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_2";
01620       values[46].choice_label = _("Control 2 Breath Control MSB");
01621       values[46].choice_blurb = "";
01622       values[47].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_3";
01623       values[47].choice_label = _("control-3");
01624       values[47].choice_blurb = "";
01625       values[48].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_4";
01626       values[48].choice_label = _("Control 4 Foot Controller MSB");
01627       values[48].choice_blurb = "";
01628       values[49].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_5";
01629       values[49].choice_label = _("Control 5 Portamento Time MSB");
01630       values[49].choice_blurb = "";
01631       values[50].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_6";
01632       values[50].choice_label = _("Control 6 Data Entry MSB");
01633       values[50].choice_blurb = "";
01634       values[51].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_7";
01635       values[51].choice_label = _("Control 7 Volume MSB");
01636       values[51].choice_blurb = "";
01637       values[52].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_8";
01638       values[52].choice_label = _("Control 8 Balance MSB");
01639       values[52].choice_blurb = "";
01640       values[53].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_9";
01641       values[53].choice_label = _("control-9");
01642       values[53].choice_blurb = "";
01643       values[54].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_10";
01644       values[54].choice_label = _("Control 10 Panorama MSB");
01645       values[54].choice_blurb = "";
01646       values[55].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_11";
01647       values[55].choice_label = _("Control 11 Expression MSB");
01648       values[55].choice_blurb = "";
01649       values[56].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_12";
01650       values[56].choice_label = _("Control 12 Effect Control 1 MSB");
01651       values[56].choice_blurb = "";
01652       values[57].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_13";
01653       values[57].choice_label = _("Control 13 Effect Control 2 MSB");
01654       values[57].choice_blurb = "";
01655       values[58].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_14";
01656       values[58].choice_label = _("control-14");
01657       values[58].choice_blurb = "";
01658       values[59].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_15";
01659       values[59].choice_label = _("control-15");
01660       values[59].choice_blurb = "";
01661       values[60].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_16";
01662       values[60].choice_label = _("Control 16 General Purpose Controller 1 MSB");
01663       values[60].choice_blurb = "";
01664       values[61].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_17";
01665       values[61].choice_label = _("Control 17 General Purpose Controller 2 MSB");
01666       values[61].choice_blurb = "";
01667       values[62].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_18";
01668       values[62].choice_label = _("Control 18 General Purpose Controller 3 MSB");
01669       values[62].choice_blurb = "";
01670       values[63].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_19";
01671       values[63].choice_label = _("Control 19 General Purpose Controller 4 MSB");
01672       values[63].choice_blurb = "";
01673       values[64].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_20";
01674       values[64].choice_label = _("control-20");
01675       values[64].choice_blurb = "";
01676       values[65].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_21";
01677       values[65].choice_label = _("control-21");
01678       values[65].choice_blurb = "";
01679       values[66].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_22";
01680       values[66].choice_label = _("control-22");
01681       values[66].choice_blurb = "";
01682       values[67].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_23";
01683       values[67].choice_label = _("control-23");
01684       values[67].choice_blurb = "";
01685       values[68].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_24";
01686       values[68].choice_label = _("control-24");
01687       values[68].choice_blurb = "";
01688       values[69].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_25";
01689       values[69].choice_label = _("control-25");
01690       values[69].choice_blurb = "";
01691       values[70].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_26";
01692       values[70].choice_label = _("control-26");
01693       values[70].choice_blurb = "";
01694       values[71].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_27";
01695       values[71].choice_label = _("control-27");
01696       values[71].choice_blurb = "";
01697       values[72].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_28";
01698       values[72].choice_label = _("control-28");
01699       values[72].choice_blurb = "";
01700       values[73].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_29";
01701       values[73].choice_label = _("control-29");
01702       values[73].choice_blurb = "";
01703       values[74].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_30";
01704       values[74].choice_label = _("control-30");
01705       values[74].choice_blurb = "";
01706       values[75].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_31";
01707       values[75].choice_label = _("control-31");
01708       values[75].choice_blurb = "";
01709       values[76].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_32";
01710       values[76].choice_label = _("Control 32 Bank Select LSB");
01711       values[76].choice_blurb = "";
01712       values[77].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_33";
01713       values[77].choice_label = _("Control 33 Modulation Depth LSB");
01714       values[77].choice_blurb = "";
01715       values[78].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_34";
01716       values[78].choice_label = _("Control 34 Breath Control LSB");
01717       values[78].choice_blurb = "";
01718       values[79].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_35";
01719       values[79].choice_label = _("control-35");
01720       values[79].choice_blurb = "";
01721       values[80].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_36";
01722       values[80].choice_label = _("Control 36 Foot Controller LSB");
01723       values[80].choice_blurb = "";
01724       values[81].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_37";
01725       values[81].choice_label = _("Control 37 Portamento Time LSB");
01726       values[81].choice_blurb = "";
01727       values[82].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_38";
01728       values[82].choice_label = _("Control 38 Data Entry LSB");
01729       values[82].choice_blurb = "";
01730       values[83].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_39";
01731       values[83].choice_label = _("Control 39 Volume LSB");
01732       values[83].choice_blurb = "";
01733       values[84].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_40";
01734       values[84].choice_label = _("Control 40 Balance LSB");
01735       values[84].choice_blurb = "";
01736       values[85].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_41";
01737       values[85].choice_label = _("control-41");
01738       values[85].choice_blurb = "";
01739       values[86].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_42";
01740       values[86].choice_label = _("Control 42 Panorama LSB");
01741       values[86].choice_blurb = "";
01742       values[87].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_43";
01743       values[87].choice_label = _("Control 43 Expression LSB");
01744       values[87].choice_blurb = "";
01745       values[88].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_44";
01746       values[88].choice_label = _("Control 44 Effect Control 1 LSB");
01747       values[88].choice_blurb = "";
01748       values[89].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_45";
01749       values[89].choice_label = _("Control 45 Effect Control 2 LSB");
01750       values[89].choice_blurb = "";
01751       values[90].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_46";
01752       values[90].choice_label = _("control-46");
01753       values[90].choice_blurb = "";
01754       values[91].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_47";
01755       values[91].choice_label = _("control-47");
01756       values[91].choice_blurb = "";
01757       values[92].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_48";
01758       values[92].choice_label = _("Control 48 General Purpose Controller 1 LSB");
01759       values[92].choice_blurb = "";
01760       values[93].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_49";
01761       values[93].choice_label = _("Control 49 General Purpose Controller 2 LSB");
01762       values[93].choice_blurb = "";
01763       values[94].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_50";
01764       values[94].choice_label = _("Control 50 General Purpose Controller 3 LSB");
01765       values[94].choice_blurb = "";
01766       values[95].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_51";
01767       values[95].choice_label = _("Control 51 General Purpose Controller 4 LSB");
01768       values[95].choice_blurb = "";
01769       values[96].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_52";
01770       values[96].choice_label = _("control-52");
01771       values[96].choice_blurb = "";
01772       values[97].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_53";
01773       values[97].choice_label = _("control-53");
01774       values[97].choice_blurb = "";
01775       values[98].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_54";
01776       values[98].choice_label = _("control-54");
01777       values[98].choice_blurb = "";
01778       values[99].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_55";
01779       values[99].choice_label = _("control-55");
01780       values[99].choice_blurb = "";
01781       values[100].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_56";
01782       values[100].choice_label = _("control-56");
01783       values[100].choice_blurb = "";
01784       values[101].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_57";
01785       values[101].choice_label = _("control-57");
01786       values[101].choice_blurb = "";
01787       values[102].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_58";
01788       values[102].choice_label = _("control-58");
01789       values[102].choice_blurb = "";
01790       values[103].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_59";
01791       values[103].choice_label = _("control-59");
01792       values[103].choice_blurb = "";
01793       values[104].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_60";
01794       values[104].choice_label = _("control-60");
01795       values[104].choice_blurb = "";
01796       values[105].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_61";
01797       values[105].choice_label = _("control-61");
01798       values[105].choice_blurb = "";
01799       values[106].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_62";
01800       values[106].choice_label = _("control-62");
01801       values[106].choice_blurb = "";
01802       values[107].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_63";
01803       values[107].choice_label = _("control-63");
01804       values[107].choice_blurb = "";
01805       values[108].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_64";
01806       values[108].choice_label = _("Control 64 Damper Pedal Switch (Sustain)");
01807       values[108].choice_blurb = "";
01808       values[109].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_65";
01809       values[109].choice_label = _("Control 65 Portamento Switch");
01810       values[109].choice_blurb = "";
01811       values[110].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_66";
01812       values[110].choice_label = _("Control 66 Sustenuto Switch");
01813       values[110].choice_blurb = "";
01814       values[111].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_67";
01815       values[111].choice_label = _("Control 67 Soft Switch");
01816       values[111].choice_blurb = "";
01817       values[112].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_68";
01818       values[112].choice_label = _("Control 68 Legato Pedal Switch");
01819       values[112].choice_blurb = "";
01820       values[113].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_69";
01821       values[113].choice_label = _("Control 69 Hold Pedal Switch");
01822       values[113].choice_blurb = "";
01823       values[114].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_70";
01824       values[114].choice_label = _("Control 70 Sound Variation");
01825       values[114].choice_blurb = "";
01826       values[115].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_71";
01827       values[115].choice_label = _("Control 71 Filter Resonance (Timbre)");
01828       values[115].choice_blurb = "";
01829       values[116].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_72";
01830       values[116].choice_label = _("Control 72 Sound Release Time");
01831       values[116].choice_blurb = "";
01832       values[117].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_73";
01833       values[117].choice_label = _("Control 73 Sound Attack Time");
01834       values[117].choice_blurb = "";
01835       values[118].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_74";
01836       values[118].choice_label = _("Control 74 Sound Brightness");
01837       values[118].choice_blurb = "";
01838       values[119].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_75";
01839       values[119].choice_label = _("Control 75 Sound Decay Time");
01840       values[119].choice_blurb = "";
01841       values[120].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_76";
01842       values[120].choice_label = _("Control 76 Vibrato Rate");
01843       values[120].choice_blurb = "";
01844       values[121].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_77";
01845       values[121].choice_label = _("Control 77 Vibrato Depth");
01846       values[121].choice_blurb = "";
01847       values[122].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_78";
01848       values[122].choice_label = _("Control 78 Vibrato Delay");
01849       values[122].choice_blurb = "";
01850       values[123].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_79";
01851       values[123].choice_label = _("Control 79 Sound Control 10");
01852       values[123].choice_blurb = "";
01853       values[124].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_80";
01854       values[124].choice_label = _("Control 80 General Purpose Switch 5");
01855       values[124].choice_blurb = "";
01856       values[125].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_81";
01857       values[125].choice_label = _("Control 81 General Purpose Switch 6");
01858       values[125].choice_blurb = "";
01859       values[126].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_82";
01860       values[126].choice_label = _("Control 82 General Purpose Switch 7");
01861       values[126].choice_blurb = "";
01862       values[127].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_83";
01863       values[127].choice_label = _("Control 83 General Purpose Switch 8");
01864       values[127].choice_blurb = "";
01865       values[128].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_84";
01866       values[128].choice_label = _("Control 84 Portamento Control (Note)");
01867       values[128].choice_blurb = "";
01868       values[129].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_85";
01869       values[129].choice_label = _("control-85");
01870       values[129].choice_blurb = "";
01871       values[130].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_86";
01872       values[130].choice_label = _("control-86");
01873       values[130].choice_blurb = "";
01874       values[131].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_87";
01875       values[131].choice_label = _("control-87");
01876       values[131].choice_blurb = "";
01877       values[132].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_88";
01878       values[132].choice_label = _("control-88");
01879       values[132].choice_blurb = "";
01880       values[133].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_89";
01881       values[133].choice_label = _("control-89");
01882       values[133].choice_blurb = "";
01883       values[134].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_90";
01884       values[134].choice_label = _("control-90");
01885       values[134].choice_blurb = "";
01886       values[135].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_91";
01887       values[135].choice_label = _("Control 91 Reverb Depth");
01888       values[135].choice_blurb = "";
01889       values[136].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_92";
01890       values[136].choice_label = _("Control 92 Tremolo Depth");
01891       values[136].choice_blurb = "";
01892       values[137].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_93";
01893       values[137].choice_label = _("Control 93 Chorus Depth");
01894       values[137].choice_blurb = "";
01895       values[138].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_94";
01896       values[138].choice_label = _("Control 93 Detune Depth");
01897       values[138].choice_blurb = "";
01898       values[139].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_95";
01899       values[139].choice_label = _("Control 95 Phase Depth");
01900       values[139].choice_blurb = "";
01901       values[140].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_96";
01902       values[140].choice_label = _("Control 96 Data Increment Trigger");
01903       values[140].choice_blurb = "";
01904       values[141].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_97";
01905       values[141].choice_label = _("Control 97 Data Decrement Trigger");
01906       values[141].choice_blurb = "";
01907       values[142].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_98";
01908       values[142].choice_label = _("Control 98 Non-Registered Parameter MSB");
01909       values[142].choice_blurb = "";
01910       values[143].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_99";
01911       values[143].choice_label = _("Control 99 Non-Registered Parameter LSB");
01912       values[143].choice_blurb = "";
01913       values[144].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_100";
01914       values[144].choice_label = _("Control 100 Registered Parameter MSB");
01915       values[144].choice_blurb = "";
01916       values[145].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_101";
01917       values[145].choice_label = _("Control 101 Registered Parameter LSB");
01918       values[145].choice_blurb = "";
01919       values[146].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_102";
01920       values[146].choice_label = _("control-102");
01921       values[146].choice_blurb = "";
01922       values[147].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_103";
01923       values[147].choice_label = _("control-103");
01924       values[147].choice_blurb = "";
01925       values[148].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_104";
01926       values[148].choice_label = _("control-104");
01927       values[148].choice_blurb = "";
01928       values[149].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_105";
01929       values[149].choice_label = _("control-105");
01930       values[149].choice_blurb = "";
01931       values[150].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_106";
01932       values[150].choice_label = _("control-106");
01933       values[150].choice_blurb = "";
01934       values[151].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_107";
01935       values[151].choice_label = _("control-107");
01936       values[151].choice_blurb = "";
01937       values[152].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_108";
01938       values[152].choice_label = _("control-108");
01939       values[152].choice_blurb = "";
01940       values[153].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_109";
01941       values[153].choice_label = _("control-109");
01942       values[153].choice_blurb = "";
01943       values[154].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_110";
01944       values[154].choice_label = _("control-110");
01945       values[154].choice_blurb = "";
01946       values[155].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_111";
01947       values[155].choice_label = _("control-111");
01948       values[155].choice_blurb = "";
01949       values[156].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_112";
01950       values[156].choice_label = _("control-112");
01951       values[156].choice_blurb = "";
01952       values[157].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_113";
01953       values[157].choice_label = _("control-113");
01954       values[157].choice_blurb = "";
01955       values[158].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_114";
01956       values[158].choice_label = _("control-114");
01957       values[158].choice_blurb = "";
01958       values[159].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_115";
01959       values[159].choice_label = _("control-115");
01960       values[159].choice_blurb = "";
01961       values[160].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_116";
01962       values[160].choice_label = _("control-116");
01963       values[160].choice_blurb = "";
01964       values[161].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_117";
01965       values[161].choice_label = _("control-117");
01966       values[161].choice_blurb = "";
01967       values[162].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_118";
01968       values[162].choice_label = _("control-118");
01969       values[162].choice_blurb = "";
01970       values[163].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_119";
01971       values[163].choice_label = _("control-119");
01972       values[163].choice_blurb = "";
01973       values[164].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_120";
01974       values[164].choice_label = _("Control 120 All Sound Off ITrigger");
01975       values[164].choice_blurb = "";
01976       values[165].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_121";
01977       values[165].choice_label = _("Control 121 All Controllers Off ITrigger");
01978       values[165].choice_blurb = "";
01979       values[166].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_122";
01980       values[166].choice_label = _("Control 122 Local Control Switch");
01981       values[166].choice_blurb = "";
01982       values[167].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_123";
01983       values[167].choice_label = _("Control 123 All Notes Off ITrigger");
01984       values[167].choice_blurb = "";
01985       values[168].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_124";
01986       values[168].choice_label = _("Control 124 Omni Mode Off ITrigger");
01987       values[168].choice_blurb = "";
01988       values[169].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_125";
01989       values[169].choice_label = _("Control 125 Omni Mode On ITrigger");
01990       values[169].choice_blurb = "";
01991       values[170].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_126";
01992       values[170].choice_label = _("Control 126 Monophonic Voices Mode");
01993       values[170].choice_blurb = "";
01994       values[171].choice_ident = "BSE_MIDI_SIGNAL_CONTROL_127";
01995       values[171].choice_label = _("Control 127 Polyphonic Mode On ITrigger");
01996       values[171].choice_blurb = "";
01997   }
01998   return choice_values;
01999 }
02000 
02001 static SfiChoiceValues
02002 MidiControlType_choice_values()
02003 {
02004   static SfiChoiceValue values[161];
02005   static const SfiChoiceValues choice_values = {
02006     G_N_ELEMENTS (values), values,
02007   };
02008   if (!values[0].choice_ident)
02009     {
02010       values[0].choice_ident = "BSE_MIDI_CONTROL_NONE";
02011       values[0].choice_label = _("None");
02012       values[0].choice_blurb = "";
02013       values[1].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_0";
02014       values[1].choice_label = _("Bank Select");
02015       values[1].choice_blurb = _("Continuous MIDI Control #1 - Bank Select");
02016       values[2].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_1";
02017       values[2].choice_label = _("Modulation Depth");
02018       values[2].choice_blurb = "";
02019       values[3].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_2";
02020       values[3].choice_label = _("Breath Control");
02021       values[3].choice_blurb = "";
02022       values[4].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_3";
02023       values[4].choice_label = _("Continuous 3");
02024       values[4].choice_blurb = "";
02025       values[5].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_4";
02026       values[5].choice_label = _("Foot Controller");
02027       values[5].choice_blurb = "";
02028       values[6].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_5";
02029       values[6].choice_label = _("Portamento Time");
02030       values[6].choice_blurb = "";
02031       values[7].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_6";
02032       values[7].choice_label = _("Data Entry");
02033       values[7].choice_blurb = "";
02034       values[8].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_7";
02035       values[8].choice_label = _("Volume");
02036       values[8].choice_blurb = "";
02037       values[9].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_8";
02038       values[9].choice_label = _("Balance");
02039       values[9].choice_blurb = "";
02040       values[10].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_9";
02041       values[10].choice_label = _("Continuous 9");
02042       values[10].choice_blurb = "";
02043       values[11].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_10";
02044       values[11].choice_label = _("Panorama");
02045       values[11].choice_blurb = "";
02046       values[12].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_11";
02047       values[12].choice_label = _("Expression");
02048       values[12].choice_blurb = "";
02049       values[13].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_12";
02050       values[13].choice_label = _("Effect Control 1");
02051       values[13].choice_blurb = "";
02052       values[14].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_13";
02053       values[14].choice_label = _("Effect Control 2");
02054       values[14].choice_blurb = "";
02055       values[15].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_14";
02056       values[15].choice_label = _("Continuous 14");
02057       values[15].choice_blurb = "";
02058       values[16].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_15";
02059       values[16].choice_label = _("Continuous 15");
02060       values[16].choice_blurb = "";
02061       values[17].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_16";
02062       values[17].choice_label = _("General Purpose Controller 1");
02063       values[17].choice_blurb = "";
02064       values[18].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_17";
02065       values[18].choice_label = _("General Purpose Controller 2");
02066       values[18].choice_blurb = "";
02067       values[19].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_18";
02068       values[19].choice_label = _("General Purpose Controller 3");
02069       values[19].choice_blurb = "";
02070       values[20].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_19";
02071       values[20].choice_label = _("General Purpose Controller 4");
02072       values[20].choice_blurb = "";
02073       values[21].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_20";
02074       values[21].choice_label = _("Continuous 20");
02075       values[21].choice_blurb = "";
02076       values[22].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_21";
02077       values[22].choice_label = _("Continuous 21");
02078       values[22].choice_blurb = "";
02079       values[23].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_22";
02080       values[23].choice_label = _("Continuous 22");
02081       values[23].choice_blurb = "";
02082       values[24].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_23";
02083       values[24].choice_label = _("Continuous 23");
02084       values[24].choice_blurb = "";
02085       values[25].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_24";
02086       values[25].choice_label = _("Continuous 24");
02087       values[25].choice_blurb = "";
02088       values[26].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_25";
02089       values[26].choice_label = _("Continuous 25");
02090       values[26].choice_blurb = "";
02091       values[27].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_26";
02092       values[27].choice_label = _("Continuous 26");
02093       values[27].choice_blurb = "";
02094       values[28].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_27";
02095       values[28].choice_label = _("Continuous 27");
02096       values[28].choice_blurb = "";
02097       values[29].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_28";
02098       values[29].choice_label = _("Continuous 28");
02099       values[29].choice_blurb = "";
02100       values[30].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_29";
02101       values[30].choice_label = _("Continuous 29");
02102       values[30].choice_blurb = "";
02103       values[31].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_30";
02104       values[31].choice_label = _("Continuous 30");
02105       values[31].choice_blurb = "";
02106       values[32].choice_ident = "BSE_MIDI_CONTROL_CONTINUOUS_31";
02107       values[32].choice_label = _("Continuous 31");
02108       values[32].choice_blurb = "";
02109       values[33].choice_ident = "BSE_MIDI_CONTROL_0";
02110       values[33].choice_label = _("Control 0 Bank Select MSB");
02111       values[33].choice_blurb = "";
02112       values[34].choice_ident = "BSE_MIDI_CONTROL_1";
02113       values[34].choice_label = _("Control 1 Modulation Depth MSB");
02114       values[34].choice_blurb = "";
02115       values[35].choice_ident = "BSE_MIDI_CONTROL_2";
02116       values[35].choice_label = _("Control 2 Breath Control MSB");
02117       values[35].choice_blurb = "";
02118       values[36].choice_ident = "BSE_MIDI_CONTROL_3";
02119       values[36].choice_label = _("control-3");
02120       values[36].choice_blurb = "";
02121       values[37].choice_ident = "BSE_MIDI_CONTROL_4";
02122       values[37].choice_label = _("Control 4 Foot Controller MSB");
02123       values[37].choice_blurb = "";
02124       values[38].choice_ident = "BSE_MIDI_CONTROL_5";
02125       values[38].choice_label = _("Control 5 Portamento Time MSB");
02126       values[38].choice_blurb = "";
02127       values[39].choice_ident = "BSE_MIDI_CONTROL_6";
02128       values[39].choice_label = _("Control 6 Data Entry MSB");
02129       values[39].choice_blurb = "";
02130       values[40].choice_ident = "BSE_MIDI_CONTROL_7";
02131       values[40].choice_label = _("Control 7 Volume MSB");
02132       values[40].choice_blurb = "";
02133       values[41].choice_ident = "BSE_MIDI_CONTROL_8";
02134       values[41].choice_label = _("Control 8 Balance MSB");
02135       values[41].choice_blurb = "";
02136       values[42].choice_ident = "BSE_MIDI_CONTROL_9";
02137       values[42].choice_label = _("control-9");
02138       values[42].choice_blurb = "";
02139       values[43].choice_ident = "BSE_MIDI_CONTROL_10";
02140       values[43].choice_label = _("Control 10 Panorama MSB");
02141       values[43].choice_blurb = "";
02142       values[44].choice_ident = "BSE_MIDI_CONTROL_11";
02143       values[44].choice_label = _("Control 11 Expression MSB");
02144       values[44].choice_blurb = "";
02145       values[45].choice_ident = "BSE_MIDI_CONTROL_12";
02146       values[45].choice_label = _("Control 12 Effect Control 1 MSB");
02147       values[45].choice_blurb = "";
02148       values[46].choice_ident = "BSE_MIDI_CONTROL_13";
02149       values[46].choice_label = _("Control 13 Effect Control 2 MSB");
02150       values[46].choice_blurb = "";
02151       values[47].choice_ident = "BSE_MIDI_CONTROL_14";
02152       values[47].choice_label = _("control-14");
02153       values[47].choice_blurb = "";
02154       values[48].choice_ident = "BSE_MIDI_CONTROL_15";
02155       values[48].choice_label = _("control-15");
02156       values[48].choice_blurb = "";
02157       values[49].choice_ident = "BSE_MIDI_CONTROL_16";
02158       values[49].choice_label = _("Control 16 General Purpose Controller 1 MSB");
02159       values[49].choice_blurb = "";
02160       values[50].choice_ident = "BSE_MIDI_CONTROL_17";
02161       values[50].choice_label = _("Control 17 General Purpose Controller 2 MSB");
02162       values[50].choice_blurb = "";
02163       values[51].choice_ident = "BSE_MIDI_CONTROL_18";
02164       values[51].choice_label = _("Control 18 General Purpose Controller 3 MSB");
02165       values[51].choice_blurb = "";
02166       values[52].choice_ident = "BSE_MIDI_CONTROL_19";
02167       values[52].choice_label = _("Control 19 General Purpose Controller 4 MSB");
02168       values[52].choice_blurb = "";
02169       values[53].choice_ident = "BSE_MIDI_CONTROL_20";
02170       values[53].choice_label = _("control-20");
02171       values[53].choice_blurb = "";
02172       values[54].choice_ident = "BSE_MIDI_CONTROL_21";
02173       values[54].choice_label = _("control-21");
02174       values[54].choice_blurb = "";
02175       values[55].choice_ident = "BSE_MIDI_CONTROL_22";
02176       values[55].choice_label = _("control-22");
02177       values[55].choice_blurb = "";
02178       values[56].choice_ident = "BSE_MIDI_CONTROL_23";
02179       values[56].choice_label = _("control-23");
02180       values[56].choice_blurb = "";
02181       values[57].choice_ident = "BSE_MIDI_CONTROL_24";
02182       values[57].choice_label = _("control-24");
02183       values[57].choice_blurb = "";
02184       values[58].choice_ident = "BSE_MIDI_CONTROL_25";
02185       values[58].choice_label = _("control-25");
02186       values[58].choice_blurb = "";
02187       values[59].choice_ident = "BSE_MIDI_CONTROL_26";
02188       values[59].choice_label = _("control-26");
02189       values[59].choice_blurb = "";
02190       values[60].choice_ident = "BSE_MIDI_CONTROL_27";
02191       values[60].choice_label = _("control-27");
02192       values[60].choice_blurb = "";
02193       values[61].choice_ident = "BSE_MIDI_CONTROL_28";
02194       values[61].choice_label = _("control-28");
02195       values[61].choice_blurb = "";
02196       values[62].choice_ident = "BSE_MIDI_CONTROL_29";
02197       values[62].choice_label = _("control-29");
02198       values[62].choice_blurb = "";
02199       values[63].choice_ident = "BSE_MIDI_CONTROL_30";
02200       values[63].choice_label = _("control-30");
02201       values[63].choice_blurb = "";
02202       values[64].choice_ident = "BSE_MIDI_CONTROL_31";
02203       values[64].choice_label = _("control-31");
02204       values[64].choice_blurb = "";
02205       values[65].choice_ident = "BSE_MIDI_CONTROL_32";
02206       values[65].choice_label = _("Control 32 Bank Select LSB");
02207       values[65].choice_blurb = "";
02208       values[66].choice_ident = "BSE_MIDI_CONTROL_33";
02209       values[66].choice_label = _("Control 33 Modulation Depth LSB");
02210       values[66].choice_blurb = "";
02211       values[67].choice_ident = "BSE_MIDI_CONTROL_34";
02212       values[67].choice_label = _("Control 34 Breath Control LSB");
02213       values[67].choice_blurb = "";
02214       values[68].choice_ident = "BSE_MIDI_CONTROL_35";
02215       values[68].choice_label = _("control-35");
02216       values[68].choice_blurb = "";
02217       values[69].choice_ident = "BSE_MIDI_CONTROL_36";
02218       values[69].choice_label = _("Control 36 Foot Controller LSB");
02219       values[69].choice_blurb = "";
02220       values[70].choice_ident = "BSE_MIDI_CONTROL_37";
02221       values[70].choice_label = _("Control 37 Portamento Time LSB");
02222       values[70].choice_blurb = "";
02223       values[71].choice_ident = "BSE_MIDI_CONTROL_38";
02224       values[71].choice_label = _("Control 38 Data Entry LSB");
02225       values[71].choice_blurb = "";
02226       values[72].choice_ident = "BSE_MIDI_CONTROL_39";
02227       values[72].choice_label = _("Control 39 Volume LSB");
02228       values[72].choice_blurb = "";
02229       values[73].choice_ident = "BSE_MIDI_CONTROL_40";
02230       values[73].choice_label = _("Control 40 Balance LSB");
02231       values[73].choice_blurb = "";
02232       values[74].choice_ident = "BSE_MIDI_CONTROL_41";
02233       values[74].choice_label = _("control-41");
02234       values[74].choice_blurb = "";
02235       values[75].choice_ident = "BSE_MIDI_CONTROL_42";
02236       values[75].choice_label = _("Control 42 Panorama LSB");
02237       values[75].choice_blurb = "";
02238       values[76].choice_ident = "BSE_MIDI_CONTROL_43";
02239       values[76].choice_label = _("Control 43 Expression LSB");
02240       values[76].choice_blurb = "";
02241       values[77].choice_ident = "BSE_MIDI_CONTROL_44";
02242       values[77].choice_label = _("Control 44 Effect Control 1 LSB");
02243       values[77].choice_blurb = "";
02244       values[78].choice_ident = "BSE_MIDI_CONTROL_45";
02245       values[78].choice_label = _("Control 45 Effect Control 2 LSB");
02246       values[78].choice_blurb = "";
02247       values[79].choice_ident = "BSE_MIDI_CONTROL_46";
02248       values[79].choice_label = _("control-46");
02249       values[79].choice_blurb = "";
02250       values[80].choice_ident = "BSE_MIDI_CONTROL_47";
02251       values[80].choice_label = _("control-47");
02252       values[80].choice_blurb = "";
02253       values[81].choice_ident = "BSE_MIDI_CONTROL_48";
02254       values[81].choice_label = _("Control 48 General Purpose Controller 1 LSB");
02255       values[81].choice_blurb = "";
02256       values[82].choice_ident = "BSE_MIDI_CONTROL_49";
02257       values[82].choice_label = _("Control 49 General Purpose Controller 2 LSB");
02258       values[82].choice_blurb = "";
02259       values[83].choice_ident = "BSE_MIDI_CONTROL_50";
02260       values[83].choice_label = _("Control 50 General Purpose Controller 3 LSB");
02261       values[83].choice_blurb = "";
02262       values[84].choice_ident = "BSE_MIDI_CONTROL_51";
02263       values[84].choice_label = _("Control 51 General Purpose Controller 4 LSB");
02264       values[84].choice_blurb = "";
02265       values[85].choice_ident = "BSE_MIDI_CONTROL_52";
02266       values[85].choice_label = _("control-52");
02267       values[85].choice_blurb = "";
02268       values[86].choice_ident = "BSE_MIDI_CONTROL_53";
02269       values[86].choice_label = _("control-53");
02270       values[86].choice_blurb = "";
02271       values[87].choice_ident = "BSE_MIDI_CONTROL_54";
02272       values[87].choice_label = _("control-54");
02273       values[87].choice_blurb = "";
02274       values[88].choice_ident = "BSE_MIDI_CONTROL_55";
02275       values[88].choice_label = _("control-55");
02276       values[88].choice_blurb = "";
02277       values[89].choice_ident = "BSE_MIDI_CONTROL_56";
02278       values[89].choice_label = _("control-56");
02279       values[89].choice_blurb = "";
02280       values[90].choice_ident = "BSE_MIDI_CONTROL_57";
02281       values[90].choice_label = _("control-57");
02282       values[90].choice_blurb = "";
02283       values[91].choice_ident = "BSE_MIDI_CONTROL_58";
02284       values[91].choice_label = _("control-58");
02285       values[91].choice_blurb = "";
02286       values[92].choice_ident = "BSE_MIDI_CONTROL_59";
02287       values[92].choice_label = _("control-59");
02288       values[92].choice_blurb = "";
02289       values[93].choice_ident = "BSE_MIDI_CONTROL_60";
02290       values[93].choice_label = _("control-60");
02291       values[93].choice_blurb = "";
02292       values[94].choice_ident = "BSE_MIDI_CONTROL_61";
02293       values[94].choice_label = _("control-61");
02294       values[94].choice_blurb = "";
02295       values[95].choice_ident = "BSE_MIDI_CONTROL_62";
02296       values[95].choice_label = _("control-62");
02297       values[95].choice_blurb = "";
02298       values[96].choice_ident = "BSE_MIDI_CONTROL_63";
02299       values[96].choice_label = _("control-63");
02300       values[96].choice_blurb = "";
02301       values[97].choice_ident = "BSE_MIDI_CONTROL_64";
02302       values[97].choice_label = _("Control 64 Damper Pedal Switch (Sustain)");
02303       values[97].choice_blurb = "";
02304       values[98].choice_ident = "BSE_MIDI_CONTROL_65";
02305       values[98].choice_label = _("Control 65 Portamento Switch");
02306       values[98].choice_blurb = "";
02307       values[99].choice_ident = "BSE_MIDI_CONTROL_66";
02308       values[99].choice_label = _("Control 66 Sustenuto Switch");
02309       values[99].choice_blurb = "";
02310       values[100].choice_ident = "BSE_MIDI_CONTROL_67";
02311       values[100].choice_label = _("Control 67 Soft Switch");
02312       values[100].choice_blurb = "";
02313       values[101].choice_ident = "BSE_MIDI_CONTROL_68";
02314       values[101].choice_label = _("Control 68 Legato Pedal Switch");
02315       values[101].choice_blurb = "";
02316       values[102].choice_ident = "BSE_MIDI_CONTROL_69";
02317       values[102].choice_label = _("Control 69 Hold Pedal Switch");
02318       values[102].choice_blurb = "";
02319       values[103].choice_ident = "BSE_MIDI_CONTROL_70";
02320       values[103].choice_label = _("Control 70 Sound Variation");
02321       values[103].choice_blurb = "";
02322       values[104].choice_ident = "BSE_MIDI_CONTROL_71";
02323       values[104].choice_label = _("Control 71 Filter Resonance (Timbre)");
02324       values[104].choice_blurb = "";
02325       values[105].choice_ident = "BSE_MIDI_CONTROL_72";
02326       values[105].choice_label = _("Control 72 Sound Release Time");
02327       values[105].choice_blurb = "";
02328       values[106].choice_ident = "BSE_MIDI_CONTROL_73";
02329       values[106].choice_label = _("Control 73 Sound Attack Time");
02330       values[106].choice_blurb = "";
02331       values[107].choice_ident = "BSE_MIDI_CONTROL_74";
02332       values[107].choice_label = _("Control 74 Sound Brightness");
02333       values[107].choice_blurb = "";
02334       values[108].choice_ident = "BSE_MIDI_CONTROL_75";
02335       values[108].choice_label = _("Control 75 Sound Decay Time");
02336       values[108].choice_blurb = "";
02337       values[109].choice_ident = "BSE_MIDI_CONTROL_76";
02338       values[109].choice_label = _("Control 76 Vibrato Rate");
02339       values[109].choice_blurb = "";
02340       values[110].choice_ident = "BSE_MIDI_CONTROL_77";
02341       values[110].choice_label = _("Control 77 Vibrato Depth");
02342       values[110].choice_blurb = "";
02343       values[111].choice_ident = "BSE_MIDI_CONTROL_78";
02344       values[111].choice_label = _("Control 78 Vibrato Delay");
02345       values[111].choice_blurb = "";
02346       values[112].choice_ident = "BSE_MIDI_CONTROL_79";
02347       values[112].choice_label = _("Control 79 Sound Control 10");
02348       values[112].choice_blurb = "";
02349       values[113].choice_ident = "BSE_MIDI_CONTROL_80";
02350       values[113].choice_label = _("Control 80 General Purpose Switch 5");
02351       values[113].choice_blurb = "";
02352       values[114].choice_ident = "BSE_MIDI_CONTROL_81";
02353       values[114].choice_label = _("Control 81 General Purpose Switch 6");
02354       values[114].choice_blurb = "";
02355       values[115].choice_ident = "BSE_MIDI_CONTROL_82";
02356       values[115].choice_label = _("Control 82 General Purpose Switch 7");
02357       values[115].choice_blurb = "";
02358       values[116].choice_ident = "BSE_MIDI_CONTROL_83";
02359       values[116].choice_label = _("Control 83 General Purpose Switch 8");
02360       values[116].choice_blurb = "";
02361       values[117].choice_ident = "BSE_MIDI_CONTROL_84";
02362       values[117].choice_label = _("Control 84 Portamento Control (Note)");
02363       values[117].choice_blurb = "";
02364       values[118].choice_ident = "BSE_MIDI_CONTROL_85";
02365       values[118].choice_label = _("control-85");
02366       values[118].choice_blurb = "";
02367       values[119].choice_ident = "BSE_MIDI_CONTROL_86";
02368       values[119].choice_label = _("control-86");
02369       values[119].choice_blurb = "";
02370       values[120].choice_ident = "BSE_MIDI_CONTROL_87";
02371       values[120].choice_label = _("control-87");
02372       values[120].choice_blurb = "";
02373       values[121].choice_ident = "BSE_MIDI_CONTROL_88";
02374       values[121].choice_label = _("control-88");
02375       values[121].choice_blurb = "";
02376       values[122].choice_ident = "BSE_MIDI_CONTROL_89";
02377       values[122].choice_label = _("control-89");
02378       values[122].choice_blurb = "";
02379       values[123].choice_ident = "BSE_MIDI_CONTROL_90";
02380       values[123].choice_label = _("control-90");
02381       values[123].choice_blurb = "";
02382       values[124].choice_ident = "BSE_MIDI_CONTROL_91";
02383       values[124].choice_label = _("Control 91 Reverb Depth");
02384       values[124].choice_blurb = "";
02385       values[125].choice_ident = "BSE_MIDI_CONTROL_92";
02386       values[125].choice_label = _("Control 92 Tremolo Depth");
02387       values[125].choice_blurb = "";
02388       values[126].choice_ident = "BSE_MIDI_CONTROL_93";
02389       values[126].choice_label = _("Control 93 Chorus Depth");
02390       values[126].choice_blurb = "";
02391       values[127].choice_ident = "BSE_MIDI_CONTROL_94";
02392       values[127].choice_label = _("Control 93 Detune Depth");
02393       values[127].choice_blurb = "";
02394       values[128].choice_ident = "BSE_MIDI_CONTROL_95";
02395       values[128].choice_label = _("Control 95 Phase Depth");
02396       values[128].choice_blurb = "";
02397       values[129].choice_ident = "BSE_MIDI_CONTROL_96";
02398       values[129].choice_label = _("Control 96 Data Increment Trigger");
02399       values[129].choice_blurb = "";
02400       values[130].choice_ident = "BSE_MIDI_CONTROL_97";
02401       values[130].choice_label = _("Control 97 Data Decrement Trigger");
02402       values[130].choice_blurb = "";
02403       values[131].choice_ident = "BSE_MIDI_CONTROL_98";
02404       values[131].choice_label = _("Control 98 Non-Registered Parameter MSB");
02405       values[131].choice_blurb = "";
02406       values[132].choice_ident = "BSE_MIDI_CONTROL_99";
02407       values[132].choice_label = _("Control 99 Non-Registered Parameter LSB");
02408       values[132].choice_blurb = "";
02409       values[133].choice_ident = "BSE_MIDI_CONTROL_100";
02410       values[133].choice_label = _("Control 100 Registered Parameter MSB");
02411       values[133].choice_blurb = "";
02412       values[134].choice_ident = "BSE_MIDI_CONTROL_101";
02413       values[134].choice_label = _("Control 101 Registered Parameter LSB");
02414       values[134].choice_blurb = "";
02415       values[135].choice_ident = "BSE_MIDI_CONTROL_102";
02416       values[135].choice_label = _("control-102");
02417       values[135].choice_blurb = "";
02418       values[136].choice_ident = "BSE_MIDI_CONTROL_103";
02419       values[136].choice_label = _("control-103");
02420       values[136].choice_blurb = "";
02421       values[137].choice_ident = "BSE_MIDI_CONTROL_104";
02422       values[137].choice_label = _("control-104");
02423       values[137].choice_blurb = "";
02424       values[138].choice_ident = "BSE_MIDI_CONTROL_105";
02425       values[138].choice_label = _("control-105");
02426       values[138].choice_blurb = "";
02427       values[139].choice_ident = "BSE_MIDI_CONTROL_106";
02428       values[139].choice_label = _("control-106");
02429       values[139].choice_blurb = "";
02430       values[140].choice_ident = "BSE_MIDI_CONTROL_107";
02431       values[140].choice_label = _("control-107");
02432       values[140].choice_blurb = "";
02433       values[141].choice_ident = "BSE_MIDI_CONTROL_108";
02434       values[141].choice_label = _("control-108");
02435       values[141].choice_blurb = "";
02436       values[142].choice_ident = "BSE_MIDI_CONTROL_109";
02437       values[142].choice_label = _("control-109");
02438       values[142].choice_blurb = "";
02439       values[143].choice_ident = "BSE_MIDI_CONTROL_110";
02440       values[143].choice_label = _("control-110");
02441       values[143].choice_blurb = "";
02442       values[144].choice_ident = "BSE_MIDI_CONTROL_111";
02443       values[144].choice_label = _("control-111");
02444       values[144].choice_blurb = "";
02445       values[145].choice_ident = "BSE_MIDI_CONTROL_112";
02446       values[145].choice_label = _("control-112");
02447       values[145].choice_blurb = "";
02448       values[146].choice_ident = "BSE_MIDI_CONTROL_113";
02449       values[146].choice_label = _("control-113");
02450       values[146].choice_blurb = "";
02451       values[147].choice_ident = "BSE_MIDI_CONTROL_114";
02452       values[147].choice_label = _("control-114");
02453       values[147].choice_blurb = "";
02454       values[148].choice_ident = "BSE_MIDI_CONTROL_115";
02455       values[148].choice_label = _("control-115");
02456       values[148].choice_blurb = "";
02457       values[149].choice_ident = "BSE_MIDI_CONTROL_116";
02458       values[149].choice_label = _("control-116");
02459       values[149].choice_blurb = "";
02460       values[150].choice_ident = "BSE_MIDI_CONTROL_117";
02461       values[150].choice_label = _("control-117");
02462       values[150].choice_blurb = "";
02463       values[151].choice_ident = "BSE_MIDI_CONTROL_118";
02464       values[151].choice_label = _("control-118");
02465       values[151].choice_blurb = "";
02466       values[152].choice_ident = "BSE_MIDI_CONTROL_119";
02467       values[152].choice_label = _("control-119");
02468       values[152].choice_blurb = "";
02469       values[153].choice_ident = "BSE_MIDI_CONTROL_120";
02470       values[153].choice_label = _("Control 120 All Sound Off ITrigger");
02471       values[153].choice_blurb = "";
02472       values[154].choice_ident = "BSE_MIDI_CONTROL_121";
02473       values[154].choice_label = _("Control 121 All Controllers Off ITrigger");
02474       values[154].choice_blurb = "";
02475       values[155].choice_ident = "BSE_MIDI_CONTROL_122";
02476       values[155].choice_label = _("Control 122 Local Control Switch");
02477       values[155].choice_blurb = "";
02478       values[156].choice_ident = "BSE_MIDI_CONTROL_123";
02479       values[156].choice_label = _("Control 123 All Notes Off ITrigger");
02480       values[156].choice_blurb = "";
02481       values[157].choice_ident = "BSE_MIDI_CONTROL_124";
02482       values[157].choice_label = _("Control 124 Omni Mode Off ITrigger");
02483       values[157].choice_blurb = "";
02484       values[158].choice_ident = "BSE_MIDI_CONTROL_125";
02485       values[158].choice_label = _("Control 125 Omni Mode On ITrigger");
02486       values[158].choice_blurb = "";
02487       values[159].choice_ident = "BSE_MIDI_CONTROL_126";
02488       values[159].choice_label = _("Control 126 Monophonic Voices Mode");
02489       values[159].choice_blurb = "";
02490       values[160].choice_ident = "BSE_MIDI_CONTROL_127";
02491       values[160].choice_label = _("Control 127 Polyphonic Mode On ITrigger");
02492       values[160].choice_blurb = "";
02493   }
02494   return choice_values;
02495 }
02496 
02497 static SfiChoiceValues
02498 MidiChannelEventType_choice_values()
02499 {
02500   static SfiChoiceValue values[18];
02501   static const SfiChoiceValues choice_values = {
02502     G_N_ELEMENTS (values), values,
02503   };
02504   if (!values[0].choice_ident)
02505     {
02506       values[0].choice_ident = "BSE_MIDI_EVENT_NONE";
02507       values[0].choice_label = "bse-midi-event-none";
02508       values[0].choice_blurb = "";
02509       values[1].choice_ident = "BSE_MIDI_EVENT_NOTE_OFF";
02510       values[1].choice_label = "bse-midi-event-note-off";
02511       values[1].choice_blurb = "";
02512       values[2].choice_ident = "BSE_MIDI_EVENT_NOTE_ON";
02513       values[2].choice_label = "bse-midi-event-note-on";
02514       values[2].choice_blurb = "";
02515       values[3].choice_ident = "BSE_MIDI_EVENT_KEY_PRESSURE";
02516       values[3].choice_label = "bse-midi-event-key-pressure";
02517       values[3].choice_blurb = "";
02518       values[4].choice_ident = "BSE_MIDI_EVENT_CONTROL_CHANGE";
02519       values[4].choice_label = "bse-midi-event-control-change";
02520       values[4].choice_blurb = "";
02521       values[5].choice_ident = "BSE_MIDI_EVENT_PROGRAM_CHANGE";
02522       values[5].choice_label = "bse-midi-event-program-change";
02523       values[5].choice_blurb = "";
02524       values[6].choice_ident = "BSE_MIDI_EVENT_CHANNEL_PRESSURE";
02525       values[6].choice_label = "bse-midi-event-channel-pressure";
02526       values[6].choice_blurb = "";
02527       values[7].choice_ident = "BSE_MIDI_EVENT_PITCH_BEND";
02528       values[7].choice_label = "bse-midi-event-pitch-bend";
02529       values[7].choice_blurb = "";
02530       values[8].choice_ident = "BSE_MIDI_EVENT_SYS_EX";
02531       values[8].choice_label = "bse-midi-event-sys-ex";
02532       values[8].choice_blurb = "";
02533       values[9].choice_ident = "BSE_MIDI_EVENT_SONG_POINTER";
02534       values[9].choice_label = "bse-midi-event-song-pointer";
02535       values[9].choice_blurb = "";
02536       values[10].choice_ident = "BSE_MIDI_EVENT_SONG_SELECT";
02537       values[10].choice_label = "bse-midi-event-song-select";
02538       values[10].choice_blurb = "";
02539       values[11].choice_ident = "BSE_MIDI_EVENT_TUNE";
02540       values[11].choice_label = "bse-midi-event-tune";
02541       values[11].choice_blurb = "";
02542       values[12].choice_ident = "BSE_MIDI_EVENT_TIMING_CLOCK";
02543       values[12].choice_label = "bse-midi-event-timing-clock";
02544       values[12].choice_blurb = "";
02545       values[13].choice_ident = "BSE_MIDI_EVENT_SONG_START";
02546       values[13].choice_label = "bse-midi-event-song-start";
02547       values[13].choice_blurb = "";
02548       values[14].choice_ident = "BSE_MIDI_EVENT_SONG_CONTINUE";
02549       values[14].choice_label = "bse-midi-event-song-continue";
02550       values[14].choice_blurb = "";
02551       values[15].choice_ident = "BSE_MIDI_EVENT_SONG_STOP";
02552       values[15].choice_label = "bse-midi-event-song-stop";
02553       values[15].choice_blurb = "";
02554       values[16].choice_ident = "BSE_MIDI_EVENT_ACTIVE_SENSING";
02555       values[16].choice_label = "bse-midi-event-active-sensing";
02556       values[16].choice_blurb = "";
02557       values[17].choice_ident = "BSE_MIDI_EVENT_SYSTEM_RESET";
02558       values[17].choice_label = "bse-midi-event-system-reset";
02559       values[17].choice_blurb = "";
02560   }
02561   return choice_values;
02562 }
02563 
02564 
02565 
02566 /* record implementations */
02567 ::Bse::MidiChannelEventHandle
02568 MidiChannelEvent::from_rec (SfiRec *sfi_rec)
02569 {
02570   GValue *element;
02571 
02572   if (!sfi_rec)
02573     return Sfi::INIT_NULL;
02574 
02575   ::Bse::MidiChannelEventHandle rec = Sfi::INIT_DEFAULT;
02576   element = sfi_rec_get (sfi_rec, "event_type");
02577   if (element)
02578     rec->event_type = (::Bse::MidiChannelEventType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS1 (element);
02579   element = sfi_rec_get (sfi_rec, "channel");
02580   if (element)
02581     rec->channel = sfi_value_get_int (element);
02582   element = sfi_rec_get (sfi_rec, "tick_stamp");
02583   if (element)
02584     rec->tick_stamp = sfi_value_get_num (element);
02585   element = sfi_rec_get (sfi_rec, "frequency");
02586   if (element)
02587     rec->frequency = sfi_value_get_real (element);
02588   element = sfi_rec_get (sfi_rec, "velocity");
02589   if (element)
02590     rec->velocity = sfi_value_get_real (element);
02591   element = sfi_rec_get (sfi_rec, "control");
02592   if (element)
02593     rec->control = sfi_value_get_int (element);
02594   element = sfi_rec_get (sfi_rec, "value");
02595   if (element)
02596     rec->value = sfi_value_get_real (element);
02597   element = sfi_rec_get (sfi_rec, "program");
02598   if (element)
02599     rec->program = sfi_value_get_int (element);
02600   element = sfi_rec_get (sfi_rec, "intensity");
02601   if (element)
02602     rec->intensity = sfi_value_get_real (element);
02603   element = sfi_rec_get (sfi_rec, "pitch_bend");
02604   if (element)
02605     rec->pitch_bend = sfi_value_get_real (element);
02606   element = sfi_rec_get (sfi_rec, "song_pointer");
02607   if (element)
02608     rec->song_pointer = sfi_value_get_int (element);
02609   element = sfi_rec_get (sfi_rec, "song_number");
02610   if (element)
02611     rec->song_number = sfi_value_get_int (element);
02612   return rec;
02613 }
02614 
02615 SfiRec *
02616 MidiChannelEvent::to_rec (const ::Bse::MidiChannelEventHandle & rec)
02617 {
02618   SfiRec *sfi_rec;
02619   GValue *element;
02620 
02621   if (!rec)
02622     return NULL;
02623 
02624   sfi_rec = sfi_rec_new ();
02625   element = sfi_rec_forced_get (sfi_rec, "event_type", SFI_TYPE_CHOICE);
02626   sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_CHANNEL_EVENT_TYPE, SFI_END_ARGS2 (element, rec->event_type);
02627   element = sfi_rec_forced_get (sfi_rec, "channel", SFI_TYPE_INT);
02628   sfi_value_set_int (element, rec->channel);
02629   element = sfi_rec_forced_get (sfi_rec, "tick_stamp", SFI_TYPE_NUM);
02630   sfi_value_set_num (element, rec->tick_stamp);
02631   element = sfi_rec_forced_get (sfi_rec, "frequency", SFI_TYPE_REAL);
02632   sfi_value_set_real (element, rec->frequency);
02633   element = sfi_rec_forced_get (sfi_rec, "velocity", SFI_TYPE_REAL);
02634   sfi_value_set_real (element, rec->velocity);
02635   element = sfi_rec_forced_get (sfi_rec, "control", SFI_TYPE_INT);
02636   sfi_value_set_int (element, rec->control);
02637   element = sfi_rec_forced_get (sfi_rec, "value", SFI_TYPE_REAL);
02638   sfi_value_set_real (element, rec->value);
02639   element = sfi_rec_forced_get (sfi_rec, "program", SFI_TYPE_INT);
02640   sfi_value_set_int (element, rec->program);
02641   element = sfi_rec_forced_get (sfi_rec, "intensity", SFI_TYPE_REAL);
02642   sfi_value_set_real (element, rec->intensity);
02643   element = sfi_rec_forced_get (sfi_rec, "pitch_bend", SFI_TYPE_REAL);
02644   sfi_value_set_real (element, rec->pitch_bend);
02645   element = sfi_rec_forced_get (sfi_rec, "song_pointer", SFI_TYPE_INT);
02646   sfi_value_set_int (element, rec->song_pointer);
02647   element = sfi_rec_forced_get (sfi_rec, "song_number", SFI_TYPE_INT);
02648   sfi_value_set_int (element, rec->song_number);
02649   return sfi_rec;
02650 }
02651 
02652 ::Bse::MidiChannelEventHandle
02653 MidiChannelEvent::value_get_boxed (const GValue *value)
02654 {
02655   return ::Bse::MidiChannelEventHandle::value_get_boxed (value);
02656 }
02657 
02658 void
02659 MidiChannelEvent::value_set_boxed (GValue *value, const ::Bse::MidiChannelEventHandle & self)
02660 {
02661   ::Bse::MidiChannelEventHandle::value_set_boxed (value, self);
02662 }
02663 
02664 SfiRecFields
02665 MidiChannelEvent::get_fields()
02666 {
02667   static SfiRecFields rfields = { 0, NULL };
02668   if (!rfields.n_fields)
02669     {
02670       static GParamSpec *fields[12 + 1];
02671       rfields.n_fields = 12;
02672       fields[0] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",485, "event_type", Bse::MidiChannelEventType_choice_values());
02673       fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",486,"channel","Channel" , "" , 0LL , 0LL , 99LL , 1LL , ":readwrite");
02674       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:");
02675       fields[3] = sfidl_pspec_Freq (NULL,"/opt/src/beast/bse/bsebasics.idl",489,"frequency","Frequency" , "" , KAMMER_FREQ , ":readwrite");
02676       fields[4] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",490,"velocity","Velocity" , "" , 1LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
02677       fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",492,"control","Control Number" , "" , 0LL , 0LL , 1024LL , 8LL , ":readwrite");
02678       fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",493,"value","Value" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
02679       fields[7] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",495,"program","Program" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
02680       fields[8] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",497,"intensity","Intensity" , "" , 0LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
02681       fields[9] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",499,"pitch_bend","Pitch Bend" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
02682       fields[10] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",501,"song_pointer","Song Pointer" , "" , 0LL , 0LL , 16383LL , 128LL , ":readwrite");
02683       fields[11] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",503,"song_number","Song Number" , "" , 0LL , 0LL , 127LL , 16LL , ":readwrite");
02684       rfields.fields = fields;
02685     }
02686   return rfields;
02687 }
02688 ::Bse::PropertyCandidatesHandle
02689 PropertyCandidates::from_rec (SfiRec *sfi_rec)
02690 {
02691   GValue *element;
02692 
02693   if (!sfi_rec)
02694     return Sfi::INIT_NULL;
02695 
02696   ::Bse::PropertyCandidatesHandle rec = Sfi::INIT_DEFAULT;
02697   element = sfi_rec_get (sfi_rec, "label");
02698   if (element)
02699     rec->label = ::Sfi::String::value_get_string (element);
02700   element = sfi_rec_get (sfi_rec, "tooltip");
02701   if (element)
02702     rec->tooltip = ::Sfi::String::value_get_string (element);
02703   element = sfi_rec_get (sfi_rec, "items");
02704   if (element)
02705     rec->items = ::Bse::ItemSeq::value_get_boxed (element);
02706   element = sfi_rec_get (sfi_rec, "partitions");
02707   if (element)
02708     rec->partitions = ::Bse::TypeSeq::value_get_boxed (element);
02709   return rec;
02710 }
02711 
02712 SfiRec *
02713 PropertyCandidates::to_rec (const ::Bse::PropertyCandidatesHandle & rec)
02714 {
02715   SfiRec *sfi_rec;
02716   GValue *element;
02717 
02718   if (!rec)
02719     return NULL;
02720 
02721   sfi_rec = sfi_rec_new ();
02722   element = sfi_rec_forced_get (sfi_rec, "label", SFI_TYPE_STRING);
02723   ::Sfi::String::value_set_string (element, rec->label);
02724   element = sfi_rec_forced_get (sfi_rec, "tooltip", SFI_TYPE_STRING);
02725   ::Sfi::String::value_set_string (element, rec->tooltip);
02726   element = sfi_rec_forced_get (sfi_rec, "items", SFI_TYPE_SEQ);
02727   ::Bse::ItemSeq::value_set_boxed (element, rec->items);
02728   element = sfi_rec_forced_get (sfi_rec, "partitions", SFI_TYPE_SEQ);
02729   ::Bse::TypeSeq::value_set_boxed (element, rec->partitions);
02730   return sfi_rec;
02731 }
02732 
02733 ::Bse::PropertyCandidatesHandle
02734 PropertyCandidates::value_get_boxed (const GValue *value)
02735 {
02736   return ::Bse::PropertyCandidatesHandle::value_get_boxed (value);
02737 }
02738 
02739 void
02740 PropertyCandidates::value_set_boxed (GValue *value, const ::Bse::PropertyCandidatesHandle & self)
02741 {
02742   ::Bse::PropertyCandidatesHandle::value_set_boxed (value, self);
02743 }
02744 
02745 SfiRecFields
02746 PropertyCandidates::get_fields()
02747 {
02748   static SfiRecFields rfields = { 0, NULL };
02749   if (!rfields.n_fields)
02750     {
02751       static GParamSpec *fields[4 + 1];
02752       rfields.n_fields = 4;
02753       fields[0] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",515,"label");
02754       fields[1] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",516,"tooltip");
02755       fields[2] = sfidl_pspec_Sequence_default (NULL,"/opt/src/beast/bse/bsebasics.idl",517, "items", Bse::ItemSeq::get_element());
02756       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());
02757       rfields.fields = fields;
02758     }
02759   return rfields;
02760 }
02761 ::Bse::PartNoteHandle
02762 PartNote::from_rec (SfiRec *sfi_rec)
02763 {
02764   GValue *element;
02765 
02766   if (!sfi_rec)
02767     return Sfi::INIT_NULL;
02768 
02769   ::Bse::PartNoteHandle rec = Sfi::INIT_DEFAULT;
02770   element = sfi_rec_get (sfi_rec, "id");
02771   if (element)
02772     rec->id = sfi_value_get_int (element);
02773   element = sfi_rec_get (sfi_rec, "channel");
02774   if (element)
02775     rec->channel = sfi_value_get_int (element);
02776   element = sfi_rec_get (sfi_rec, "tick");
02777   if (element)
02778     rec->tick = sfi_value_get_int (element);
02779   element = sfi_rec_get (sfi_rec, "duration");
02780   if (element)
02781     rec->duration = sfi_value_get_int (element);
02782   element = sfi_rec_get (sfi_rec, "note");
02783   if (element)
02784     rec->note = sfi_value_get_int (element);
02785   element = sfi_rec_get (sfi_rec, "fine_tune");
02786   if (element)
02787     rec->fine_tune = sfi_value_get_int (element);
02788   element = sfi_rec_get (sfi_rec, "velocity");
02789   if (element)
02790     rec->velocity = sfi_value_get_real (element);
02791   element = sfi_rec_get (sfi_rec, "selected");
02792   if (element)
02793     rec->selected = sfi_value_get_bool (element);
02794   return rec;
02795 }
02796 
02797 SfiRec *
02798 PartNote::to_rec (const ::Bse::PartNoteHandle & rec)
02799 {
02800   SfiRec *sfi_rec;
02801   GValue *element;
02802 
02803   if (!rec)
02804     return NULL;
02805 
02806   sfi_rec = sfi_rec_new ();
02807   element = sfi_rec_forced_get (sfi_rec, "id", SFI_TYPE_INT);
02808   sfi_value_set_int (element, rec->id);
02809   element = sfi_rec_forced_get (sfi_rec, "channel", SFI_TYPE_INT);
02810   sfi_value_set_int (element, rec->channel);
02811   element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
02812   sfi_value_set_int (element, rec->tick);
02813   element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
02814   sfi_value_set_int (element, rec->duration);
02815   element = sfi_rec_forced_get (sfi_rec, "note", SFI_TYPE_INT);
02816   sfi_value_set_int (element, rec->note);
02817   element = sfi_rec_forced_get (sfi_rec, "fine_tune", SFI_TYPE_INT);
02818   sfi_value_set_int (element, rec->fine_tune);
02819   element = sfi_rec_forced_get (sfi_rec, "velocity", SFI_TYPE_REAL);
02820   sfi_value_set_real (element, rec->velocity);
02821   element = sfi_rec_forced_get (sfi_rec, "selected", SFI_TYPE_BOOL);
02822   sfi_value_set_bool (element, rec->selected);
02823   return sfi_rec;
02824 }
02825 
02826 ::Bse::PartNoteHandle
02827 PartNote::value_get_boxed (const GValue *value)
02828 {
02829   return ::Bse::PartNoteHandle::value_get_boxed (value);
02830 }
02831 
02832 void
02833 PartNote::value_set_boxed (GValue *value, const ::Bse::PartNoteHandle & self)
02834 {
02835   ::Bse::PartNoteHandle::value_set_boxed (value, self);
02836 }
02837 
02838 SfiRecFields
02839 PartNote::get_fields()
02840 {
02841   static SfiRecFields rfields = { 0, NULL };
02842   if (!rfields.n_fields)
02843     {
02844       static GParamSpec *fields[8 + 1];
02845       rfields.n_fields = 8;
02846       fields[0] = sfidl_pspec_SfiUInt (NULL,"/opt/src/beast/bse/bsebasics.idl",523,"id","ID" , "" , 0LL , ":readwrite");
02847       fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",524,"channel","Channel" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
02848       fields[2] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",525,"tick","Tick" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
02849       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");
02850       fields[4] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",527,"note","Note" , "" , KAMMER_NOTE , ":readwrite");
02851       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");
02852       fields[6] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",529,"velocity","Velocity" , "" , 1LL , 0LL , 1.00000000000000000e+00 , 1.00000000000000006e-01 , ":readwrite");
02853       fields[7] = sfidl_pspec_SfiBool (NULL,"/opt/src/beast/bse/bsebasics.idl",530,"selected","Selected" , "" , FALSE , ":readwrite");
02854       rfields.fields = fields;
02855     }
02856   return rfields;
02857 }
02858 ::Bse::PartControlHandle
02859 PartControl::from_rec (SfiRec *sfi_rec)
02860 {
02861   GValue *element;
02862 
02863   if (!sfi_rec)
02864     return Sfi::INIT_NULL;
02865 
02866   ::Bse::PartControlHandle rec = Sfi::INIT_DEFAULT;
02867   element = sfi_rec_get (sfi_rec, "id");
02868   if (element)
02869     rec->id = sfi_value_get_int (element);
02870   element = sfi_rec_get (sfi_rec, "tick");
02871   if (element)
02872     rec->tick = sfi_value_get_int (element);
02873   element = sfi_rec_get (sfi_rec, "control_type");
02874   if (element)
02875     rec->control_type = (::Bse::MidiSignalType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_SIGNAL_TYPE, SFI_END_ARGS1 (element);
02876   element = sfi_rec_get (sfi_rec, "value");
02877   if (element)
02878     rec->value = sfi_value_get_real (element);
02879   element = sfi_rec_get (sfi_rec, "selected");
02880   if (element)
02881     rec->selected = sfi_value_get_bool (element);
02882   return rec;
02883 }
02884 
02885 SfiRec *
02886 PartControl::to_rec (const ::Bse::PartControlHandle & rec)
02887 {
02888   SfiRec *sfi_rec;
02889   GValue *element;
02890 
02891   if (!rec)
02892     return NULL;
02893 
02894   sfi_rec = sfi_rec_new ();
02895   element = sfi_rec_forced_get (sfi_rec, "id", SFI_TYPE_INT);
02896   sfi_value_set_int (element, rec->id);
02897   element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
02898   sfi_value_set_int (element, rec->tick);
02899   element = sfi_rec_forced_get (sfi_rec, "control_type", SFI_TYPE_CHOICE);
02900   sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MIDI_SIGNAL_TYPE, SFI_END_ARGS2 (element, rec->control_type);
02901   element = sfi_rec_forced_get (sfi_rec, "value", SFI_TYPE_REAL);
02902   sfi_value_set_real (element, rec->value);
02903   element = sfi_rec_forced_get (sfi_rec, "selected", SFI_TYPE_BOOL);
02904   sfi_value_set_bool (element, rec->selected);
02905   return sfi_rec;
02906 }
02907 
02908 ::Bse::PartControlHandle
02909 PartControl::value_get_boxed (const GValue *value)
02910 {
02911   return ::Bse::PartControlHandle::value_get_boxed (value);
02912 }
02913 
02914 void
02915 PartControl::value_set_boxed (GValue *value, const ::Bse::PartControlHandle & self)
02916 {
02917   ::Bse::PartControlHandle::value_set_boxed (value, self);
02918 }
02919 
02920 SfiRecFields
02921 PartControl::get_fields()
02922 {
02923   static SfiRecFields rfields = { 0, NULL };
02924   if (!rfields.n_fields)
02925     {
02926       static GParamSpec *fields[5 + 1];
02927       rfields.n_fields = 5;
02928       fields[0] = sfidl_pspec_SfiUInt (NULL,"/opt/src/beast/bse/bsebasics.idl",539,"id","ID" , "" , 0LL , ":readwrite");
02929       fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",540,"tick","Tick" , "" , 0LL , 0LL , 2147483647LL , 1LL , ":readwrite");
02930       fields[2] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",541, "control_type", Bse::MidiSignalType_choice_values());
02931       fields[3] = sfidl_pspec_SfiReal (NULL,"/opt/src/beast/bse/bsebasics.idl",542,"value","Value" , "" , 0LL , - 1LL , + 1LL , 1.00000000000000006e-01 , ":readwrite");
02932       fields[4] = sfidl_pspec_SfiBool (NULL,"/opt/src/beast/bse/bsebasics.idl",543,"selected","Selected" , "" , FALSE , ":readwrite");
02933       rfields.fields = fields;
02934     }
02935   return rfields;
02936 }
02937 ::Bse::NoteDescriptionHandle
02938 NoteDescription::from_rec (SfiRec *sfi_rec)
02939 {
02940   GValue *element;
02941 
02942   if (!sfi_rec)
02943     return Sfi::INIT_NULL;
02944 
02945   ::Bse::NoteDescriptionHandle rec = Sfi::INIT_DEFAULT;
02946   element = sfi_rec_get (sfi_rec, "musical_tuning");
02947   if (element)
02948     rec->musical_tuning = (::Bse::MusicalTuningType) sfi_value_get_enum_auto SFI_START_ARGS() BSE_TYPE_MUSICAL_TUNING_TYPE, SFI_END_ARGS1 (element);
02949   element = sfi_rec_get (sfi_rec, "note");
02950   if (element)
02951     rec->note = sfi_value_get_int (element);
02952   element = sfi_rec_get (sfi_rec, "octave");
02953   if (element)
02954     rec->octave = sfi_value_get_int (element);
02955   element = sfi_rec_get (sfi_rec, "freq");
02956   if (element)
02957     rec->freq = sfi_value_get_real (element);
02958   element = sfi_rec_get (sfi_rec, "fine_tune");
02959   if (element)
02960     rec->fine_tune = sfi_value_get_int (element);
02961   element = sfi_rec_get (sfi_rec, "semitone");
02962   if (element)
02963     rec->semitone = sfi_value_get_int (element);
02964   element = sfi_rec_get (sfi_rec, "upshift");
02965   if (element)
02966     rec->upshift = sfi_value_get_bool (element);
02967   element = sfi_rec_get (sfi_rec, "letter");
02968   if (element)
02969     rec->letter = sfi_value_get_int (element);
02970   element = sfi_rec_get (sfi_rec, "name");
02971   if (element)
02972     rec->name = ::Sfi::String::value_get_string (element);
02973   element = sfi_rec_get (sfi_rec, "max_fine_tune");
02974   if (element)
02975     rec->max_fine_tune = sfi_value_get_int (element);
02976   element = sfi_rec_get (sfi_rec, "kammer_note");
02977   if (element)
02978     rec->kammer_note = sfi_value_get_int (element);
02979   return rec;
02980 }
02981 
02982 SfiRec *
02983 NoteDescription::to_rec (const ::Bse::NoteDescriptionHandle & rec)
02984 {
02985   SfiRec *sfi_rec;
02986   GValue *element;
02987 
02988   if (!rec)
02989     return NULL;
02990 
02991   sfi_rec = sfi_rec_new ();
02992   element = sfi_rec_forced_get (sfi_rec, "musical_tuning", SFI_TYPE_CHOICE);
02993   sfi_value_set_enum_auto SFI_START_ARGS() BSE_TYPE_MUSICAL_TUNING_TYPE, SFI_END_ARGS2 (element, rec->musical_tuning);
02994   element = sfi_rec_forced_get (sfi_rec, "note", SFI_TYPE_INT);
02995   sfi_value_set_int (element, rec->note);
02996   element = sfi_rec_forced_get (sfi_rec, "octave", SFI_TYPE_INT);
02997   sfi_value_set_int (element, rec->octave);
02998   element = sfi_rec_forced_get (sfi_rec, "freq", SFI_TYPE_REAL);
02999   sfi_value_set_real (element, rec->freq);
03000   element = sfi_rec_forced_get (sfi_rec, "fine_tune", SFI_TYPE_INT);
03001   sfi_value_set_int (element, rec->fine_tune);
03002   element = sfi_rec_forced_get (sfi_rec, "semitone", SFI_TYPE_INT);
03003   sfi_value_set_int (element, rec->semitone);
03004   element = sfi_rec_forced_get (sfi_rec, "upshift", SFI_TYPE_BOOL);
03005   sfi_value_set_bool (element, rec->upshift);
03006   element = sfi_rec_forced_get (sfi_rec, "letter", SFI_TYPE_INT);
03007   sfi_value_set_int (element, rec->letter);
03008   element = sfi_rec_forced_get (sfi_rec, "name", SFI_TYPE_STRING);
03009   ::Sfi::String::value_set_string (element, rec->name);
03010   element = sfi_rec_forced_get (sfi_rec, "max_fine_tune", SFI_TYPE_INT);
03011   sfi_value_set_int (element, rec->max_fine_tune);
03012   element = sfi_rec_forced_get (sfi_rec, "kammer_note", SFI_TYPE_INT);
03013   sfi_value_set_int (element, rec->kammer_note);
03014   return sfi_rec;
03015 }
03016 
03017 ::Bse::NoteDescriptionHandle
03018 NoteDescription::value_get_boxed (const GValue *value)
03019 {
03020   return ::Bse::NoteDescriptionHandle::value_get_boxed (value);
03021 }
03022 
03023 void
03024 NoteDescription::value_set_boxed (GValue *value, const ::Bse::NoteDescriptionHandle & self)
03025 {
03026   ::Bse::NoteDescriptionHandle::value_set_boxed (value, self);
03027 }
03028 
03029 SfiRecFields
03030 NoteDescription::get_fields()
03031 {
03032   static SfiRecFields rfields = { 0, NULL };
03033   if (!rfields.n_fields)
03034     {
03035       static GParamSpec *fields[11 + 1];
03036       rfields.n_fields = 11;
03037       fields[0] = sfidl_pspec_Choice_default (NULL,"/opt/src/beast/bse/bsebasics.idl",551, "musical_tuning", Bse::MusicalTuningType_choice_values());
03038       fields[1] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",552,"note","Note" , "" , KAMMER_NOTE , ":readwrite");
03039       fields[2] = sfidl_pspec_Octave (NULL,"/opt/src/beast/bse/bsebasics.idl",553,"octave","Octave" , "" , KAMMER_OCTAVE , ":readwrite");
03040       fields[3] = sfidl_pspec_Freq (NULL,"/opt/src/beast/bse/bsebasics.idl",554,"freq","Frequency" , "" , KAMMER_FREQ , ":readwrite");
03041       fields[4] = sfidl_pspec_FineTune (NULL,"/opt/src/beast/bse/bsebasics.idl",555,"fine_tune","Fine Tune" , "" , ":readwrite");
03042       fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",556,"semitone","Semitone" , "" , 0LL , 0LL , 11LL , 1LL , ":readwrite");
03043       fields[6] = sfidl_pspec_Bool_default (NULL,"/opt/src/beast/bse/bsebasics.idl",557,"upshift");
03044       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");
03045       fields[8] = sfidl_pspec_String (NULL,"/opt/src/beast/bse/bsebasics.idl",559,"name","Name" , "" , "" , ":readwrite");
03046       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");
03047       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");
03048       rfields.fields = fields;
03049     }
03050   return rfields;
03051 }
03052 ::Bse::NoteSequenceHandle
03053 NoteSequence::from_rec (SfiRec *sfi_rec)
03054 {
03055   GValue *element;
03056 
03057   if (!sfi_rec)
03058     return Sfi::INIT_NULL;
03059 
03060   ::Bse::NoteSequenceHandle rec = Sfi::INIT_DEFAULT;
03061   element = sfi_rec_get (sfi_rec, "offset");
03062   if (element)
03063     rec->offset = sfi_value_get_int (element);
03064   element = sfi_rec_get (sfi_rec, "notes");
03065   if (element)
03066     rec->notes = ::Bse::NoteSeq::value_get_boxed (element);
03067   return rec;
03068 }
03069 
03070 SfiRec *
03071 NoteSequence::to_rec (const ::Bse::NoteSequenceHandle & rec)
03072 {
03073   SfiRec *sfi_rec;
03074   GValue *element;
03075 
03076   if (!rec)
03077     return NULL;
03078 
03079   sfi_rec = sfi_rec_new ();
03080   element = sfi_rec_forced_get (sfi_rec, "offset", SFI_TYPE_INT);
03081   sfi_value_set_int (element, rec->offset);
03082   element = sfi_rec_forced_get (sfi_rec, "notes", SFI_TYPE_SEQ);
03083   ::Bse::NoteSeq::value_set_boxed (element, rec->notes);
03084   return sfi_rec;
03085 }
03086 
03087 ::Bse::NoteSequenceHandle
03088 NoteSequence::value_get_boxed (const GValue *value)
03089 {
03090   return ::Bse::NoteSequenceHandle::value_get_boxed (value);
03091 }
03092 
03093 void
03094 NoteSequence::value_set_boxed (GValue *value, const ::Bse::NoteSequenceHandle & self)
03095 {
03096   ::Bse::NoteSequenceHandle::value_set_boxed (value, self);
03097 }
03098 
03099 SfiRecFields
03100 NoteSequence::get_fields()
03101 {
03102   static SfiRecFields rfields = { 0, NULL };
03103   if (!rfields.n_fields)
03104     {
03105       static GParamSpec *fields[2 + 1];
03106       rfields.n_fields = 2;
03107       fields[0] = sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",570,"offset","Note Offset" , "Center/base note" , KAMMER_NOTE , ":readwrite");
03108       fields[1] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",571, "notes", "Notes" , "Sequence of notes" , ":readwrite", Bse::NoteSeq::get_element());
03109       rfields.fields = fields;
03110     }
03111   return rfields;
03112 }
03113 ::Bse::IconHandle
03114 Icon::from_rec (SfiRec *sfi_rec)
03115 {
03116   GValue *element;
03117 
03118   if (!sfi_rec)
03119     return Sfi::INIT_NULL;
03120 
03121   ::Bse::IconHandle rec = Sfi::INIT_DEFAULT;
03122   element = sfi_rec_get (sfi_rec, "width");
03123   if (element)
03124     rec->width = sfi_value_get_int (element);
03125   element = sfi_rec_get (sfi_rec, "height");
03126   if (element)
03127     rec->height = sfi_value_get_int (element);
03128   element = sfi_rec_get (sfi_rec, "pixel_seq");
03129   if (element)
03130     rec->pixel_seq = ::Bse::PixelSeq::value_get_boxed (element);
03131   return rec;
03132 }
03133 
03134 SfiRec *
03135 Icon::to_rec (const ::Bse::IconHandle & rec)
03136 {
03137   SfiRec *sfi_rec;
03138   GValue *element;
03139 
03140   if (!rec)
03141     return NULL;
03142 
03143   sfi_rec = sfi_rec_new ();
03144   element = sfi_rec_forced_get (sfi_rec, "width", SFI_TYPE_INT);
03145   sfi_value_set_int (element, rec->width);
03146   element = sfi_rec_forced_get (sfi_rec, "height", SFI_TYPE_INT);
03147   sfi_value_set_int (element, rec->height);
03148   element = sfi_rec_forced_get (sfi_rec, "pixel_seq", SFI_TYPE_SEQ);
03149   ::Bse::PixelSeq::value_set_boxed (element, rec->pixel_seq);
03150   return sfi_rec;
03151 }
03152 
03153 ::Bse::IconHandle
03154 Icon::value_get_boxed (const GValue *value)
03155 {
03156   return ::Bse::IconHandle::value_get_boxed (value);
03157 }
03158 
03159 void
03160 Icon::value_set_boxed (GValue *value, const ::Bse::IconHandle & self)
03161 {
03162   ::Bse::IconHandle::value_set_boxed (value, self);
03163 }
03164 
03165 SfiRecFields
03166 Icon::get_fields()
03167 {
03168   static SfiRecFields rfields = { 0, NULL };
03169   if (!rfields.n_fields)
03170     {
03171       static GParamSpec *fields[3 + 1];
03172       rfields.n_fields = 3;
03173       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");
03174       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");
03175       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());
03176       rfields.fields = fields;
03177     }
03178   return rfields;
03179 }
03180 ::Bse::CategoryHandle
03181 Category::from_rec (SfiRec *sfi_rec)
03182 {
03183   GValue *element;
03184 
03185   if (!sfi_rec)
03186     return Sfi::INIT_NULL;
03187 
03188   ::Bse::CategoryHandle rec = Sfi::INIT_DEFAULT;
03189   element = sfi_rec_get (sfi_rec, "category_id");
03190   if (element)
03191     rec->category_id = sfi_value_get_int (element);
03192   element = sfi_rec_get (sfi_rec, "category");
03193   if (element)
03194     rec->category = ::Sfi::String::value_get_string (element);
03195   element = sfi_rec_get (sfi_rec, "mindex");
03196   if (element)
03197     rec->mindex = sfi_value_get_int (element);
03198   element = sfi_rec_get (sfi_rec, "lindex");
03199   if (element)
03200     rec->lindex = sfi_value_get_int (element);
03201   element = sfi_rec_get (sfi_rec, "type");
03202   if (element)
03203     rec->type = ::Sfi::String::value_get_string (element);
03204   element = sfi_rec_get (sfi_rec, "icon");
03205   if (element)
03206     rec->icon = ::Bse::Icon::value_get_boxed (element);
03207   return rec;
03208 }
03209 
03210 SfiRec *
03211 Category::to_rec (const ::Bse::CategoryHandle & rec)
03212 {
03213   SfiRec *sfi_rec;
03214   GValue *element;
03215 
03216   if (!rec)
03217     return NULL;
03218 
03219   sfi_rec = sfi_rec_new ();
03220   element = sfi_rec_forced_get (sfi_rec, "category_id", SFI_TYPE_INT);
03221   sfi_value_set_int (element, rec->category_id);
03222   element = sfi_rec_forced_get (sfi_rec, "category", SFI_TYPE_STRING);
03223   ::Sfi::String::value_set_string (element, rec->category);
03224   element = sfi_rec_forced_get (sfi_rec, "mindex", SFI_TYPE_INT);
03225   sfi_value_set_int (element, rec->mindex);
03226   element = sfi_rec_forced_get (sfi_rec, "lindex", SFI_TYPE_INT);
03227   sfi_value_set_int (element, rec->lindex);
03228   element = sfi_rec_forced_get (sfi_rec, "type", SFI_TYPE_STRING);
03229   ::Sfi::String::value_set_string (element, rec->type);
03230   element = sfi_rec_forced_get (sfi_rec, "icon", SFI_TYPE_REC);
03231   ::Bse::Icon::value_set_boxed (element, rec->icon);
03232   return sfi_rec;
03233 }
03234 
03235 ::Bse::CategoryHandle
03236 Category::value_get_boxed (const GValue *value)
03237 {
03238   return ::Bse::CategoryHandle::value_get_boxed (value);
03239 }
03240 
03241 void
03242 Category::value_set_boxed (GValue *value, const ::Bse::CategoryHandle & self)
03243 {
03244   ::Bse::CategoryHandle::value_set_boxed (value, self);
03245 }
03246 
03247 SfiRecFields
03248 Category::get_fields()
03249 {
03250   static SfiRecFields rfields = { 0, NULL };
03251   if (!rfields.n_fields)
03252     {
03253       static GParamSpec *fields[6 + 1];
03254       rfields.n_fields = 6;
03255       fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",585,"category_id","Category ID" , "" , 1LL , 1LL , G_MAXINT , 1LL , ":readwrite");
03256       fields[1] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",586,"category");
03257       fields[2] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",587,"mindex");
03258       fields[3] = sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",588,"lindex");
03259       fields[4] = sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",589,"type");
03260       fields[5] = sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",590, "icon", Bse::Icon::get_fields());
03261       rfields.fields = fields;
03262     }
03263   return rfields;
03264 }
03265 ::Bse::DotHandle
03266 Dot::from_rec (SfiRec *sfi_rec)
03267 {
03268   GValue *element;
03269 
03270   if (!sfi_rec)
03271     return Sfi::INIT_NULL;
03272 
03273   ::Bse::DotHandle rec = Sfi::INIT_DEFAULT;
03274   element = sfi_rec_get (sfi_rec, "x");
03275   if (element)
03276     rec->x = sfi_value_get_real (element);
03277   element = sfi_rec_get (sfi_rec, "y");
03278   if (element)
03279     rec->y = sfi_value_get_real (element);
03280   return rec;
03281 }
03282 
03283 SfiRec *
03284 Dot::to_rec (const ::Bse::DotHandle & rec)
03285 {
03286   SfiRec *sfi_rec;
03287   GValue *element;
03288 
03289   if (!rec)
03290     return NULL;
03291 
03292   sfi_rec = sfi_rec_new ();
03293   element = sfi_rec_forced_get (sfi_rec, "x", SFI_TYPE_REAL);
03294   sfi_value_set_real (element, rec->x);
03295   element = sfi_rec_forced_get (sfi_rec, "y", SFI_TYPE_REAL);
03296   sfi_value_set_real (element, rec->y);
03297   return sfi_rec;
03298 }
03299 
03300 ::Bse::DotHandle
03301 Dot::value_get_boxed (const GValue *value)
03302 {
03303   return ::Bse::DotHandle::value_get_boxed (value);
03304 }
03305 
03306 void
03307 Dot::value_set_boxed (GValue *value, const ::Bse::DotHandle & self)
03308 {
03309   ::Bse::DotHandle::value_set_boxed (value, self);
03310 }
03311 
03312 SfiRecFields
03313 Dot::get_fields()
03314 {
03315   static SfiRecFields rfields = { 0, NULL };
03316   if (!rfields.n_fields)
03317     {
03318       static GParamSpec *fields[2 + 1];
03319       rfields.n_fields = 2;
03320       fields[0] = sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",597,"x");
03321       fields[1] = sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",598,"y");
03322       rfields.fields = fields;
03323     }
03324   return rfields;
03325 }
03326 ::Bse::PartLinkHandle
03327 PartLink::from_rec (SfiRec *sfi_rec)
03328 {
03329   GValue *element;
03330 
03331   if (!sfi_rec)
03332     return Sfi::INIT_NULL;
03333 
03334   ::Bse::PartLinkHandle rec = Sfi::INIT_DEFAULT;
03335   element = sfi_rec_get (sfi_rec, "track");
03336   if (element)
03337     rec->track = ::Bse::CxxBase::value_get_gobject< BseTrack> (element);
03338   element = sfi_rec_get (sfi_rec, "tick");
03339   if (element)
03340     rec->tick = sfi_value_get_int (element);
03341   element = sfi_rec_get (sfi_rec, "part");
03342   if (element)
03343     rec->part = ::Bse::CxxBase::value_get_gobject< BsePart> (element);
03344   element = sfi_rec_get (sfi_rec, "duration");
03345   if (element)
03346     rec->duration = sfi_value_get_int (element);
03347   return rec;
03348 }
03349 
03350 SfiRec *
03351 PartLink::to_rec (const ::Bse::PartLinkHandle & rec)
03352 {
03353   SfiRec *sfi_rec;
03354   GValue *element;
03355 
03356   if (!rec)
03357     return NULL;
03358 
03359   sfi_rec = sfi_rec_new ();
03360   element = sfi_rec_forced_get (sfi_rec, "track", SFI_TYPE_PROXY);
03361   ::Bse::CxxBase::value_set_gobject (element, rec->track);
03362   element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
03363   sfi_value_set_int (element, rec->tick);
03364   element = sfi_rec_forced_get (sfi_rec, "part", SFI_TYPE_PROXY);
03365   ::Bse::CxxBase::value_set_gobject (element, rec->part);
03366   element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
03367   sfi_value_set_int (element, rec->duration);
03368   return sfi_rec;
03369 }
03370 
03371 ::Bse::PartLinkHandle
03372 PartLink::value_get_boxed (const GValue *value)
03373 {
03374   return ::Bse::PartLinkHandle::value_get_boxed (value);
03375 }
03376 
03377 void
03378 PartLink::value_set_boxed (GValue *value, const ::Bse::PartLinkHandle & self)
03379 {
03380   ::Bse::PartLinkHandle::value_set_boxed (value, self);
03381 }
03382 
03383 SfiRecFields
03384 PartLink::get_fields()
03385 {
03386   static SfiRecFields rfields = { 0, NULL };
03387   if (!rfields.n_fields)
03388     {
03389       static GParamSpec *fields[4 + 1];
03390       rfields.n_fields = 4;
03391       fields[0] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",607,"track");
03392       fields[1] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",608,"tick","Tick" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
03393       fields[2] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",609,"part");
03394       fields[3] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",610,"duration","Duration" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
03395       rfields.fields = fields;
03396     }
03397   return rfields;
03398 }
03399 ::Bse::TrackPartHandle
03400 TrackPart::from_rec (SfiRec *sfi_rec)
03401 {
03402   GValue *element;
03403 
03404   if (!sfi_rec)
03405     return Sfi::INIT_NULL;
03406 
03407   ::Bse::TrackPartHandle rec = Sfi::INIT_DEFAULT;
03408   element = sfi_rec_get (sfi_rec, "tick");
03409   if (element)
03410     rec->tick = sfi_value_get_int (element);
03411   element = sfi_rec_get (sfi_rec, "part");
03412   if (element)
03413     rec->part = ::Bse::CxxBase::value_get_gobject< BsePart> (element);
03414   element = sfi_rec_get (sfi_rec, "duration");
03415   if (element)
03416     rec->duration = sfi_value_get_int (element);
03417   return rec;
03418 }
03419 
03420 SfiRec *
03421 TrackPart::to_rec (const ::Bse::TrackPartHandle & rec)
03422 {
03423   SfiRec *sfi_rec;
03424   GValue *element;
03425 
03426   if (!rec)
03427     return NULL;
03428 
03429   sfi_rec = sfi_rec_new ();
03430   element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
03431   sfi_value_set_int (element, rec->tick);
03432   element = sfi_rec_forced_get (sfi_rec, "part", SFI_TYPE_PROXY);
03433   ::Bse::CxxBase::value_set_gobject (element, rec->part);
03434   element = sfi_rec_forced_get (sfi_rec, "duration", SFI_TYPE_INT);
03435   sfi_value_set_int (element, rec->duration);
03436   return sfi_rec;
03437 }
03438 
03439 ::Bse::TrackPartHandle
03440 TrackPart::value_get_boxed (const GValue *value)
03441 {
03442   return ::Bse::TrackPartHandle::value_get_boxed (value);
03443 }
03444 
03445 void
03446 TrackPart::value_set_boxed (GValue *value, const ::Bse::TrackPartHandle & self)
03447 {
03448   ::Bse::TrackPartHandle::value_set_boxed (value, self);
03449 }
03450 
03451 SfiRecFields
03452 TrackPart::get_fields()
03453 {
03454   static SfiRecFields rfields = { 0, NULL };
03455   if (!rfields.n_fields)
03456     {
03457       static GParamSpec *fields[3 + 1];
03458       rfields.n_fields = 3;
03459       fields[0] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",618,"tick","Tick" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
03460       fields[1] = sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",619,"part");
03461       fields[2] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",620,"duration","Duration" , "" , 0LL , 0LL , G_MAXINT , 384LL , ":r:w:S:G:");
03462       rfields.fields = fields;
03463     }
03464   return rfields;
03465 }
03466 ::Bse::SongTimingHandle
03467 SongTiming::from_rec (SfiRec *sfi_rec)
03468 {
03469   GValue *element;
03470 
03471   if (!sfi_rec)
03472     return Sfi::INIT_NULL;
03473 
03474   ::Bse::SongTimingHandle rec = Sfi::INIT_DEFAULT;
03475   element = sfi_rec_get (sfi_rec, "tick");
03476   if (element)
03477     rec->tick = sfi_value_get_int (element);
03478   element = sfi_rec_get (sfi_rec, "bpm");
03479   if (element)
03480     rec->bpm = sfi_value_get_real (element);
03481   element = sfi_rec_get (sfi_rec, "numerator");
03482   if (element)
03483     rec->numerator = sfi_value_get_int (element);
03484   element = sfi_rec_get (sfi_rec, "denominator");
03485   if (element)
03486     rec->denominator = sfi_value_get_int (element);
03487   element = sfi_rec_get (sfi_rec, "tpqn");
03488   if (element)
03489     rec->tpqn = sfi_value_get_int (element);
03490   element = sfi_rec_get (sfi_rec, "tpt");
03491   if (element)
03492     rec->tpt = sfi_value_get_int (element);
03493   element = sfi_rec_get (sfi_rec, "stamp_ticks");
03494   if (element)
03495     rec->stamp_ticks = sfi_value_get_real (element);
03496   return rec;
03497 }
03498 
03499 SfiRec *
03500 SongTiming::to_rec (const ::Bse::SongTimingHandle & rec)
03501 {
03502   SfiRec *sfi_rec;
03503   GValue *element;
03504 
03505   if (!rec)
03506     return NULL;
03507 
03508   sfi_rec = sfi_rec_new ();
03509   element = sfi_rec_forced_get (sfi_rec, "tick", SFI_TYPE_INT);
03510   sfi_value_set_int (element, rec->tick);
03511   element = sfi_rec_forced_get (sfi_rec, "bpm", SFI_TYPE_REAL);
03512   sfi_value_set_real (element, rec->bpm);
03513   element = sfi_rec_forced_get (sfi_rec, "numerator", SFI_TYPE_INT);
03514   sfi_value_set_int (element, rec->numerator);
03515   element = sfi_rec_forced_get (sfi_rec, "denominator", SFI_TYPE_INT);
03516   sfi_value_set_int (element, rec->denominator);
03517   element = sfi_rec_forced_get (sfi_rec, "tpqn", SFI_TYPE_INT);
03518   sfi_value_set_int (element, rec->tpqn);
03519   element = sfi_rec_forced_get (sfi_rec, "tpt", SFI_TYPE_INT);
03520   sfi_value_set_int (element, rec->tpt);
03521   element = sfi_rec_forced_get (sfi_rec, "stamp_ticks", SFI_TYPE_REAL);
03522   sfi_value_set_real (element, rec->stamp_ticks);
03523   return sfi_rec;
03524 }
03525 
03526 ::Bse::SongTimingHandle
03527 SongTiming::value_get_boxed (const GValue *value)
03528 {
03529   return ::Bse::SongTimingHandle::value_get_boxed (value);
03530 }
03531 
03532 void
03533 SongTiming::value_set_boxed (GValue *value, const ::Bse::SongTimingHandle & self)
03534 {
03535   ::Bse::SongTimingHandle::value_set_boxed (value, self);
03536 }
03537 
03538 SfiRecFields
03539 SongTiming::get_fields()
03540 {
03541   static SfiRecFields rfields = { 0, NULL };
03542   if (!rfields.n_fields)
03543     {
03544       static GParamSpec *fields[7 + 1];
03545       rfields.n_fields = 7;
03546       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:");
03547       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:");
03548       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:");
03549       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:");
03550       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:");
03551       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:");
03552       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:");
03553       rfields.fields = fields;
03554     }
03555   return rfields;
03556 }
03557 ::Bse::SampleFileInfoHandle
03558 SampleFileInfo::from_rec (SfiRec *sfi_rec)
03559 {
03560   GValue *element;
03561 
03562   if (!sfi_rec)
03563     return Sfi::INIT_NULL;
03564 
03565   ::Bse::SampleFileInfoHandle rec = Sfi::INIT_DEFAULT;
03566   element = sfi_rec_get (sfi_rec, "file");
03567   if (element)
03568     rec->file = ::Sfi::String::value_get_string (element);
03569   element = sfi_rec_get (sfi_rec, "size");
03570   if (element)
03571     rec->size = sfi_value_get_int (element);
03572   element = sfi_rec_get (sfi_rec, "mtime");
03573   if (element)
03574     rec->mtime = sfi_value_get_num (element);
03575   element = sfi_rec_get (sfi_rec, "loader");
03576   if (element)
03577     rec->loader = ::Sfi::String::value_get_string (element);
03578   element = sfi_rec_get (sfi_rec, "waves");
03579   if (element)
03580     rec->waves = ::Bse::StringSeq::value_get_boxed (element);
03581   element = sfi_rec_get (sfi_rec, "error");
03582   if (element)
03583     rec->error = sfi_value_get_int (element);
03584   return rec;
03585 }
03586 
03587 SfiRec *
03588 SampleFileInfo::to_rec (const ::Bse::SampleFileInfoHandle & rec)
03589 {
03590   SfiRec *sfi_rec;
03591   GValue *element;
03592 
03593   if (!rec)
03594     return NULL;
03595 
03596   sfi_rec = sfi_rec_new ();
03597   element = sfi_rec_forced_get (sfi_rec, "file", SFI_TYPE_STRING);
03598   ::Sfi::String::value_set_string (element, rec->file);
03599   element = sfi_rec_forced_get (sfi_rec, "size", SFI_TYPE_INT);
03600   sfi_value_set_int (element, rec->size);
03601   element = sfi_rec_forced_get (sfi_rec, "mtime", SFI_TYPE_NUM);
03602   sfi_value_set_num (element, rec->mtime);
03603   element = sfi_rec_forced_get (sfi_rec, "loader", SFI_TYPE_STRING);
03604   ::Sfi::String::value_set_string (element, rec->loader);
03605   element = sfi_rec_forced_get (sfi_rec, "waves", SFI_TYPE_SEQ);
03606   ::Bse::StringSeq::value_set_boxed (element, rec->waves);
03607   element = sfi_rec_forced_get (sfi_rec, "error", SFI_TYPE_INT);
03608   sfi_value_set_int (element, rec->error);
03609   return sfi_rec;
03610 }
03611 
03612 ::Bse::SampleFileInfoHandle
03613 SampleFileInfo::value_get_boxed (const GValue *value)
03614 {
03615   return ::Bse::SampleFileInfoHandle::value_get_boxed (value);
03616 }
03617 
03618 void
03619 SampleFileInfo::value_set_boxed (GValue *value, const ::Bse::SampleFileInfoHandle & self)
03620 {
03621   ::Bse::SampleFileInfoHandle::value_set_boxed (value, self);
03622 }
03623 
03624 SfiRecFields
03625 SampleFileInfo::get_fields()
03626 {
03627   static SfiRecFields rfields = { 0, NULL };
03628   if (!rfields.n_fields)
03629     {
03630       static GParamSpec *fields[6 + 1];
03631       rfields.n_fields = 6;
03632       fields[0] = sfidl_pspec_SfiString (NULL,"/opt/src/beast/bse/bsebasics.idl",641,"file","Filename" , "" , "" , ":r:w:S:G:");
03633       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:");
03634       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:");
03635       fields[3] = sfidl_pspec_SfiString (NULL,"/opt/src/beast/bse/bsebasics.idl",644,"loader","Loader" , "" , "" , ":r:w:S:G:");
03636       fields[4] = sfidl_pspec_Sequence (NULL,"/opt/src/beast/bse/bsebasics.idl",645, "waves", "" , "" , ":r:w:S:G:", Bse::StringSeq::get_element());
03637       fields[5] = sfidl_pspec_SfiInt (NULL,"/opt/src/beast/bse/bsebasics.idl",646,"error","BseErrorType" , "" , 0LL , 0LL , G_MAXINT , 0LL , ":r:w:S:G:");
03638       rfields.fields = fields;
03639     }
03640   return rfields;
03641 }
03642 ::Bse::GConfigHandle
03643 GConfig::from_rec (SfiRec *sfi_rec)
03644 {
03645   GValue *element;
03646 
03647   if (!sfi_rec)
03648     return Sfi::INIT_NULL;
03649 
03650   ::Bse::GConfigHandle rec = Sfi::INIT_DEFAULT;
03651   element = sfi_rec_get (sfi_rec, "synth_latency");
03652   if (element)
03653     rec->synth_latency = sfi_value_get_int (element);
03654   element = sfi_rec_get (sfi_rec, "synth_mixing_freq");
03655   if (element)
03656     rec->synth_mixing_freq = sfi_value_get_int (element);
03657   element = sfi_rec_get (sfi_rec, "synth_control_freq");
03658   if (element)
03659     rec->synth_control_freq = sfi_value_get_int (element);
03660   element = sfi_rec_get (sfi_rec, "invert_sustain");
03661   if (element)
03662     rec->invert_sustain = sfi_value_get_bool (element);
03663   element = sfi_rec_get (sfi_rec, "author_default");
03664   if (element)
03665     rec->author_default = ::Sfi::String::value_get_string (element);
03666   element = sfi_rec_get (sfi_rec, "license_default");
03667   if (element)
03668     rec->license_default = ::Sfi::String::value_get_string (element);
03669   element = sfi_rec_get (sfi_rec, "sample_path");
03670   if (element)
03671     rec->sample_path = ::Sfi::String::value_get_string (element);
03672   element = sfi_rec_get (sfi_rec, "effect_path");
03673   if (element)
03674     rec->effect_path = ::Sfi::String::value_get_string (element);
03675   element = sfi_rec_get (sfi_rec, "instrument_path");
03676   if (element)
03677     rec->instrument_path = ::Sfi::String::value_get_string (element);
03678   element = sfi_rec_get (sfi_rec, "script_path");
03679   if (element)
03680     rec->script_path = ::Sfi::String::value_get_string (element);
03681   element = sfi_rec_get (sfi_rec, "plugin_path");
03682   if (element)
03683     rec->plugin_path = ::Sfi::String::value_get_string (element);
03684   element = sfi_rec_get (sfi_rec, "ladspa_path");
03685   if (element)
03686     rec->ladspa_path = ::Sfi::String::value_get_string (element);
03687   return rec;
03688 }
03689 
03690 SfiRec *
03691 GConfig::to_rec (const ::Bse::GConfigHandle & rec)
03692 {
03693   SfiRec *sfi_rec;
03694   GValue *element;
03695 
03696   if (!rec)
03697     return NULL;
03698 
03699   sfi_rec = sfi_rec_new ();
03700   element = sfi_rec_forced_get (sfi_rec, "synth_latency", SFI_TYPE_INT);
03701   sfi_value_set_int (element, rec->synth_latency);
03702   element = sfi_rec_forced_get (sfi_rec, "synth_mixing_freq", SFI_TYPE_INT);
03703   sfi_value_set_int (element, rec->synth_mixing_freq);
03704   element = sfi_rec_forced_get (sfi_rec, "synth_control_freq", SFI_TYPE_INT);
03705   sfi_value_set_int (element, rec->synth_control_freq);
03706   element = sfi_rec_forced_get (sfi_rec, "invert_sustain", SFI_TYPE_BOOL);
03707   sfi_value_set_bool (element, rec->invert_sustain);
03708   element = sfi_rec_forced_get (sfi_rec, "author_default", SFI_TYPE_STRING);
03709   ::Sfi::String::value_set_string (element, rec->author_default);
03710   element = sfi_rec_forced_get (sfi_rec, "license_default", SFI_TYPE_STRING);
03711   ::Sfi::String::value_set_string (element, rec->license_default);
03712   element = sfi_rec_forced_get (sfi_rec, "sample_path", SFI_TYPE_STRING);
03713   ::Sfi::String::value_set_string (element, rec->sample_path);
03714   element = sfi_rec_forced_get (sfi_rec, "effect_path", SFI_TYPE_STRING);
03715   ::Sfi::String::value_set_string (element, rec->effect_path);
03716   element = sfi_rec_forced_get (sfi_rec, "instrument_path", SFI_TYPE_STRING);
03717   ::Sfi::String::value_set_string (element, rec->instrument_path);
03718   element = sfi_rec_forced_get (sfi_rec, "script_path", SFI_TYPE_STRING);
03719   ::Sfi::String::value_set_string (element, rec->script_path);
03720   element = sfi_rec_forced_get (sfi_rec, "plugin_path", SFI_TYPE_STRING);
03721   ::Sfi::String::value_set_string (element, rec->plugin_path);
03722   element = sfi_rec_forced_get (sfi_rec, "ladspa_path", SFI_TYPE_STRING);
03723   ::Sfi::String::value_set_string (element, rec->ladspa_path);
03724   return sfi_rec;
03725 }
03726 
03727 ::Bse::GConfigHandle
03728 GConfig::value_get_boxed (const GValue *value)
03729 {
03730   return ::Bse::GConfigHandle::value_get_boxed (value);
03731 }
03732 
03733 void
03734 GConfig::value_set_boxed (GValue *value, const ::Bse::GConfigHandle & self)
03735 {
03736   ::Bse::GConfigHandle::value_set_boxed (value, self);
03737 }
03738 
03739 SfiRecFields
03740 GConfig::get_fields()
03741 {
03742   static SfiRecFields rfields = { 0, NULL };
03743   if (!rfields.n_fields)
03744     {
03745       static GParamSpec *fields[12 + 1];
03746       rfields.n_fields = 12;
03747       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:");
03748       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:");
03749       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:");
03750       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:");
03751       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:");
03752       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:");
03753       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");
03754       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");
03755       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");
03756       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");
03757       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");
03758       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");
03759       rfields.fields = fields;
03760     }
03761   return rfields;
03762 }
03763 
03764 
03765 /* sequence implementations */
03766 ::Bse::IntSeq
03767 IntSeq::from_seq (SfiSeq *sfi_seq)
03768 {
03769   ::Bse::IntSeq cseq;
03770   guint i, length;
03771 
03772   if (!sfi_seq)
03773     return cseq;
03774 
03775   length = sfi_seq_length (sfi_seq);
03776   cseq.resize (length);
03777   for (i = 0; i < length; i++)
03778     {
03779       GValue *element = sfi_seq_get (sfi_seq, i);
03780       cseq[i] = sfi_value_get_int (element);
03781     }
03782   return cseq;
03783 }
03784 
03785 SfiSeq *
03786 IntSeq::to_seq (const ::Bse::IntSeq & cseq)
03787 {
03788   SfiSeq *sfi_seq = sfi_seq_new ();
03789   for (guint i = 0; i < cseq.length(); i++)
03790     {
03791       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
03792       sfi_value_set_int (element, cseq[i]);
03793     }
03794   return sfi_seq;
03795 }
03796 
03797 ::Bse::IntSeq
03798 IntSeq::value_get_boxed (const GValue *value)
03799 {
03800   return ::Sfi::cxx_value_get_boxed_sequence< IntSeq> (value);
03801 }
03802 
03803 void
03804 IntSeq::value_set_boxed (GValue *value, const ::Bse::IntSeq & self)
03805 {
03806   ::Sfi::cxx_value_set_boxed_sequence< IntSeq> (value, self);
03807 }
03808 
03809 GParamSpec*
03810 IntSeq::get_element()
03811 {
03812   static GParamSpec *element = NULL;
03813   if (!element) {
03814     element = g_param_spec_ref (sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",24,"ints"));
03815     g_param_spec_sink (element);
03816   }
03817   return element;
03818 }
03819 
03820 ::Bse::TypeSeq
03821 TypeSeq::from_seq (SfiSeq *sfi_seq)
03822 {
03823   ::Bse::TypeSeq cseq;
03824   guint i, length;
03825 
03826   if (!sfi_seq)
03827     return cseq;
03828 
03829   length = sfi_seq_length (sfi_seq);
03830   cseq.resize (length);
03831   for (i = 0; i < length; i++)
03832     {
03833       GValue *element = sfi_seq_get (sfi_seq, i);
03834       cseq[i] = ::Sfi::String::value_get_string (element);
03835     }
03836   return cseq;
03837 }
03838 
03839 SfiSeq *
03840 TypeSeq::to_seq (const ::Bse::TypeSeq & cseq)
03841 {
03842   SfiSeq *sfi_seq = sfi_seq_new ();
03843   for (guint i = 0; i < cseq.length(); i++)
03844     {
03845       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_STRING);
03846       ::Sfi::String::value_set_string (element, cseq[i]);
03847     }
03848   return sfi_seq;
03849 }
03850 
03851 ::Bse::TypeSeq
03852 TypeSeq::value_get_boxed (const GValue *value)
03853 {
03854   return ::Sfi::cxx_value_get_boxed_sequence< TypeSeq> (value);
03855 }
03856 
03857 void
03858 TypeSeq::value_set_boxed (GValue *value, const ::Bse::TypeSeq & self)
03859 {
03860   ::Sfi::cxx_value_set_boxed_sequence< TypeSeq> (value, self);
03861 }
03862 
03863 GParamSpec*
03864 TypeSeq::get_element()
03865 {
03866   static GParamSpec *element = NULL;
03867   if (!element) {
03868     element = g_param_spec_ref (sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",27,"types"));
03869     g_param_spec_sink (element);
03870   }
03871   return element;
03872 }
03873 
03874 ::Bse::StringSeq
03875 StringSeq::from_seq (SfiSeq *sfi_seq)
03876 {
03877   ::Bse::StringSeq cseq;
03878   guint i, length;
03879 
03880   if (!sfi_seq)
03881     return cseq;
03882 
03883   length = sfi_seq_length (sfi_seq);
03884   cseq.resize (length);
03885   for (i = 0; i < length; i++)
03886     {
03887       GValue *element = sfi_seq_get (sfi_seq, i);
03888       cseq[i] = ::Sfi::String::value_get_string (element);
03889     }
03890   return cseq;
03891 }
03892 
03893 SfiSeq *
03894 StringSeq::to_seq (const ::Bse::StringSeq & cseq)
03895 {
03896   SfiSeq *sfi_seq = sfi_seq_new ();
03897   for (guint i = 0; i < cseq.length(); i++)
03898     {
03899       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_STRING);
03900       ::Sfi::String::value_set_string (element, cseq[i]);
03901     }
03902   return sfi_seq;
03903 }
03904 
03905 ::Bse::StringSeq
03906 StringSeq::value_get_boxed (const GValue *value)
03907 {
03908   return ::Sfi::cxx_value_get_boxed_sequence< StringSeq> (value);
03909 }
03910 
03911 void
03912 StringSeq::value_set_boxed (GValue *value, const ::Bse::StringSeq & self)
03913 {
03914   ::Sfi::cxx_value_set_boxed_sequence< StringSeq> (value, self);
03915 }
03916 
03917 GParamSpec*
03918 StringSeq::get_element()
03919 {
03920   static GParamSpec *element = NULL;
03921   if (!element) {
03922     element = g_param_spec_ref (sfidl_pspec_String_default (NULL,"/opt/src/beast/bse/bsebasics.idl",30,"strings"));
03923     g_param_spec_sink (element);
03924   }
03925   return element;
03926 }
03927 
03928 ::Bse::FloatSeq
03929 FloatSeq::from_seq (SfiSeq *sfi_seq)
03930 {
03931   ::Bse::FloatSeq cseq;
03932   guint i, length;
03933 
03934   if (!sfi_seq)
03935     return cseq;
03936 
03937   length = sfi_seq_length (sfi_seq);
03938   cseq.resize (length);
03939   for (i = 0; i < length; i++)
03940     {
03941       GValue *element = sfi_seq_get (sfi_seq, i);
03942       cseq[i] = sfi_value_get_real (element);
03943     }
03944   return cseq;
03945 }
03946 
03947 SfiSeq *
03948 FloatSeq::to_seq (const ::Bse::FloatSeq & cseq)
03949 {
03950   SfiSeq *sfi_seq = sfi_seq_new ();
03951   for (guint i = 0; i < cseq.length(); i++)
03952     {
03953       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REAL);
03954       sfi_value_set_real (element, cseq[i]);
03955     }
03956   return sfi_seq;
03957 }
03958 
03959 ::Bse::FloatSeq
03960 FloatSeq::value_get_boxed (const GValue *value)
03961 {
03962   return ::Sfi::cxx_value_get_boxed_sequence< FloatSeq> (value);
03963 }
03964 
03965 void
03966 FloatSeq::value_set_boxed (GValue *value, const ::Bse::FloatSeq & self)
03967 {
03968   ::Sfi::cxx_value_set_boxed_sequence< FloatSeq> (value, self);
03969 }
03970 
03971 GParamSpec*
03972 FloatSeq::get_element()
03973 {
03974   static GParamSpec *element = NULL;
03975   if (!element) {
03976     element = g_param_spec_ref (sfidl_pspec_Real_default (NULL,"/opt/src/beast/bse/bsebasics.idl",33,"values"));
03977     g_param_spec_sink (element);
03978   }
03979   return element;
03980 }
03981 
03982 ::Bse::NoteSeq
03983 NoteSeq::from_seq (SfiSeq *sfi_seq)
03984 {
03985   ::Bse::NoteSeq cseq;
03986   guint i, length;
03987 
03988   if (!sfi_seq)
03989     return cseq;
03990 
03991   length = sfi_seq_length (sfi_seq);
03992   cseq.resize (length);
03993   for (i = 0; i < length; i++)
03994     {
03995       GValue *element = sfi_seq_get (sfi_seq, i);
03996       cseq[i] = sfi_value_get_int (element);
03997     }
03998   return cseq;
03999 }
04000 
04001 SfiSeq *
04002 NoteSeq::to_seq (const ::Bse::NoteSeq & cseq)
04003 {
04004   SfiSeq *sfi_seq = sfi_seq_new ();
04005   for (guint i = 0; i < cseq.length(); i++)
04006     {
04007       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
04008       sfi_value_set_int (element, cseq[i]);
04009     }
04010   return sfi_seq;
04011 }
04012 
04013 ::Bse::NoteSeq
04014 NoteSeq::value_get_boxed (const GValue *value)
04015 {
04016   return ::Sfi::cxx_value_get_boxed_sequence< NoteSeq> (value);
04017 }
04018 
04019 void
04020 NoteSeq::value_set_boxed (GValue *value, const ::Bse::NoteSeq & self)
04021 {
04022   ::Sfi::cxx_value_set_boxed_sequence< NoteSeq> (value, self);
04023 }
04024 
04025 GParamSpec*
04026 NoteSeq::get_element()
04027 {
04028   static GParamSpec *element = NULL;
04029   if (!element) {
04030     element = g_param_spec_ref (sfidl_pspec_Note (NULL,"/opt/src/beast/bse/bsebasics.idl",506,"notes","Note" , "" , KAMMER_NOTE , ":readwrite"));
04031     g_param_spec_sink (element);
04032   }
04033   return element;
04034 }
04035 
04036 ::Bse::ItemSeq
04037 ItemSeq::from_seq (SfiSeq *sfi_seq)
04038 {
04039   ::Bse::ItemSeq cseq;
04040   guint i, length;
04041 
04042   if (!sfi_seq)
04043     return cseq;
04044 
04045   length = sfi_seq_length (sfi_seq);
04046   cseq.resize (length);
04047   for (i = 0; i < length; i++)
04048     {
04049       GValue *element = sfi_seq_get (sfi_seq, i);
04050       cseq[i] = ::Bse::CxxBase::value_get_gobject< BseItem> (element);
04051     }
04052   return cseq;
04053 }
04054 
04055 SfiSeq *
04056 ItemSeq::to_seq (const ::Bse::ItemSeq & cseq)
04057 {
04058   SfiSeq *sfi_seq = sfi_seq_new ();
04059   for (guint i = 0; i < cseq.length(); i++)
04060     {
04061       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_PROXY);
04062       ::Bse::CxxBase::value_set_gobject (element, cseq[i]);
04063     }
04064   return sfi_seq;
04065 }
04066 
04067 ::Bse::ItemSeq
04068 ItemSeq::value_get_boxed (const GValue *value)
04069 {
04070   return ::Sfi::cxx_value_get_boxed_sequence< ItemSeq> (value);
04071 }
04072 
04073 void
04074 ItemSeq::value_set_boxed (GValue *value, const ::Bse::ItemSeq & self)
04075 {
04076   ::Sfi::cxx_value_set_boxed_sequence< ItemSeq> (value, self);
04077 }
04078 
04079 GParamSpec*
04080 ItemSeq::get_element()
04081 {
04082   static GParamSpec *element = NULL;
04083   if (!element) {
04084     element = g_param_spec_ref (sfidl_pspec_Object_default (NULL,"/opt/src/beast/bse/bsebasics.idl",511,"items"));
04085     g_param_spec_sink (element);
04086   }
04087   return element;
04088 }
04089 
04090 ::Bse::PartNoteSeq
04091 PartNoteSeq::from_seq (SfiSeq *sfi_seq)
04092 {
04093   ::Bse::PartNoteSeq cseq;
04094   guint i, length;
04095 
04096   if (!sfi_seq)
04097     return cseq;
04098 
04099   length = sfi_seq_length (sfi_seq);
04100   cseq.resize (length);
04101   for (i = 0; i < length; i++)
04102     {
04103       GValue *element = sfi_seq_get (sfi_seq, i);
04104       cseq[i] = ::Bse::PartNote::value_get_boxed (element);
04105     }
04106   return cseq;
04107 }
04108 
04109 SfiSeq *
04110 PartNoteSeq::to_seq (const ::Bse::PartNoteSeq & cseq)
04111 {
04112   SfiSeq *sfi_seq = sfi_seq_new ();
04113   for (guint i = 0; i < cseq.length(); i++)
04114     {
04115       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04116       ::Bse::PartNote::value_set_boxed (element, cseq[i]);
04117     }
04118   return sfi_seq;
04119 }
04120 
04121 ::Bse::PartNoteSeq
04122 PartNoteSeq::value_get_boxed (const GValue *value)
04123 {
04124   return ::Sfi::cxx_value_get_boxed_sequence< PartNoteSeq> (value);
04125 }
04126 
04127 void
04128 PartNoteSeq::value_set_boxed (GValue *value, const ::Bse::PartNoteSeq & self)
04129 {
04130   ::Sfi::cxx_value_set_boxed_sequence< PartNoteSeq> (value, self);
04131 }
04132 
04133 GParamSpec*
04134 PartNoteSeq::get_element()
04135 {
04136   static GParamSpec *element = NULL;
04137   if (!element) {
04138     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",534, "pnotes", Bse::PartNote::get_fields()));
04139     g_param_spec_sink (element);
04140   }
04141   return element;
04142 }
04143 
04144 ::Bse::PartControlSeq
04145 PartControlSeq::from_seq (SfiSeq *sfi_seq)
04146 {
04147   ::Bse::PartControlSeq cseq;
04148   guint i, length;
04149 
04150   if (!sfi_seq)
04151     return cseq;
04152 
04153   length = sfi_seq_length (sfi_seq);
04154   cseq.resize (length);
04155   for (i = 0; i < length; i++)
04156     {
04157       GValue *element = sfi_seq_get (sfi_seq, i);
04158       cseq[i] = ::Bse::PartControl::value_get_boxed (element);
04159     }
04160   return cseq;
04161 }
04162 
04163 SfiSeq *
04164 PartControlSeq::to_seq (const ::Bse::PartControlSeq & cseq)
04165 {
04166   SfiSeq *sfi_seq = sfi_seq_new ();
04167   for (guint i = 0; i < cseq.length(); i++)
04168     {
04169       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04170       ::Bse::PartControl::value_set_boxed (element, cseq[i]);
04171     }
04172   return sfi_seq;
04173 }
04174 
04175 ::Bse::PartControlSeq
04176 PartControlSeq::value_get_boxed (const GValue *value)
04177 {
04178   return ::Sfi::cxx_value_get_boxed_sequence< PartControlSeq> (value);
04179 }
04180 
04181 void
04182 PartControlSeq::value_set_boxed (GValue *value, const ::Bse::PartControlSeq & self)
04183 {
04184   ::Sfi::cxx_value_set_boxed_sequence< PartControlSeq> (value, self);
04185 }
04186 
04187 GParamSpec*
04188 PartControlSeq::get_element()
04189 {
04190   static GParamSpec *element = NULL;
04191   if (!element) {
04192     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",547, "pcontrols", Bse::PartControl::get_fields()));
04193     g_param_spec_sink (element);
04194   }
04195   return element;
04196 }
04197 
04198 ::Bse::PixelSeq
04199 PixelSeq::from_seq (SfiSeq *sfi_seq)
04200 {
04201   ::Bse::PixelSeq cseq;
04202   guint i, length;
04203 
04204   if (!sfi_seq)
04205     return cseq;
04206 
04207   length = sfi_seq_length (sfi_seq);
04208   cseq.resize (length);
04209   for (i = 0; i < length; i++)
04210     {
04211       GValue *element = sfi_seq_get (sfi_seq, i);
04212       cseq[i] = sfi_value_get_int (element);
04213     }
04214   return cseq;
04215 }
04216 
04217 SfiSeq *
04218 PixelSeq::to_seq (const ::Bse::PixelSeq & cseq)
04219 {
04220   SfiSeq *sfi_seq = sfi_seq_new ();
04221   for (guint i = 0; i < cseq.length(); i++)
04222     {
04223       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_INT);
04224       sfi_value_set_int (element, cseq[i]);
04225     }
04226   return sfi_seq;
04227 }
04228 
04229 ::Bse::PixelSeq
04230 PixelSeq::value_get_boxed (const GValue *value)
04231 {
04232   return ::Sfi::cxx_value_get_boxed_sequence< PixelSeq> (value);
04233 }
04234 
04235 void
04236 PixelSeq::value_set_boxed (GValue *value, const ::Bse::PixelSeq & self)
04237 {
04238   ::Sfi::cxx_value_set_boxed_sequence< PixelSeq> (value, self);
04239 }
04240 
04241 GParamSpec*
04242 PixelSeq::get_element()
04243 {
04244   static GParamSpec *element = NULL;
04245   if (!element) {
04246     element = g_param_spec_ref (sfidl_pspec_Int_default (NULL,"/opt/src/beast/bse/bsebasics.idl",574,"pixels"));
04247     g_param_spec_sink (element);
04248   }
04249   return element;
04250 }
04251 
04252 ::Bse::CategorySeq
04253 CategorySeq::from_seq (SfiSeq *sfi_seq)
04254 {
04255   ::Bse::CategorySeq cseq;
04256   guint i, length;
04257 
04258   if (!sfi_seq)
04259     return cseq;
04260 
04261   length = sfi_seq_length (sfi_seq);
04262   cseq.resize (length);
04263   for (i = 0; i < length; i++)
04264     {
04265       GValue *element = sfi_seq_get (sfi_seq, i);
04266       cseq[i] = ::Bse::Category::value_get_boxed (element);
04267     }
04268   return cseq;
04269 }
04270 
04271 SfiSeq *
04272 CategorySeq::to_seq (const ::Bse::CategorySeq & cseq)
04273 {
04274   SfiSeq *sfi_seq = sfi_seq_new ();
04275   for (guint i = 0; i < cseq.length(); i++)
04276     {
04277       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04278       ::Bse::Category::value_set_boxed (element, cseq[i]);
04279     }
04280   return sfi_seq;
04281 }
04282 
04283 ::Bse::CategorySeq
04284 CategorySeq::value_get_boxed (const GValue *value)
04285 {
04286   return ::Sfi::cxx_value_get_boxed_sequence< CategorySeq> (value);
04287 }
04288 
04289 void
04290 CategorySeq::value_set_boxed (GValue *value, const ::Bse::CategorySeq & self)
04291 {
04292   ::Sfi::cxx_value_set_boxed_sequence< CategorySeq> (value, self);
04293 }
04294 
04295 GParamSpec*
04296 CategorySeq::get_element()
04297 {
04298   static GParamSpec *element = NULL;
04299   if (!element) {
04300     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",593, "cats", Bse::Category::get_fields()));
04301     g_param_spec_sink (element);
04302   }
04303   return element;
04304 }
04305 
04306 ::Bse::DotSeq
04307 DotSeq::from_seq (SfiSeq *sfi_seq)
04308 {
04309   ::Bse::DotSeq cseq;
04310   guint i, length;
04311 
04312   if (!sfi_seq)
04313     return cseq;
04314 
04315   length = sfi_seq_length (sfi_seq);
04316   cseq.resize (length);
04317   for (i = 0; i < length; i++)
04318     {
04319       GValue *element = sfi_seq_get (sfi_seq, i);
04320       cseq[i] = ::Bse::Dot::value_get_boxed (element);
04321     }
04322   return cseq;
04323 }
04324 
04325 SfiSeq *
04326 DotSeq::to_seq (const ::Bse::DotSeq & cseq)
04327 {
04328   SfiSeq *sfi_seq = sfi_seq_new ();
04329   for (guint i = 0; i < cseq.length(); i++)
04330     {
04331       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04332       ::Bse::Dot::value_set_boxed (element, cseq[i]);
04333     }
04334   return sfi_seq;
04335 }
04336 
04337 ::Bse::DotSeq
04338 DotSeq::value_get_boxed (const GValue *value)
04339 {
04340   return ::Sfi::cxx_value_get_boxed_sequence< DotSeq> (value);
04341 }
04342 
04343 void
04344 DotSeq::value_set_boxed (GValue *value, const ::Bse::DotSeq & self)
04345 {
04346   ::Sfi::cxx_value_set_boxed_sequence< DotSeq> (value, self);
04347 }
04348 
04349 GParamSpec*
04350 DotSeq::get_element()
04351 {
04352   static GParamSpec *element = NULL;
04353   if (!element) {
04354     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",601, "dots", Bse::Dot::get_fields()));
04355     g_param_spec_sink (element);
04356   }
04357   return element;
04358 }
04359 
04360 ::Bse::PartLinkSeq
04361 PartLinkSeq::from_seq (SfiSeq *sfi_seq)
04362 {
04363   ::Bse::PartLinkSeq cseq;
04364   guint i, length;
04365 
04366   if (!sfi_seq)
04367     return cseq;
04368 
04369   length = sfi_seq_length (sfi_seq);
04370   cseq.resize (length);
04371   for (i = 0; i < length; i++)
04372     {
04373       GValue *element = sfi_seq_get (sfi_seq, i);
04374       cseq[i] = ::Bse::PartLink::value_get_boxed (element);
04375     }
04376   return cseq;
04377 }
04378 
04379 SfiSeq *
04380 PartLinkSeq::to_seq (const ::Bse::PartLinkSeq & cseq)
04381 {
04382   SfiSeq *sfi_seq = sfi_seq_new ();
04383   for (guint i = 0; i < cseq.length(); i++)
04384     {
04385       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04386       ::Bse::PartLink::value_set_boxed (element, cseq[i]);
04387     }
04388   return sfi_seq;
04389 }
04390 
04391 ::Bse::PartLinkSeq
04392 PartLinkSeq::value_get_boxed (const GValue *value)
04393 {
04394   return ::Sfi::cxx_value_get_boxed_sequence< PartLinkSeq> (value);
04395 }
04396 
04397 void
04398 PartLinkSeq::value_set_boxed (GValue *value, const ::Bse::PartLinkSeq & self)
04399 {
04400   ::Sfi::cxx_value_set_boxed_sequence< PartLinkSeq> (value, self);
04401 }
04402 
04403 GParamSpec*
04404 PartLinkSeq::get_element()
04405 {
04406   static GParamSpec *element = NULL;
04407   if (!element) {
04408     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",614, "plinks", Bse::PartLink::get_fields()));
04409     g_param_spec_sink (element);
04410   }
04411   return element;
04412 }
04413 
04414 ::Bse::TrackPartSeq
04415 TrackPartSeq::from_seq (SfiSeq *sfi_seq)
04416 {
04417   ::Bse::TrackPartSeq cseq;
04418   guint i, length;
04419 
04420   if (!sfi_seq)
04421     return cseq;
04422 
04423   length = sfi_seq_length (sfi_seq);
04424   cseq.resize (length);
04425   for (i = 0; i < length; i++)
04426     {
04427       GValue *element = sfi_seq_get (sfi_seq, i);
04428       cseq[i] = ::Bse::TrackPart::value_get_boxed (element);
04429     }
04430   return cseq;
04431 }
04432 
04433 SfiSeq *
04434 TrackPartSeq::to_seq (const ::Bse::TrackPartSeq & cseq)
04435 {
04436   SfiSeq *sfi_seq = sfi_seq_new ();
04437   for (guint i = 0; i < cseq.length(); i++)
04438     {
04439       GValue *element = sfi_seq_append_empty (sfi_seq, SFI_TYPE_REC);
04440       ::Bse::TrackPart::value_set_boxed (element, cseq[i]);
04441     }
04442   return sfi_seq;
04443 }
04444 
04445 ::Bse::TrackPartSeq
04446 TrackPartSeq::value_get_boxed (const GValue *value)
04447 {
04448   return ::Sfi::cxx_value_get_boxed_sequence< TrackPartSeq> (value);
04449 }
04450 
04451 void
04452 TrackPartSeq::value_set_boxed (GValue *value, const ::Bse::TrackPartSeq & self)
04453 {
04454   ::Sfi::cxx_value_set_boxed_sequence< TrackPartSeq> (value, self);
04455 }
04456 
04457 GParamSpec*
04458 TrackPartSeq::get_element()
04459 {
04460   static GParamSpec *element = NULL;
04461   if (!element) {
04462     element = g_param_spec_ref (sfidl_pspec_Record_default (NULL,"/opt/src/beast/bse/bsebasics.idl",623, "tparts", Bse::TrackPart::get_fields()));
04463     g_param_spec_sink (element);
04464   }
04465   return element;
04466 }
04467 
04468 
04469 
04470 /* class implementations */
04471 
04472 
04473 /* procedure implementations */
04474 
04475 
04476 /* bsebasics.idl type registrations */
04477 #define BSE_CXX_REGISTER_ALL_TYPES_FROM_BSEBASICS_IDL() \
04478   BSE_CXX_REGISTER_ENUM (MusicalTuningType); \
04479   BSE_CXX_REGISTER_ENUM (MidiSignalType); \
04480   BSE_CXX_REGISTER_ENUM (MidiControlType); \
04481   BSE_CXX_REGISTER_ENUM (MidiChannelEventType); \
04482   BSE_CXX_REGISTER_RECORD (MidiChannelEvent); \
04483   BSE_CXX_REGISTER_RECORD (PropertyCandidates); \
04484   BSE_CXX_REGISTER_RECORD (PartNote); \
04485   BSE_CXX_REGISTER_RECORD (PartControl); \
04486   BSE_CXX_REGISTER_RECORD (NoteDescription); \
04487   BSE_CXX_REGISTER_RECORD (NoteSequence); \
04488   BSE_CXX_REGISTER_RECORD (Icon); \
04489   BSE_CXX_REGISTER_RECORD (Category); \
04490   BSE_CXX_REGISTER_RECORD (Dot); \
04491   BSE_CXX_REGISTER_RECORD (PartLink); \
04492   BSE_CXX_REGISTER_RECORD (TrackPart); \
04493   BSE_CXX_REGISTER_RECORD (SongTiming); \
04494   BSE_CXX_REGISTER_RECORD (SampleFileInfo); \
04495   BSE_CXX_REGISTER_RECORD (GConfig); \
04496   BSE_CXX_REGISTER_SEQUENCE (IntSeq); \
04497   BSE_CXX_REGISTER_SEQUENCE (TypeSeq); \
04498   BSE_CXX_REGISTER_SEQUENCE (StringSeq); \
04499   BSE_CXX_REGISTER_SEQUENCE (FloatSeq); \
04500   BSE_CXX_REGISTER_SEQUENCE (NoteSeq); \
04501   BSE_CXX_REGISTER_SEQUENCE (ItemSeq); \
04502   BSE_CXX_REGISTER_SEQUENCE (PartNoteSeq); \
04503   BSE_CXX_REGISTER_SEQUENCE (PartControlSeq); \
04504   BSE_CXX_REGISTER_SEQUENCE (PixelSeq); \
04505   BSE_CXX_REGISTER_SEQUENCE (CategorySeq); \
04506   BSE_CXX_REGISTER_SEQUENCE (DotSeq); \
04507   BSE_CXX_REGISTER_SEQUENCE (PartLinkSeq); \
04508   BSE_CXX_REGISTER_SEQUENCE (TrackPartSeq); \
04509   /* bsebasics.idl type registrations done */
04510 } // Bse
04511 
04512 /*-------- end ../sfi/sfidl generated code --------*/
04513 
04514 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines