2 #ifndef __BSE_OBJECT_H__
3 #define __BSE_OBJECT_H__
10 #define BSE_TYPE_OBJECT (BSE_TYPE_ID (BseObject))
11 #define BSE_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_OBJECT, BseObject))
12 #define BSE_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_OBJECT, BseObjectClass))
13 #define BSE_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_OBJECT))
14 #define BSE_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_OBJECT))
15 #define BSE_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_OBJECT, BseObjectClass))
18 #define BSE_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
19 #define BSE_OBJECT_TYPE_NAME(object) (g_type_name (BSE_OBJECT_TYPE (object)))
20 #define BSE_OBJECT_UNAME(object) ((gchar*) g_datalist_id_get_data (&((GObject*) (object))->qdata, bse_quark_uname))
21 #define BSE_OBJECT_FLAGS(object) (((BseObject*) (object))->flags)
22 #define BSE_OBJECT_SET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) |= (f))
23 #define BSE_OBJECT_UNSET_FLAGS(object, f) (BSE_OBJECT_FLAGS (object) &= ~(f))
24 #define BSE_OBJECT_IS_LOCKED(object) (((BseObject*) (object))->lock_count > 0)
25 #define BSE_OBJECT_DISPOSING(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_DISPOSING) > 0)
26 #define BSE_OBJECT_IN_RESTORE(object) ((BSE_OBJECT_FLAGS (object) & BSE_OBJECT_FLAG_IN_RESTORE) > 0)
27 #define BSE_OBJECT_ID(object) (((BseObject*) (object))->unique_id)
32 BSE_OBJECT_FLAG_FIXED_UNAME = 1 << 0,
33 BSE_OBJECT_FLAG_DISPOSING = 1 << 1,
34 BSE_OBJECT_FLAG_IN_RESTORE = 1 << 2
36 #define BSE_OBJECT_FLAGS_USHIFT (3)
37 #define BSE_OBJECT_FLAGS_MAX_SHIFT (16)
45 gboolean (*editable_property) (
BseObject *object,
49 gboolean (*check_pspec_editable) (
BseObject *object,
57 GTokenType (*restore_private) (
BseObject *object,
60 void (*restore_finish) (
BseObject *object,
70 const gchar *property_group,
73 void bse_object_class_add_grouped_property (
BseObjectClass *oclass,
76 #define bse_object_class_add_param bse_object_class_add_property
78 const gchar *signal_name,
83 const gchar *signal_name,
88 const gchar *signal_name,
95 void bse_object_lock (gpointer
object);
96 void bse_object_unlock (gpointer
object);
97 gboolean bse_object_editable_property (gpointer
object,
98 const gchar *property);
99 BseIcon* bse_object_get_icon (
BseObject *
object);
100 void bse_object_notify_icon_changed (
BseObject *
object);
101 gpointer bse_object_from_id (guint unique_id);
102 GList* bse_objects_list (GType type);
103 GList* bse_objects_list_by_uname (GType type,
105 void bse_object_debug_leaks (
void);
106 const gchar* bse_object_debug_name (gpointer
object);
108 void bse_object_restore_start (
BseObject *
object,
110 void bse_object_restore_finish (
BseObject *
object,
114 void bse_object_reemit_signal (gpointer src_object,
115 const gchar *src_signal,
116 gpointer dest_obejct,
117 const gchar *dest_signal);
118 void bse_object_remove_reemit (gpointer src_object,
119 const gchar *src_signal,
120 gpointer dest_object,
121 const gchar *dest_signal);
123 bse_object_proxy_notifies (gpointer src_object,
124 gpointer dest_object,
125 const gchar *dest_signal)
127 bse_object_reemit_signal (src_object,
"notify::uname", dest_object, dest_signal);
128 bse_object_reemit_signal (src_object,
"icon-changed", dest_object, dest_signal);
131 bse_object_unproxy_notifies (gpointer src_object,
132 gpointer dest_object,
133 const gchar *dest_signal)
135 bse_object_remove_reemit (src_object,
"notify::uname", dest_object, dest_signal);
136 bse_object_remove_reemit (src_object,
"icon-changed", dest_object, dest_signal);
141 extern GQuark bse_quark_uname;
142 void bse_object_marshal_signal (GClosure *closure,
143 GValue *return_value,
144 guint n_param_values,
145 const GValue *param_values,
146 gpointer invocation_hint,
147 gpointer marshal_data);
gchar * bse_object_strdup_debug_handle(gpointer object)
Definition: bseobject.cc:78
Definition: bseobject.hh:39
Definition: bseobject.hh:44
Definition: bsestorage.hh:49