2 #ifndef __BSE_OBJECT_H__
3 #define __BSE_OBJECT_H__
16 void changed (
const String &what);
17 operator BseObject* () {
return gobject_; }
19 virtual BseObject* as_bse_object ()
override {
return gobject_; }
29 #define BSE_TYPE_OBJECT (BSE_TYPE_ID (BseObject))
30 #define BSE_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_OBJECT, BseObject))
31 #define BSE_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_OBJECT, BseObjectClass))
32 #define BSE_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_OBJECT))
33 #define BSE_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_OBJECT))
34 #define BSE_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_OBJECT, BseObjectClass))
37 #define BSE_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
38 #define BSE_OBJECT_TYPE_NAME(object) (g_type_name (BSE_OBJECT_TYPE (object)))
39 #define BSE_OBJECT_UNAME(object) ((gchar*) g_datalist_id_get_data (&((GObject*) (object))->qdata, bse_quark_uname))
40 #define BSE_OBJECT_FLAGS(object) (((BseObject*) (object))->flags)
41 #define BSE_OBJECT_SET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) |= (f))
42 #define BSE_OBJECT_UNSET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) &= ~(f))
43 #define BSE_OBJECT_IS_LOCKED(object) (((BseObject*) (object))->lock_count > 0)
44 #define BSE_OBJECT_DISPOSING(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_DISPOSING) > 0)
45 #define BSE_OBJECT_IN_RESTORE(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_IN_RESTORE) > 0)
46 #define BSE_OBJECT_ID(object) (((BseObject*) (object))->unique_id)
51 BSE_OBJECT_FLAG_FIXED_UNAME = 1 << 0,
52 BSE_OBJECT_FLAG_DISPOSING = 1 << 1,
53 BSE_OBJECT_FLAG_IN_RESTORE = 1 << 2
55 #define BSE_OBJECT_FLAGS_USHIFT (3)
56 #define BSE_OBJECT_FLAGS_MAX_SHIFT (16)
73 template<class ObjectImplPtr, typename ::std::enable_if<std::is_pointer<ObjectImplPtr>::value,
bool>::type =
true>
79 return dynamic_cast<ObjectImplPtr
> (cxxobject_);
82 template<class ObjectImplP, typename ::std::enable_if<DERIVES_shared_ptr<ObjectImplP>::value,
bool>::type =
true>
85 typedef typename ObjectImplP::element_type ObjectImplT;
87 ObjectImplT *impl =
this && cxxobject_ ? as<ObjectImplT*>() : NULL;
88 return impl ? Rapicorn::shared_ptr_cast<ObjectImplT> (impl) : NULL;
95 gboolean (*editable_property) (
BseObject *object,
99 gboolean (*check_pspec_editable) (
BseObject *object,
103 void (*store_private) (
BseObject *object,
105 void (*restore_start) (
BseObject *object,
107 GTokenType (*restore_private) (
BseObject *object,
110 void (*restore_finish) (
BseObject *object,
115 BseIc0n* (*get_icon) (
BseObject *object);
120 const gchar *property_group,
123 void bse_object_class_add_grouped_property (
BseObjectClass *oclass,
126 #define bse_object_class_add_param bse_object_class_add_property
128 const gchar *signal_name,
133 const gchar *signal_name,
138 const gchar *signal_name,
145 GObject* bse_object_new (GType object_type,
const gchar *first_property_name, ...);
146 GObject* bse_object_new_valist (GType object_type,
const gchar *first_property_name,
va_list var_args);
147 void bse_object_lock (gpointer
object);
148 void bse_object_unlock (gpointer
object);
149 gboolean bse_object_editable_property (gpointer
object,
150 const gchar *property);
151 BseIc0n* bse_object_get_icon (
BseObject *
object);
152 void bse_object_notify_icon_changed (
BseObject *
object);
153 BseObject* bse_object_from_id (guint unique_id);
154 GList* bse_objects_list (GType type);
155 GList* bse_objects_list_by_uname (GType type,
157 void bse_object_debug_leaks (
void);
158 const gchar* bse_object_debug_name (gpointer
object);
160 void bse_object_restore_start (
BseObject *
object,
162 void bse_object_restore_finish (
BseObject *
object,
166 void bse_object_reemit_signal (gpointer src_object,
167 const gchar *src_signal,
168 gpointer dest_obejct,
169 const gchar *dest_signal);
170 void bse_object_remove_reemit (gpointer src_object,
171 const gchar *src_signal,
172 gpointer dest_object,
173 const gchar *dest_signal);
175 bse_object_proxy_notifies (gpointer src_object,
176 gpointer dest_object,
177 const gchar *dest_signal)
179 bse_object_reemit_signal (src_object,
"notify::uname", dest_object, dest_signal);
180 bse_object_reemit_signal (src_object,
"icon-changed", dest_object, dest_signal);
183 bse_object_unproxy_notifies (gpointer src_object,
184 gpointer dest_object,
185 const gchar *dest_signal)
187 bse_object_remove_reemit (src_object,
"notify::uname", dest_object, dest_signal);
188 bse_object_remove_reemit (src_object,
"icon-changed", dest_object, dest_signal);
193 extern GQuark bse_quark_uname;
194 void bse_object_marshal_signal (GClosure *closure,
195 GValue *return_value,
196 guint n_param_values,
197 const GValue *param_values,
198 gpointer invocation_hint,
199 gpointer marshal_data);
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:88
Definition: bstserverapi.cc:585
gchar * bse_object_strdup_debug_handle(gpointer object)
Definition: bseobject.cc:117
virtual std::string debug_name() override
See Object::debug_name()
Definition: bseobject.cc:33
Definition: bseobject.hh:61
Definition: bseobject.hh:94
Definition: bsestorage.hh:49
See also the corresponding IDL class Object.
Definition: bseserverapi.hh:600
Definition: bseobject.hh:9
virtual int64_t proxy_id() override
See Object::proxy_id()
Definition: bseobject.cc:39
Definition: bseobject.hh:69