2 #ifndef __BSE_OBJECT_H__
3 #define __BSE_OBJECT_H__
16 operator BseObject* () {
return gobject_; }
18 virtual BseObject* as_bse_object ()
override {
return gobject_; }
28 #define BSE_TYPE_OBJECT (BSE_TYPE_ID (BseObject))
29 #define BSE_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_OBJECT, BseObject))
30 #define BSE_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_OBJECT, BseObjectClass))
31 #define BSE_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_OBJECT))
32 #define BSE_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_OBJECT))
33 #define BSE_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_OBJECT, BseObjectClass))
36 #define BSE_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
37 #define BSE_OBJECT_TYPE_NAME(object) (g_type_name (BSE_OBJECT_TYPE (object)))
38 #define BSE_OBJECT_UNAME(object) ((gchar*) g_datalist_id_get_data (&((GObject*) (object))->qdata, bse_quark_uname))
39 #define BSE_OBJECT_FLAGS(object) (((BseObject*) (object))->flags)
40 #define BSE_OBJECT_SET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) |= (f))
41 #define BSE_OBJECT_UNSET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) &= ~(f))
42 #define BSE_OBJECT_IS_LOCKED(object) (((BseObject*) (object))->lock_count > 0)
43 #define BSE_OBJECT_DISPOSING(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_DISPOSING) > 0)
44 #define BSE_OBJECT_IN_RESTORE(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_IN_RESTORE) > 0)
45 #define BSE_OBJECT_ID(object) (((BseObject*) (object))->unique_id)
50 BSE_OBJECT_FLAG_FIXED_UNAME = 1 << 0,
51 BSE_OBJECT_FLAG_DISPOSING = 1 << 1,
52 BSE_OBJECT_FLAG_IN_RESTORE = 1 << 2
54 #define BSE_OBJECT_FLAGS_USHIFT (3)
55 #define BSE_OBJECT_FLAGS_MAX_SHIFT (16)
72 template<class ObjectImplPtr, typename ::std::enable_if<std::is_pointer<ObjectImplPtr>::value,
bool>::type =
true>
78 return dynamic_cast<ObjectImplPtr
> (cxxobject_);
81 template<class ObjectImplP, typename ::std::enable_if<DERIVES_shared_ptr<ObjectImplP>::value,
bool>::type =
true>
84 typedef typename ObjectImplP::element_type ObjectImplT;
86 ObjectImplT *impl =
this && cxxobject_ ? as<ObjectImplT*>() : NULL;
87 return impl ? Rapicorn::shared_ptr_cast<ObjectImplT> (impl) : NULL;
94 gboolean (*editable_property) (
BseObject *object,
98 gboolean (*check_pspec_editable) (
BseObject *object,
102 void (*store_private) (
BseObject *object,
104 void (*restore_start) (
BseObject *object,
106 GTokenType (*restore_private) (
BseObject *object,
109 void (*restore_finish) (
BseObject *object,
114 BseIcon* (*get_icon) (
BseObject *object);
119 const gchar *property_group,
122 void bse_object_class_add_grouped_property (
BseObjectClass *oclass,
125 #define bse_object_class_add_param bse_object_class_add_property
127 const gchar *signal_name,
132 const gchar *signal_name,
137 const gchar *signal_name,
144 GObject* bse_object_new (GType object_type,
const gchar *first_property_name, ...);
145 GObject* bse_object_new_valist (GType object_type,
const gchar *first_property_name,
va_list var_args);
146 void bse_object_lock (gpointer
object);
147 void bse_object_unlock (gpointer
object);
148 gboolean bse_object_editable_property (gpointer
object,
149 const gchar *property);
150 BseIcon* bse_object_get_icon (
BseObject *
object);
151 void bse_object_notify_icon_changed (
BseObject *
object);
152 BseObject* bse_object_from_id (guint unique_id);
153 GList* bse_objects_list (GType type);
154 GList* bse_objects_list_by_uname (GType type,
156 void bse_object_debug_leaks (
void);
157 const gchar* bse_object_debug_name (gpointer
object);
159 void bse_object_restore_start (
BseObject *
object,
161 void bse_object_restore_finish (
BseObject *
object,
165 void bse_object_reemit_signal (gpointer src_object,
166 const gchar *src_signal,
167 gpointer dest_obejct,
168 const gchar *dest_signal);
169 void bse_object_remove_reemit (gpointer src_object,
170 const gchar *src_signal,
171 gpointer dest_object,
172 const gchar *dest_signal);
174 bse_object_proxy_notifies (gpointer src_object,
175 gpointer dest_object,
176 const gchar *dest_signal)
178 bse_object_reemit_signal (src_object,
"notify::uname", dest_object, dest_signal);
179 bse_object_reemit_signal (src_object,
"icon-changed", dest_object, dest_signal);
182 bse_object_unproxy_notifies (gpointer src_object,
183 gpointer dest_object,
184 const gchar *dest_signal)
186 bse_object_remove_reemit (src_object,
"notify::uname", dest_object, dest_signal);
187 bse_object_remove_reemit (src_object,
"icon-changed", dest_object, dest_signal);
192 extern GQuark bse_quark_uname;
193 void bse_object_marshal_signal (GClosure *closure,
194 GValue *return_value,
195 guint n_param_values,
196 const GValue *param_values,
197 gpointer invocation_hint,
198 gpointer marshal_data);
The Bse namespace contains all functions of the synthesis engine.
Definition: bstbseutils.cc:67
Definition: bstserverapi.cc:544
gchar * bse_object_strdup_debug_handle(gpointer object)
Definition: bseobject.cc:112
virtual std::string debug_name() override
See Object::debug_name()
Definition: bseobject.cc:34
Definition: bseobject.hh:60
Definition: bseobject.hh:93
Definition: bsestorage.hh:49
See also the corresponding IDL class Object.
Definition: bseserverapi.hh:401
Definition: bseobject.hh:9
virtual int64_t proxy_id() override
See Object::proxy_id()
Definition: bseobject.cc:40
Definition: bseobject.hh:68