BEAST/BSE - Better Audio System and Sound Engine  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
bsedatapocket.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __BSE_DATA_POCKET_H__
3 #define __BSE_DATA_POCKET_H__
4 
5 #include <bse/bsesuper.hh>
6 
7 G_BEGIN_DECLS
8 
9 /* --- object type macros --- */
10 #define BSE_TYPE_DATA_POCKET (BSE_TYPE_ID (BseDataPocket))
11 #define BSE_DATA_POCKET(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), BSE_TYPE_DATA_POCKET, BseDataPocket))
12 #define BSE_DATA_POCKET_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), BSE_TYPE_DATA_POCKET, BseDataPocketClass))
13 #define BSE_IS_DATA_POCKET(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), BSE_TYPE_DATA_POCKET))
14 #define BSE_IS_DATA_POCKET_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), BSE_TYPE_DATA_POCKET))
15 #define BSE_DATA_POCKET_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), BSE_TYPE_DATA_POCKET, BseDataPocketClass))
16 
17 
18 /* --- data types --- */
19 typedef enum /*< skip >*/
20 {
21  BSE_DATA_POCKET_INT = 'i',
22  BSE_DATA_POCKET_INT64 = 'q',
23  BSE_DATA_POCKET_FLOAT = 'f',
24  /* BSE_DATA_POCKET_DOUBLE = 'd', */
25  BSE_DATA_POCKET_STRING = 's',
26  BSE_DATA_POCKET_OBJECT = 'o'
27 } BseDataPocketType;
28 
29 
30 /* --- BseDataPocket structs --- */
31 struct BseDataPocket;
32 struct BseDataPocketClass;
34  guint64 v_int64;
35  guint v_int;
36  gfloat v_float;
37  gchar *v_string;
38  BseItem *v_object;
39 };
41  guint id;
42  guint n_items;
43  struct Item {
44  GQuark quark;
45  gchar type;
46  BseDataPocketValue value;
47  } *items;
48 };
50  guint need_store; /* for BSE_ITEM_FLAG_AGGREGATE */
51  GSList *cr_items;
52  guint free_id;
53  guint n_entries;
54  BseDataPocketEntry *entries;
55 };
57  void (*entry_added) (BseDataPocket *pocket,
58  guint entry_id);
59  void (*entry_removed) (BseDataPocket *pocket,
60  guint entry_id);
61  void (*entry_changed) (BseDataPocket *pocket,
62  guint entry_id);
63 };
64 
65 /* --- prototypes --- */
66 guint _bse_data_pocket_create_entry (BseDataPocket *pocket);
67 gboolean _bse_data_pocket_delete_entry (BseDataPocket *pocket,
68  guint entry_id);
69 gboolean _bse_data_pocket_entry_set (BseDataPocket *pocket,
70  guint id,
71  GQuark data_quark,
72  gchar type,
73  BseDataPocketValue value);
74 gchar _bse_data_pocket_entry_get (BseDataPocket *pocket,
75  guint id,
76  GQuark data_quark,
77  BseDataPocketValue *value);
78 
79 G_END_DECLS
80 
81 #endif /* __BSE_DATA_POCKET_H__ */
Definition: bsedatapocket.hh:56
Definition: bsedatapocket.hh:33
Definition: bsedatapocket.hh:49
Definition: bsedatapocket.hh:40
Definition: bsedatapocket.hh:43
Definition: bseitem.hh:39
Definition: bseitem.hh:33