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