~ubuntu-branches/ubuntu/karmic/gtk-gnutella/karmic

« back to all changes in this revision

Viewing changes to src/props.tpl

  • Committer: Bazaar Package Importer
  • Author(s): Anand Kumria
  • Date: 2005-08-04 11:32:05 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20050804113205-q746i4lgo3rtlegn
Tags: 0.95.4-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
[= AutoGen5 Template =][=
2
 
#
3
 
# $Id: props.tpl,v 1.19 2004/01/18 12:28:15 rmanfredi Exp $
4
 
#
5
 
=][=
6
 
(define license (sprintf
7
 
"/*
8
 
 * Copyright (c) 2001-2003, Richard Eckart
9
 
 *
10
 
 * THIS FILE IS AUTOGENERATED! DO NOT EDIT!
11
 
 * This file is generated from %s using autogen.
12
 
 * Autogen is available at http://autogen.sourceforge.net/.
13
 
 *
14
 
 *----------------------------------------------------------------------
15
 
 * This file is part of gtk-gnutella.
16
 
 *
17
 
 *  gtk-gnutella is free software; you can redistribute it and/or modify
18
 
 *  it under the terms of the GNU General Public License as published by
19
 
 *  the Free Software Foundation; either version 2 of the License, or
20
 
 *  (at your option) any later version.
21
 
 *
22
 
 *  gtk-gnutella is distributed in the hope that it will be useful,
23
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
24
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25
 
 *  GNU General Public License for more details.
26
 
 *
27
 
 *  You should have received a copy of the GNU General Public License
28
 
 *  along with gtk-gnutella; if not, write to the Free Software
29
 
 *  Foundation, Inc.:
30
 
 *      59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
31
 
 *----------------------------------------------------------------------
32
 
 */" (def-file)))
33
 
(define prop-max (sprintf "%s_MAX" (string-upcase (get "property_set"))))
34
 
(define prop-min (sprintf "%s_MIN" (string-upcase (get "property_set"))))
35
 
(define prop-num (sprintf "%s_NUM" (string-upcase (get "property_set"))))
36
 
(define prop-end (sprintf "%s_END" (string-upcase (get "property_set"))))
37
 
(define set-name-down (string-downcase (get "property_set")))
38
 
(define prop-set (. set-name-down))
39
 
(define prop-array (sprintf "%s->props" (. prop-set)))
40
 
(define prop-offset (get "offset"))
41
 
(define (type_ok? type)
42
 
    (cond 
43
 
        ((= type "boolean") #t)
44
 
        ((= type "guint32") #t)
45
 
        ((= type "guint64") #t)
46
 
        ((= type "ip") #t)
47
 
        ((= type "string") #t)
48
 
        ((= type "storage") #t)
49
 
        ((= type "multichoice") #t) 
50
 
        (else #f)))
51
 
=][= 
52
 
IF (exist? "func_prefix")=][=
53
 
    (define func-prefix (get "func_prefix"))=][=
54
 
ELSE=][=
55
 
    (define func-prefix (. prop-set))=][=
56
 
ENDIF=][=
57
 
IF (not (exist? "property_set"))=][=
58
 
    (error "property set has no name")=][=
59
 
ENDIF=][=
60
 
IF (not (exist? "offset"))=][=
61
 
    (error "no offset for property numbering given")=][=
62
 
ENDIF=]
63
 
Generating files:
64
 
[= (sprintf "%s.h" (. set-name-down)) =]
65
 
[= (sprintf "%s_priv.h" (. set-name-down)) =]
66
 
[= (sprintf "%s.c" (. set-name-down)) =]
67
 
 
68
 
[= 
69
 
(out-switch (sprintf "%s.h" (. set-name-down)))
70
 
(. license) 
71
 
=]
72
 
 
73
 
#ifndef _[=(. set-name-down)=]_h_
74
 
#define _[=(. set-name-down)=]_h_
75
 
 
76
 
#include "prop.h"
77
 
 
78
 
#define [=(. prop-min)=] ([=offset=])
79
 
#define [=(. prop-max)=] ([=offset=]+[=(. prop-end)=]-1)
80
 
#define [=(. prop-num)=] ([=(. prop-end)=]-[=offset=])
81
 
 
82
 
typedef enum {[= 
83
 
    FOR prop =]    
84
 
    PROP_[=(string-upcase (get "name"))=][=
85
 
        IF (= (for-index) 0)=]=[=(. prop-offset)=][=ENDIF=],[= 
86
 
    ENDFOR prop =]
87
 
    [=(. prop-end)=]
88
 
} [= (. set-name-down) =]_t;
89
 
 
90
 
/*
91
 
 * Property set stub
92
 
 */
93
 
prop_set_stub_t *[=(. func-prefix)=]_get_stub(void);
94
 
 
95
 
/*
96
 
 * Property definition
97
 
 */
98
 
prop_def_t *[=(. func-prefix)=]_get_def(property_t);
99
 
property_t [=(. func-prefix)=]_get_by_name(const gchar *);
100
 
gchar *[=(. func-prefix)=]_name(property_t);
101
 
 
102
 
/*
103
 
 * Property-change listeners
104
 
 */
105
 
void [=(. func-prefix)=]_add_prop_changed_listener(
106
 
    property_t, prop_changed_listener_t, gboolean);
107
 
void [=(. func-prefix)=]_remove_prop_changed_listener(
108
 
    property_t, prop_changed_listener_t);
109
 
 
110
 
/*
111
 
 * get/set functions
112
 
 *
113
 
 * The *_val macros are shortcuts for single scalar properties.
114
 
 */
115
 
void [=(. func-prefix)=]_set_boolean(
116
 
    property_t, const gboolean *, gsize, gsize);
117
 
gboolean *[=(. func-prefix)=]_get_boolean(
118
 
    property_t, gboolean *, gsize, gsize);
119
 
 
120
 
#define [=(. func-prefix)=]_set_boolean_val(p, v) do { \
121
 
        gboolean value = v; \
122
 
        [=(. func-prefix)=]_set_boolean(p, &value, 0, 1); \
123
 
} while (0)
124
 
 
125
 
#define [=(. func-prefix)=]_get_boolean_val(p, v) do { \
126
 
        [=(. func-prefix)=]_get_boolean(p, v, 0, 1); \
127
 
} while (0)
128
 
 
129
 
 
130
 
void [=(. func-prefix)=]_set_string(property_t, const gchar *);
131
 
gchar *[=(. func-prefix)=]_get_string(property_t, gchar *, gsize);
132
 
 
133
 
void [=(. func-prefix)=]_set_guint32(
134
 
    property_t, const guint32 *, gsize, gsize);
135
 
guint32 *[=(. func-prefix)=]_get_guint32(
136
 
    property_t, guint32 *, gsize, gsize);
137
 
 
138
 
#define [=(. func-prefix)=]_set_guint32_val(p, v) do { \
139
 
        guint32 value = v; \
140
 
        [=(. func-prefix)=]_set_guint32(p, &value, 0, 1); \
141
 
} while (0)
142
 
 
143
 
#define [=(. func-prefix)=]_get_guint32_val(p, v) do { \
144
 
        [=(. func-prefix)=]_get_guint32(p, v, 0, 1); \
145
 
} while (0)
146
 
 
147
 
void [=(. func-prefix)=]_set_guint64(
148
 
    property_t, const guint64 *, gsize, gsize);
149
 
guint64 *[=(. func-prefix)=]_get_guint64(
150
 
    property_t, guint64 *, gsize, gsize);
151
 
 
152
 
#define [=(. func-prefix)=]_set_guint64_val(p, v) do { \
153
 
        guint64 value = v; \
154
 
        [=(. func-prefix)=]_set_guint64(p, &value, 0, 1); \
155
 
} while (0)
156
 
 
157
 
#define [=(. func-prefix)=]_get_guint64_val(p, v) do { \
158
 
        [=(. func-prefix)=]_get_guint64(p, v, 0, 1); \
159
 
} while (0)
160
 
 
161
 
void [=(. func-prefix)=]_set_storage(property_t, const guint8 *, gsize);
162
 
guint8 *[=(. func-prefix)=]_get_storage(property_t, guint8 *, gsize);
163
 
 
164
 
gchar *[=(. func-prefix)=]_to_string(property_t prop);
165
 
 
166
 
#endif /* _[=(. set-name-down)=]_h_ */
167
 
 
168
 
[= 
169
 
(out-switch (sprintf "%s_priv.h" (. set-name-down))) 
170
 
(. license)
171
 
=]
172
 
 
173
 
#ifndef _[=(. set-name-down)=]_priv_h_
174
 
#define _[=(. set-name-down)=]_priv_h_
175
 
 
176
 
#include <glib.h>
177
 
 
178
 
[= FOR prop =][= 
179
 
IF (exist? "data.value") =][=
180
 
(define item (get "data.value")) =][=
181
 
ELSE =][=
182
 
(define item (string-downcase (get "name"))) =][=
183
 
ENDIF=][=
184
 
CASE type=][= 
185
 
= boolean=]extern gboolean [=(. item)=][= 
186
 
= guint32=]extern guint32  [=(. item)=][= 
187
 
= guint64=]extern guint64  [=(. item)=][= 
188
 
= ip     =]extern guint32  [=(. item)=][= 
189
 
= multichoice=]extern guint32  [=(. item)=][= 
190
 
= string =]extern gchar   *[=(. item)=][= 
191
 
= storage=]extern guint8   [=(. item)=][= 
192
 
ESAC =][= 
193
 
IF (exist? "vector_size") =][[=vector_size=]][=ENDIF=];
194
 
[= ENDFOR prop =]
195
 
 
196
 
prop_set_t *[=(. func-prefix)=]_init(void);
197
 
void [=(. func-prefix)=]_shutdown(void);
198
 
 
199
 
#endif /* _[=(. set-name-down)=]_priv_h_ */
200
 
 
201
 
[= 
202
 
(out-switch (sprintf "%s.c" (. set-name-down))) 
203
 
(. license)
204
 
=]
205
 
 
206
 
#include "prop.h"
207
 
#include "eval.h"
208
 
#include "[=(sprintf "%s.h" (. set-name-down))=]"
209
 
 
210
 
/*
211
 
 * Includes specified by "uses"-statement in .ag file
212
 
 */
213
 
[= FOR uses =]#include "[=uses=]"
214
 
[= ENDFOR uses =]
215
 
#include "override.h"           /* Must be the last header included */
216
 
 
217
 
[= 
218
 
FOR prop =][= 
219
 
    (if (exist? "data.value")
220
 
        (define item (get "data.value"))
221
 
        (define item (string-downcase (get "name"))))=][= 
222
 
    IF (= (get "type") "storage")=]
223
 
guint8   [=(. item)=][[=vector_size=]];[=
224
 
    ELSE=][=
225
 
        (cond
226
 
            ((= (get "type") "boolean") 
227
 
                (define vtype "gboolean ")
228
 
                (define vdef (get "data.default")))
229
 
            ((= (get "type") "guint32") 
230
 
                (define vtype "guint32  ")
231
 
                (define vdef (get "data.default")))
232
 
            ((= (get "type") "guint64") 
233
 
                (define vtype "guint64  ")
234
 
                (define vdef (get "data.default")))
235
 
            ((= (get "type") "ip") 
236
 
                (define vtype "guint32  ")
237
 
                (define vdef (get "data.default")))
238
 
            ((= (get "type") "multichoice") 
239
 
                (define vtype "guint32  ")
240
 
                (define vdef (get "data.default")))
241
 
            ((= (get "type") "string") 
242
 
                (define vtype "gchar   *")
243
 
                (if (= (get "data.default") "NULL")
244
 
                    (define vdef (sprintf "NULL"))
245
 
                    (define vdef (sprintf "\"%s\"" (get "data.default"))))))
246
 
        =][= 
247
 
        IF (exist? "vector_size")=]
248
 
[=  (. vtype)=][=(. item)=][[=vector_size=]]     = [=(. vdef)=];
249
 
[=  (. vtype)=][=(. item)=]_def[[=vector_size=]] = [=(. vdef)=];[=
250
 
        ELSE=]
251
 
[=  (. vtype)=][=(. item)=]     = [=(. vdef)=];
252
 
[=  (. vtype)=][=(. item)=]_def = [=(. vdef)=];[=
253
 
        ENDIF=][=
254
 
        IF (= (get "type") "multichoice")=]
255
 
prop_def_choice_t [=(. item)=]_choices[] = { [=    
256
 
            FOR choice =]
257
 
    {"[=name=]", [=value=]},[=
258
 
            ENDFOR choice =]
259
 
    {NULL, 0}
260
 
};[=
261
 
        ENDIF =][=
262
 
    ENDIF=][=
263
 
ENDFOR prop =]
264
 
 
265
 
static prop_set_t *[=(. prop-set)=] = NULL;
266
 
 
267
 
prop_set_t *[=(. func-prefix)=]_init(void) {
268
 
    guint32 n;
269
 
 
270
 
    [=(. prop-set)=] = g_new(prop_set_t, 1);
271
 
    [=(. prop-set)=]->name   = "[=property_set=]";
272
 
    [=(. prop-set)=]->desc   = "";
273
 
    [=(. prop-set)=]->size   = [=(. prop-num)=];
274
 
    [=(. prop-set)=]->offset = [=offset=];
275
 
    [=(. prop-set)=]->mtime  = 0;
276
 
    [=(. prop-set)=]->props  = g_new(prop_def_t, [=(. prop-num)=]);
277
 
    [=(. prop-set)=]->get_stub = [=(. func-prefix)=]_get_stub;
278
 
    [=(. prop-set)=]->dirty = FALSE;
279
 
    [=(. prop-set)=]->byName = NULL;[=
280
 
 
281
 
FOR prop =][=
282
 
    (define current-prop (sprintf "%s[%u]" 
283
 
        (. prop-array) (for-index)))
284
 
 
285
 
    (if (not (and (exist? "type") (type_ok? (get "type"))))
286
 
        (error "type missing or invalid"))
287
 
 
288
 
    (if (not (exist? "name"))
289
 
        (error "no name given"))
290
 
 
291
 
    (if (not (exist? "desc"))
292
 
        (error "no description given"))
293
 
 
294
 
    (if (exist? "data.value")
295
 
        (define prop-var-name (get "data.value"))        
296
 
        (define prop-var-name (string-downcase (get "name"))))
297
 
 
298
 
    (if (and (not (exist? "data.default")) (not (= (get "type") "storage")))
299
 
        (error "no default value given"))
300
 
    
301
 
    (if (and (not (exist? "vector_size")) (= (get "type") "storage"))
302
 
        (error "must give vector_size for a storage-type property"))
303
 
    =]
304
 
 
305
 
 
306
 
    /*
307
 
     * PROP_[=(string-upcase (get "name"))=]:
308
 
     *
309
 
     * General data:
310
 
     */
311
 
    [= IF (exist? "cfgvar") =][=
312
 
        (. current-prop) =].name = "[= cfgvar =]";[= 
313
 
    ELSE =][=
314
 
        (. current-prop) =].name = "[= name =]";[= 
315
 
    ENDIF =]
316
 
    [=(. current-prop)=].desc = _("[=desc=]");
317
 
    [=(. current-prop)=].ev_changed = event_new("[= name =]_changed");[=
318
 
    IF (exist? "save") =]
319
 
    [=  (. current-prop) =].save = [=save=];[= 
320
 
    ELSE =]
321
 
    [=  (. current-prop) =].save = TRUE;[= 
322
 
    ENDIF =][=
323
 
    IF (exist? "vector_size") =]
324
 
    [=  (. current-prop) =].vector_size = [=vector_size=];[= 
325
 
        (define prop-var (sprintf "%s" (. prop-var-name)))=][=
326
 
    ELSE =]
327
 
    [=  (. current-prop) =].vector_size = 1;[= 
328
 
        (define prop-var (sprintf "&%s" (. prop-var-name)))=][=
329
 
    ENDIF =][=
330
 
    (define prop-def-var (sprintf "%s_def" (. prop-var)))
331
 
    =]
332
 
 
333
 
    /* Type specific data: */[= 
334
 
    CASE type =][= 
335
 
 
336
 
    = boolean =][=
337
 
    IF (not (exist? "data.default")) =][=
338
 
        (error "no default given")=][=
339
 
    ENDIF=]
340
 
    [=(. current-prop)=].type               = PROP_TYPE_BOOLEAN;
341
 
    [=(. current-prop)=].data.boolean.def   = [=(. prop-def-var)=];
342
 
    [=(. current-prop)=].data.boolean.value = [=(. prop-var)=];[= 
343
 
    
344
 
    = storage =]
345
 
    [=(. current-prop)=].type               = PROP_TYPE_STORAGE;
346
 
    [=(. current-prop)=].data.storage.value = [=(. prop-var)=];
347
 
    memset([=(. prop-var)=], 0, [=(. current-prop)=].vector_size);[=
348
 
 
349
 
    = guint32 =]
350
 
    [=(. current-prop)=].type               = PROP_TYPE_GUINT32;
351
 
    [=(. current-prop)=].data.guint32.def   = [=(. prop-def-var)=];
352
 
    [=(. current-prop)=].data.guint32.value = [=(. prop-var)=];
353
 
    [=(. current-prop)=].data.guint32.choices = NULL;[=
354
 
    IF (exist? "data.max")=]
355
 
    [=(. current-prop)=].data.guint32.max   = [=data.max=];[=
356
 
    ELSE=]
357
 
    [=(. current-prop)=].data.guint32.max   = 0xFFFFFFFF;[=
358
 
    ENDIF=][=
359
 
    IF (exist? "data.min")=]
360
 
    [=(. current-prop)=].data.guint32.min   = [=data.min=];[= 
361
 
    ELSE=]
362
 
    [=(. current-prop)=].data.guint32.min   = 0x00000000;[= 
363
 
    ENDIF=][=
364
 
 
365
 
    = guint64 =]
366
 
    [=(. current-prop)=].type               = PROP_TYPE_GUINT64;
367
 
    [=(. current-prop)=].data.guint64.def   = [=(. prop-def-var)=];
368
 
    [=(. current-prop)=].data.guint64.value = [=(. prop-var)=];
369
 
    [=(. current-prop)=].data.guint64.choices = NULL;[=
370
 
    IF (exist? "data.max")=]
371
 
    [=(. current-prop)=].data.guint64.max   = [=data.max=];[=
372
 
    ELSE=]
373
 
    [=(. current-prop)=].data.guint64.max   = (guint64) -1;[=
374
 
    ENDIF=][=
375
 
    IF (exist? "data.min")=]
376
 
    [=(. current-prop)=].data.guint64.min   = [=data.min=];[= 
377
 
    ELSE=]
378
 
    [=(. current-prop)=].data.guint64.min   = 0x0000000000000000;[= 
379
 
    ENDIF=][=
380
 
 
381
 
        = ip =]
382
 
    [=(. current-prop)=].type               = PROP_TYPE_IP;
383
 
    [=(. current-prop)=].data.guint32.def   = [=(. prop-def-var)=];
384
 
    [=(. current-prop)=].data.guint32.value = [=(. prop-var)=];
385
 
    [=(. current-prop)=].data.guint32.choices = NULL;
386
 
    [=(. current-prop)=].data.guint32.max   = 0xFFFFFFFF;
387
 
    [=(. current-prop)=].data.guint32.min   = 0x00000000;[= 
388
 
 
389
 
    = multichoice =]
390
 
    [=(. current-prop)=].type               = PROP_TYPE_MULTICHOICE;
391
 
    [=(. current-prop)=].data.guint32.def   = [=(. prop-def-var)=];
392
 
    [=(. current-prop)=].data.guint32.value = [=(. prop-var)=];
393
 
    [=(. current-prop)=].data.guint32.max   = 0xFFFFFFFF;
394
 
    [=(. current-prop)=].data.guint32.min   = 0x00000000;
395
 
    [=(. current-prop)=].data.guint32.choices = [=
396
 
        (sprintf "%s_choices" (. prop-var-name    ))=];[=
397
 
 
398
 
    = string =]
399
 
    [=(. current-prop)=].type               = PROP_TYPE_STRING;
400
 
    [=(. current-prop)=].data.string.def    = [=(. prop-def-var)=];
401
 
    [=(. current-prop)=].data.string.value  = [=(. prop-var)=];
402
 
    if ([=(. current-prop)=].data.string.def) {
403
 
        *[=(. current-prop)=].data.string.value =
404
 
            g_strdup(eval_subst(*[=(. current-prop)=].data.string.def));
405
 
    }[= 
406
 
    ESAC =][=
407
 
ENDFOR prop=]
408
 
 
409
 
    [=(. prop-set)=]->byName = g_hash_table_new(g_str_hash, g_str_equal);
410
 
    for (n = 0; n < [=(. prop-num)=]; n ++) {
411
 
        g_hash_table_insert([=(. prop-set)=]->byName, 
412
 
            [=(. prop-array)=][n].name, GINT_TO_POINTER(n+[=offset=]));
413
 
    }
414
 
 
415
 
    return [=(. prop-set)=];
416
 
}
417
 
 
418
 
/*
419
 
 * [=(. func-prefix)=]_shutdown:
420
 
 *
421
 
 * Free memory allocated by the property set.
422
 
 */
423
 
void [=(. func-prefix)=]_shutdown(void) {
424
 
    gint n;
425
 
 
426
 
    if ([=(. prop-set)=]->byName) {
427
 
        g_hash_table_destroy([=(. prop-set)=]->byName);
428
 
        [=(. prop-set)=]->byName = NULL;
429
 
    }
430
 
 
431
 
    for (n = 0; n < [=(. prop-num)=]; n ++) {
432
 
        if ([=(. prop-set)=]->props[n].type == PROP_TYPE_STRING) {
433
 
                        gchar **p = [=(. prop-array)=][n].data.string.value;
434
 
            struct event *e = [=(. prop-array)=][n].ev_changed;
435
 
                        if (*p)
436
 
                                G_FREE_NULL(*p);
437
 
            if (e)
438
 
                event_destroy(e);    
439
 
        }
440
 
    }
441
 
 
442
 
    G_FREE_NULL([=(. prop-array)=]);
443
 
    G_FREE_NULL([=(. prop-set)=]);
444
 
}
445
 
 
446
 
prop_def_t *[=(. func-prefix)=]_get_def(property_t p)
447
 
{
448
 
    return prop_get_def([=(. prop-set)=], p);
449
 
}
450
 
 
451
 
/*
452
 
 * [=(. func-prefix)=]_add_prop_changed_listener:
453
 
 *
454
 
 * Add a change listener to a given property. If init is TRUE then
455
 
 * the listener is immediately called.
456
 
 */
457
 
void [=(. func-prefix)=]_add_prop_changed_listener(
458
 
    property_t prop, prop_changed_listener_t l, gboolean init)
459
 
{
460
 
    prop_add_prop_changed_listener([=(. prop-set)=], prop, l, init);
461
 
}
462
 
 
463
 
/*
464
 
 * [=(. func-prefix)=]_add_prop_changed_listener_full:
465
 
 *
466
 
 * Add a change listener to a given property. If init is TRUE then
467
 
 * the listener is immediately called. 
468
 
 */
469
 
void [=(. func-prefix)=]_add_prop_changed_listener_full(
470
 
    property_t prop, prop_changed_listener_t l, gboolean init, 
471
 
    enum frequency_type freq, guint32 interval)
472
 
{
473
 
    prop_add_prop_changed_listener_full([=(. prop-set)=], prop, l, init,
474
 
        freq, interval);
475
 
}
476
 
 
477
 
void [=(. func-prefix)=]_remove_prop_changed_listener(
478
 
    property_t prop, prop_changed_listener_t l)
479
 
{
480
 
    prop_remove_prop_changed_listener([=(. prop-set)=], prop, l);
481
 
}
482
 
 
483
 
void [=(. func-prefix)=]_set_boolean(
484
 
    property_t prop, const gboolean *src, gsize offset, gsize length)
485
 
{
486
 
    prop_set_boolean([=(. prop-set)=], prop, src, offset, length);
487
 
}
488
 
 
489
 
gboolean *[=(. func-prefix)=]_get_boolean(
490
 
    property_t prop, gboolean *t, gsize offset, gsize length)
491
 
{
492
 
    return prop_get_boolean([=(. prop-set)=], prop, t, offset, length);
493
 
}
494
 
 
495
 
void [=(. func-prefix)=]_set_guint32(
496
 
    property_t prop, const guint32 *src, gsize offset, gsize length)
497
 
{
498
 
    prop_set_guint32([=(. prop-set)=], prop, src, offset, length);
499
 
}
500
 
 
501
 
guint32 *[=(. func-prefix)=]_get_guint32(
502
 
    property_t prop, guint32 *t, gsize offset, gsize length)
503
 
{
504
 
    return prop_get_guint32([=(. prop-set)=], prop, t, offset, length);
505
 
}
506
 
 
507
 
void [=(. func-prefix)=]_set_guint64(
508
 
    property_t prop, const guint64 *src, gsize offset, gsize length)
509
 
{
510
 
    prop_set_guint64([=(. prop-set)=], prop, src, offset, length);
511
 
}
512
 
 
513
 
guint64 *[=(. func-prefix)=]_get_guint64(
514
 
    property_t prop, guint64 *t, gsize offset, gsize length)
515
 
{
516
 
    return prop_get_guint64([=(. prop-set)=], prop, t, offset, length);
517
 
}
518
 
 
519
 
void [=(. func-prefix)=]_set_string(property_t prop, const gchar *val)
520
 
{
521
 
    prop_set_string([=(. prop-set)=], prop, val);
522
 
}
523
 
 
524
 
gchar *[=(. func-prefix)=]_get_string(property_t prop, gchar *t, gsize size)
525
 
{
526
 
    return prop_get_string([=(. prop-set)=], prop, t, size);
527
 
}
528
 
 
529
 
void [=(. func-prefix)=]_set_storage(property_t p, const guint8 *v, gsize l)
530
 
{
531
 
    prop_set_storage([=(. prop-set)=], p, v, l);
532
 
}
533
 
 
534
 
guint8 *[=(. func-prefix)=]_get_storage(property_t p, guint8 *t, gsize l)
535
 
{
536
 
    return prop_get_storage([=(. prop-set)=], p, t, l);
537
 
}
538
 
 
539
 
gchar *[=(. func-prefix)=]_to_string(property_t prop)
540
 
{
541
 
    return prop_to_string([=(. prop-set)=], prop);
542
 
}
543
 
 
544
 
gchar *[=(. func-prefix)=]_name(property_t p)
545
 
{
546
 
    return prop_name([=(. prop-set)=], p);
547
 
}
548
 
 
549
 
property_t [=(. func-prefix)=]_get_by_name(const gchar *name)
550
 
{
551
 
    return GPOINTER_TO_UINT(
552
 
        g_hash_table_lookup([=(. prop-set)=]->byName, name));
553
 
}
554
 
 
555
 
 
556
 
/*
557
 
 * [=(. func-prefix)=]_get_stub:
558
 
 *
559
 
 * Returns a new stub struct for this property set. Just g_free it
560
 
 * when it is no longer needed. All fields are read only!
561
 
 */
562
 
prop_set_stub_t *[=(. func-prefix)=]_get_stub(void) 
563
 
{
564
 
    prop_set_stub_t *stub;
565
 
 
566
 
    stub          = g_new0(prop_set_stub_t, 1);
567
 
    stub->size    = [=(. prop-num)=];
568
 
    stub->offset  = [=(. prop-min)=];
569
 
    stub->get_def = [=(. func-prefix)=]_get_def;
570
 
    stub->get_by_name = [=(. func-prefix)=]_get_by_name;
571
 
    stub->to_string = [=(. func-prefix)=]_to_string;
572
 
 
573
 
    stub->prop_changed_listener.add = 
574
 
        [=(. func-prefix)=]_add_prop_changed_listener;
575
 
    stub->prop_changed_listener.add_full = 
576
 
        [=(. func-prefix)=]_add_prop_changed_listener_full;
577
 
    stub->prop_changed_listener.remove = 
578
 
        [=(. func-prefix)=]_remove_prop_changed_listener;
579
 
 
580
 
    stub->boolean.get = [=(. func-prefix)=]_get_boolean;
581
 
    stub->boolean.set = [=(. func-prefix)=]_set_boolean;
582
 
 
583
 
    stub->guint32.get = [=(. func-prefix)=]_get_guint32;
584
 
    stub->guint32.set = [=(. func-prefix)=]_set_guint32;
585
 
 
586
 
    stub->guint64.get = [=(. func-prefix)=]_get_guint64;
587
 
    stub->guint64.set = [=(. func-prefix)=]_set_guint64;
588
 
 
589
 
    stub->string.get = [=(. func-prefix)=]_get_string;
590
 
    stub->string.set = [=(. func-prefix)=]_set_string;
591
 
 
592
 
    stub->storage.get = [=(. func-prefix)=]_get_storage;
593
 
    stub->storage.set = [=(. func-prefix)=]_set_storage;
594
 
 
595
 
    return stub;
596
 
}