10 #define BSE_TYPE_PROCEDURE G_TYPE_MAKE_FUNDAMENTAL (G_TYPE_RESERVED_BSE_FIRST + 3)
14 #define BSE_TYPE_IS_PROCEDURE(type) (G_TYPE_FUNDAMENTAL (type) == BSE_TYPE_PROCEDURE)
15 #define BSE_CLASS_NAME(class) (g_type_name (G_TYPE_FROM_CLASS (class)))
16 #define BSE_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
17 #define BSE_TYPE_IS_OBJECT(type) (g_type_is_a ((type), BSE_TYPE_OBJECT))
20 extern GType bse_type_id_packed_pointer;
21 #define BSE_TYPE_PACKED_POINTER (bse_type_id_packed_pointer)
25 void bse_type_init (
void);
26 void bse_type_add_options (GType type,
27 const gchar *options);
28 const gchar* bse_type_get_options (GType type);
29 void bse_type_add_blurb (GType type,
33 const gchar* bse_type_get_blurb (GType type);
34 const gchar* bse_type_get_file (GType type);
35 guint bse_type_get_line (GType type);
36 void bse_type_add_authors (GType type,
37 const gchar *authors);
38 const gchar* bse_type_get_authors (GType type);
39 void bse_type_add_license (GType type,
40 const gchar *license);
41 const gchar* bse_type_get_license (GType type);
42 GType bse_type_register_static (GType parent_type,
43 const gchar *type_name,
44 const gchar *type_blurb,
47 const GTypeInfo *info);
48 GType bse_type_register_abstract (GType parent_type,
49 const gchar *type_name,
50 const gchar *type_blurb,
53 const GTypeInfo *info);
54 GType bse_type_register_dynamic (GType parent_type,
55 const gchar *type_name,
57 GType bse_type_register_loadable_boxed (BseExportNodeBoxed *bnode,
59 void bse_type_reinit_boxed (BseExportNodeBoxed *bnode);
60 void bse_type_uninit_boxed (BseExportNodeBoxed *bnode);
69 #define BSE_TYPE_ID(BseTypeName) (bse_type_builtin_id_##BseTypeName)
70 #ifdef BSE_COMPILATION
71 # define BSE_BUILTIN_PROTO(BseTypeName) GType bse_type_builtin_register_##BseTypeName (void)
72 # define BSE_BUILTIN_TYPE(BseTypeName) EXTERN_C BSE_BUILTIN_PROTO (BseTypeName); EXTERN_C BSE_BUILTIN_PROTO (BseTypeName)
73 # define BSE_DUMMY_TYPE(BseTypeName) EXTERN_C BSE_BUILTIN_PROTO (BseTypeName) { return 0; } \
74 EXTERN_C BSE_BUILTIN_PROTO (BseTypeName)
79 GParamSpec* bse_param_spec_enum (
const gchar *name,
87 void bse_type_register_enums ();
88 void bse_type_register_procedure_info (GTypeInfo *info);
89 void bse_type_register_object_info (GTypeInfo *info);
90 void bse_param_types_init ();
97 #define BSE_GCONFIG(cfg) (bse_global_config->cfg)
98 extern BseGConfig *bse_global_config;
102 #define sfidl_pspec_Bool sfidl_pspec_SfiBool
103 #define sfidl_pspec_SfiBool(group, locfile, locline, name, nick, blurb, dflt, options) \
104 sfi_pspec_set_group (sfi_pspec_bool (name, nick, blurb, dflt, options), group)
105 #define sfidl_pspec_Bool_default(group, locfile, locline, name) \
106 sfi_pspec_set_group (sfi_pspec_bool (name, NULL, NULL, FALSE, SFI_PARAM_STANDARD), group)
107 #define sfidl_pspec_Trigger(group, locfile, locline, name, nick, blurb, options) \
108 sfi_pspec_set_group (sfi_pspec_bool (name, nick, blurb, FALSE, "trigger:skip-undo:" options), group)
109 #define sfidl_pspec_Int sfidl_pspec_SfiInt
110 #define sfidl_pspec_SfiInt(group, locfile, locline, name, nick, blurb, dflt, min, max, step, options) \
111 sfi_pspec_set_group (sfi_pspec_int (name, nick, blurb, dflt, min, max, step, options), group)
112 #define sfidl_pspec_Int_default(group, locfile, locline, name) \
113 sfi_pspec_set_group (sfi_pspec_int (name, NULL, NULL, 0, G_MININT, G_MAXINT, 256, SFI_PARAM_STANDARD), group)
114 #define sfidl_pspec_Num sfidl_pspec_SfiNum
115 #define sfidl_pspec_SfiNum(group, locfile, locline, name, nick, blurb, dflt, min, max, step, options) \
116 sfi_pspec_set_group (sfi_pspec_num (name, nick, blurb, dflt, min, max, step, options), group)
117 #define sfidl_pspec_Num_default(group, locfile, locline, name) \
118 sfi_pspec_set_group (sfi_pspec_num (name, NULL, NULL, 0, SFI_MINNUM, SFI_MAXNUM, 1000, SFI_PARAM_STANDARD), group)
119 #define sfidl_pspec_SfiUInt(group, locfile, locline, name, nick, blurb, dflt, options) \
120 sfi_pspec_set_group (sfi_pspec_int (name, nick, blurb, dflt, 0, G_MAXINT, 1, options), group)
121 #define sfidl_pspec_Real sfidl_pspec_SfiReal
122 #define sfidl_pspec_SfiReal(group, locfile, locline, name, nick, blurb, dflt, min, max, step, options) \
123 sfi_pspec_set_group (sfi_pspec_real (name, nick, blurb, dflt, min, max, step, options), group)
124 #define sfidl_pspec_Real_default(group, locfile, locline, name) \
125 sfi_pspec_set_group (sfi_pspec_real (name, NULL, NULL, 0, -SFI_MAXREAL, SFI_MAXREAL, 10, SFI_PARAM_STANDARD), group)
126 #define sfidl_pspec_Perc(group, locfile, locline, name, nick, blurb, dflt, options) \
127 sfi_pspec_set_group (sfi_pspec_real (name, nick, blurb, dflt, 0.0, 100.0, 5.0, "scale:" options), group)
128 #define sfidl_pspec_DBVolume(group, locfile, locline, name, nick, blurb, dfltdb, mindb, maxdb, options) \
129 sfi_pspec_set_group (sfi_pspec_real (name, nick, blurb, bse_db_to_factor (dfltdb), bse_db_to_factor (mindb), bse_db_to_factor (maxdb), \
130 bse_db_to_factor (MIN (0.5, ABS (maxdb - mindb) / 10.0)), "scale:db-volume:" options), group)
131 #define sfidl_pspec_Balance(group, locfile, locline, name, nick, blurb, dflt, options) \
132 sfi_pspec_set_group (sfi_pspec_real (name, nick, blurb, dflt, -100.0, +100.0, 5.0, "scale:" options), group)
133 #define sfidl_pspec_Note(group, locfile, locline, name, nick, blurb, dflt, options) \
134 sfi_pspec_set_group (sfi_pspec_note (name, nick, blurb, dflt, SFI_MIN_NOTE, SFI_MAX_NOTE, FALSE, options), group)
135 #define sfidl_pspec_Octave(group, locfile, locline, name, nick, blurb, dflt, options) \
136 sfi_pspec_set_group (sfi_pspec_int (name, nick, blurb, dflt, BSE_MIN_OCTAVE, BSE_MAX_OCTAVE, 4, options), group)
137 #define sfidl_pspec_Frequency(group, locfile, locline, name, nick, blurb, dflt, min, max, options) \
138 sfi_pspec_set_group (bse_param_spec_freq (name, nick, blurb, dflt, min, max, "scale:" options), group)
139 #define sfidl_pspec_Freq(group, locfile, locline, name, nick, blurb, dflt, options) \
140 sfidl_pspec_Frequency (group, locfile, locline, name, nick, blurb, dflt, BSE_MIN_OSC_FREQUENCY, BSE_MAX_OSC_FREQUENCY, options)
141 #define sfidl_pspec_Gain(group, locfile, locline, name, nick, blurb, dflt, min, max, step, options) \
142 sfi_pspec_set_group (sfi_pspec_real (name, nick, blurb, dflt, min, max, step, options), group)
143 #define sfidl_pspec_FineTune(group, locfile, locline, name, nick, blurb, options) \
144 sfi_pspec_set_group (sfi_pspec_int (name, nick, blurb, 0, BSE_MIN_FINE_TUNE, BSE_MAX_FINE_TUNE, 10, options), group)
145 #define sfidl_pspec_LogScale(group, locfile, locline, name, nick, blurb, dflt, min, max, step, center, base, n_steps, options) \
146 sfi_pspec_set_group (sfi_pspec_log_scale (name, nick, blurb, dflt, min, max, step, center, base, n_steps, "scale:" options), group)
147 #define sfidl_pspec_Choice(group, locfile, locline, name, nick, blurb, dval, options, cvalues) \
148 sfi_pspec_set_group (sfi_pspec_choice (name, nick, blurb, #dval, cvalues, SFI_PARAM_STANDARD), group)
149 #define sfidl_pspec_Choice_default(group, locfile, locline, name, cvalues) \
150 sfidl_pspec_Choice (group, locfile, locline, name, NULL, NULL, NULL, SFI_PARAM_STANDARD, cvalues)
151 #define sfidl_pspec_String sfidl_pspec_SfiString
152 #define sfidl_pspec_SfiString(group, locfile, locline, name, nick, blurb, dflt, options) \
153 sfi_pspec_set_group (sfi_pspec_string (name, nick, blurb, dflt, options), group)
154 #define sfidl_pspec_String_default(group, locfile, locline, name) \
155 sfidl_pspec_String (group, locfile, locline, name, NULL, NULL, NULL, SFI_PARAM_STANDARD)
156 #define sfidl_pspec_BBlock(group, locfile, locline, name, nick, blurb, options) \
157 sfi_pspec_set_group (sfi_pspec_bblock (name, nick, blurb, options), group)
158 #define sfidl_pspec_BBlock_default(group, locfile, locline, name) \
159 sfidl_pspec_BBlock (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD)
160 #define sfidl_pspec_FBlock(group, locfile, locline, name, nick, blurb, options) \
161 sfi_pspec_set_group (sfi_pspec_fblock (name, nick, blurb, options), group)
162 #define sfidl_pspec_FBlock_default(group, locfile, locline, name) \
163 sfidl_pspec_FBlock (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD)
164 #define sfidl_pspec_Rec(group, locfile, locline, name, nick, blurb, options) \
165 sfi_pspec_set_group (sfi_pspec_rec_generic (name, nick, blurb, options), group)
166 #define sfidl_pspec_Rec_default(group, locfile, locline, name, fields) \
167 sfidl_pspec_Rec (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD)
168 #define sfidl_pspec_Record(group, locfile, locline, name, nick, blurb, options, fields) \
169 sfi_pspec_set_group (sfi_pspec_rec (name, nick, blurb, fields, options), group)
170 #define sfidl_pspec_Record_default(group, locfile, locline, name, fields) \
171 sfidl_pspec_Record (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD, fields)
172 #define sfidl_pspec_Sequence(group, locfile, locline, name, nick, blurb, options, element) \
173 sfi_pspec_set_group (sfi_pspec_seq (name, nick, blurb, element, options), group)
174 #define sfidl_pspec_Sequence_default(group, locfile, locline, name, element) \
175 sfidl_pspec_Sequence (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD, element)
176 #define sfidl_pspec_Object_default(group, locfile, locline, name) \
177 sfi_pspec_set_group (sfi_pspec_proxy (name, NULL, NULL, SFI_PARAM_STANDARD), group)
178 #define sfidl_pspec_Object(group, locfile, locline, name, nick, blurb, options) \
179 sfi_pspec_set_group (sfi_pspec_proxy (name, nick, blurb, options), group)
181 #define sfidl_pspec_GEnum(group, locfile, locline, name, nick, blurb, dval, options, etype) \
182 sfi_pspec_set_group (bse_param_spec_genum (name, nick, blurb, etype, dval, options), group)
183 #define sfidl_pspec_GEnum_default(group, locfile, locline, name, etype) \
184 sfi_pspec_set_group (bse_param_spec_genum (name, NULL, NULL, etype, 0, SFI_PARAM_STANDARD), group)
185 #define sfidl_pspec_BoxedRec(group, locfile, locline, name, nick, blurb, options, rectype) \
186 sfi_pspec_set_group (bse_param_spec_boxed (name, nick, blurb, rectype, options), group)
187 #define sfidl_pspec_BoxedRec_default(group, locfile, locline, name, rectype) \
188 sfidl_pspec_BoxedRec (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD, rectype)
189 #define sfidl_pspec_BoxedSeq(group, locfile, locline, name, nick, blurb, options, seqtype) \
190 sfi_pspec_set_group (bse_param_spec_boxed (name, nick, blurb, seqtype, options), group)
191 #define sfidl_pspec_BoxedSeq_default(group, locfile, locline, name, seqtype) \
192 sfidl_pspec_BoxedSeq (group, locfile, locline, name, NULL, NULL, SFI_PARAM_STANDARD, seqtype)
193 #define sfidl_pspec_TypedObject_default(group, locfile, locline, name, otype) \
194 sfi_pspec_set_group (bse_param_spec_object (name, NULL, NULL, otype, SFI_PARAM_STANDARD), group)
195 #define sfidl_pspec_TypedObject(group, locfile, locline, name, nick, blurb, options, otype) \
196 sfi_pspec_set_group (bse_param_spec_object (name, nick, blurb, otype, options), group)