BEAST
- Free Software Audio Synthesizer and Tracker
0.9.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
bse
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
;
33
union
BseDataPocketValue
{
34
guint64 v_int64;
35
guint v_int;
36
gfloat v_float;
37
gchar *v_string;
38
BseItem
*v_object;
39
};
40
struct
BseDataPocketEntry
{
41
guint id;
42
guint n_items;
43
struct
Item
{
44
GQuark quark;
45
gchar type;
46
BseDataPocketValue
value;
47
} *items;
48
};
49
struct
BseDataPocket
:
BseItem
{
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
};
56
struct
BseDataPocketClass
:
BseItemClass
{
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__ */
BseDataPocketClass
Definition:
bsedatapocket.hh:56
BseDataPocketValue
Definition:
bsedatapocket.hh:33
bsesuper.hh
BseDataPocket
Definition:
bsedatapocket.hh:49
BseDataPocketEntry
Definition:
bsedatapocket.hh:40
BseDataPocketEntry::Item
Definition:
bsedatapocket.hh:43
BseItemClass
Definition:
bseitem.hh:40
BseItem
Definition:
bseitem.hh:34
Generated on Wed Sep 16 2015 09:58:45 for BEAST - Free Software Audio Synthesizer and Tracker by
1.8.9.1