LMMS
Loading...
Searching...
No Matches
atom-forge.h
Go to the documentation of this file.
1/*
2 Copyright 2008-2016 David Robillard <http://drobilla.net>
3
4 Permission to use, copy, modify, and/or distribute this software for any
5 purpose with or without fee is hereby granted, provided that the above
6 copyright notice and this permission notice appear in all copies.
7
8 THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*/
16
41
47
48#ifndef LV2_ATOM_FORGE_H
49#define LV2_ATOM_FORGE_H
50
51#include <assert.h>
52
53#include "atom.h"
54#include "atom-util.h"
55#include "urid.h"
56
57#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
58# define LV2_ATOM_FORGE_DEPRECATED __attribute__((__deprecated__))
59#else
60# define LV2_ATOM_FORGE_DEPRECATED
61#endif
62
63#ifdef __cplusplus
64extern "C" {
65#else
66# include <stdbool.h>
67#endif
68
69// Disable deprecation warnings for Blank and Resource
70#if defined(__clang__)
71# pragma clang diagnostic push
72# pragma clang diagnostic ignored "-Wdeprecated-declarations"
73#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
74# pragma GCC diagnostic push
75# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
76#endif
77
80
82typedef intptr_t LV2_Atom_Forge_Ref;
83
87 const void* buf,
89
91typedef LV2_Atom*
92(*LV2_Atom_Forge_Deref_Func)(LV2_Atom_Forge_Sink_Handle handle,
94
100
132
133static inline void
135
142static inline void
144{
146 forge->Blank = map->map(map->handle, LV2_ATOM__Blank);
147 forge->Bool = map->map(map->handle, LV2_ATOM__Bool);
148 forge->Chunk = map->map(map->handle, LV2_ATOM__Chunk);
149 forge->Double = map->map(map->handle, LV2_ATOM__Double);
150 forge->Float = map->map(map->handle, LV2_ATOM__Float);
151 forge->Int = map->map(map->handle, LV2_ATOM__Int);
152 forge->Long = map->map(map->handle, LV2_ATOM__Long);
153 forge->Literal = map->map(map->handle, LV2_ATOM__Literal);
154 forge->Object = map->map(map->handle, LV2_ATOM__Object);
155 forge->Path = map->map(map->handle, LV2_ATOM__Path);
156 forge->Property = map->map(map->handle, LV2_ATOM__Property);
157 forge->Resource = map->map(map->handle, LV2_ATOM__Resource);
158 forge->Sequence = map->map(map->handle, LV2_ATOM__Sequence);
159 forge->String = map->map(map->handle, LV2_ATOM__String);
160 forge->Tuple = map->map(map->handle, LV2_ATOM__Tuple);
161 forge->URI = map->map(map->handle, LV2_ATOM__URI);
162 forge->URID = map->map(map->handle, LV2_ATOM__URID);
163 forge->Vector = map->map(map->handle, LV2_ATOM__Vector);
164}
165
167static inline LV2_Atom*
169{
170 if (forge->buf) {
171 return (LV2_Atom*)ref;
172 } else {
173 return forge->deref(forge->handle, ref);
174 }
175}
176
181
188static inline LV2_Atom_Forge_Ref
192{
193 frame->parent = forge->stack;
194 frame->ref = ref;
195 forge->stack = frame;
196 return ref;
197}
198
200static inline void
202{
203 assert(frame == forge->stack);
204 forge->stack = frame->parent;
205}
206
208static inline bool
210{
211 return forge->stack && forge->stack->ref &&
212 (lv2_atom_forge_deref(forge, forge->stack->ref)->type == type);
213}
214
216static inline bool
218{
219 return (type == forge->Object ||
220 type == forge->Blank ||
221 type == forge->Resource);
222}
223
225static inline bool
228 const LV2_Atom_Object_Body* body)
229{
230 return (type == forge->Blank ||
231 (type == forge->Object && body->id == 0));
232}
233
239
241static inline void
243{
244 forge->buf = buf;
245 forge->size = (uint32_t)size;
246 forge->offset = 0;
247 forge->deref = NULL;
248 forge->sink = NULL;
249 forge->handle = NULL;
250 forge->stack = NULL;
251}
252
267static inline void
272{
273 forge->buf = NULL;
274 forge->size = forge->offset = 0;
275 forge->deref = deref;
276 forge->sink = sink;
277 forge->handle = handle;
278 forge->stack = NULL;
279}
280
286
292static inline LV2_Atom_Forge_Ref
294{
296 if (forge->sink) {
297 out = forge->sink(forge->handle, data, size);
298 } else {
300 uint8_t* mem = forge->buf + forge->offset;
301 if (forge->offset + size > forge->size) {
302 return 0;
303 }
304 forge->offset += size;
305 memcpy(mem, data, size);
306 }
307 for (LV2_Atom_Forge_Frame* f = forge->stack; f; f = f->parent) {
308 lv2_atom_forge_deref(forge, f->ref)->size += size;
309 }
310 return out;
311}
312
314static inline void
316{
317 const uint64_t pad = 0;
318 const uint32_t pad_size = lv2_atom_pad_size(written) - written;
319 lv2_atom_forge_raw(forge, &pad, pad_size);
320}
321
323static inline LV2_Atom_Forge_Ref
325{
327 if (out) {
328 lv2_atom_forge_pad(forge, size);
329 }
330 return out;
331}
332
334static inline LV2_Atom_Forge_Ref
336 const char* str,
337 uint32_t len)
338{
339 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, str, len);
340 if (out && (out = lv2_atom_forge_raw(forge, "", 1))) {
341 lv2_atom_forge_pad(forge, len + 1);
342 }
343 return out;
344}
345
351
353static inline LV2_Atom_Forge_Ref
355{
356 const LV2_Atom a = { size, type };
357 return lv2_atom_forge_raw(forge, &a, sizeof(a));
358}
359
361static inline LV2_Atom_Forge_Ref
363{
364 if (lv2_atom_forge_top_is(forge, forge->Vector)) {
365 return lv2_atom_forge_raw(forge, LV2_ATOM_BODY_CONST(a), a->size);
366 } else {
368 forge, a, (uint32_t)sizeof(LV2_Atom) + a->size);
369 }
370}
371
373static inline LV2_Atom_Forge_Ref
375{
376 const LV2_Atom_Int a = { { sizeof(val), forge->Int }, val };
377 return lv2_atom_forge_primitive(forge, &a.atom);
378}
379
381static inline LV2_Atom_Forge_Ref
383{
384 const LV2_Atom_Long a = { { sizeof(val), forge->Long }, val };
385 return lv2_atom_forge_primitive(forge, &a.atom);
386}
387
389static inline LV2_Atom_Forge_Ref
391{
392 const LV2_Atom_Float a = { { sizeof(val), forge->Float }, val };
393 return lv2_atom_forge_primitive(forge, &a.atom);
394}
395
397static inline LV2_Atom_Forge_Ref
399{
400 const LV2_Atom_Double a = { { sizeof(val), forge->Double }, val };
401 return lv2_atom_forge_primitive(forge, &a.atom);
402}
403
405static inline LV2_Atom_Forge_Ref
407{
408 const LV2_Atom_Bool a = { { sizeof(int32_t), forge->Bool }, val ? 1 : 0 };
409 return lv2_atom_forge_primitive(forge, &a.atom);
410}
411
413static inline LV2_Atom_Forge_Ref
415{
416 const LV2_Atom_URID a = { { sizeof(id), forge->URID }, id };
417 return lv2_atom_forge_primitive(forge, &a.atom);
418}
419
421static inline LV2_Atom_Forge_Ref
424 const char* str,
425 uint32_t len)
426{
427 const LV2_Atom_String a = { { len + 1, type } };
428 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a));
429 if (out) {
430 if (!lv2_atom_forge_string_body(forge, str, len)) {
431 LV2_Atom* atom = lv2_atom_forge_deref(forge, out);
432 atom->size = atom->type = 0;
433 out = 0;
434 }
435 }
436 return out;
437}
438
440static inline LV2_Atom_Forge_Ref
441lv2_atom_forge_string(LV2_Atom_Forge* forge, const char* str, uint32_t len)
442{
443 return lv2_atom_forge_typed_string(forge, forge->String, str, len);
444}
445
451static inline LV2_Atom_Forge_Ref
453{
454 return lv2_atom_forge_typed_string(forge, forge->URI, uri, len);
455}
456
458static inline LV2_Atom_Forge_Ref
459lv2_atom_forge_path(LV2_Atom_Forge* forge, const char* path, uint32_t len)
460{
461 return lv2_atom_forge_typed_string(forge, forge->Path, path, len);
462}
463
465static inline LV2_Atom_Forge_Ref
467 const char* str,
468 uint32_t len,
469 uint32_t datatype,
470 uint32_t lang)
471{
472 const LV2_Atom_Literal a = {
473 { (uint32_t)(sizeof(LV2_Atom_Literal) - sizeof(LV2_Atom) + len + 1),
474 forge->Literal },
475 { datatype,
476 lang }
477 };
478 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a));
479 if (out) {
480 if (!lv2_atom_forge_string_body(forge, str, len)) {
481 LV2_Atom* atom = lv2_atom_forge_deref(forge, out);
482 atom->size = atom->type = 0;
483 out = 0;
484 }
485 }
486 return out;
487}
488
490static inline LV2_Atom_Forge_Ref
493 uint32_t child_size,
494 uint32_t child_type)
495{
496 const LV2_Atom_Vector a = {
497 { sizeof(LV2_Atom_Vector_Body), forge->Vector },
498 { child_size, child_type }
499 };
500 return lv2_atom_forge_push(
501 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
502}
503
505static inline LV2_Atom_Forge_Ref
507 uint32_t child_size,
508 uint32_t child_type,
509 uint32_t n_elems,
510 const void* elems)
511{
512 const LV2_Atom_Vector a = {
513 { (uint32_t)(sizeof(LV2_Atom_Vector_Body) + n_elems * child_size),
514 forge->Vector },
515 { child_size, child_type }
516 };
517 LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a));
518 if (out) {
519 lv2_atom_forge_write(forge, elems, child_size * n_elems);
520 }
521 return out;
522}
523
541static inline LV2_Atom_Forge_Ref
543{
544 const LV2_Atom_Tuple a = { { 0, forge->Tuple } };
545 return lv2_atom_forge_push(
546 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
547}
548
573static inline LV2_Atom_Forge_Ref
576 LV2_URID id,
577 LV2_URID otype)
578{
579 const LV2_Atom_Object a = {
580 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Object },
581 { id, otype }
582 };
583 return lv2_atom_forge_push(
584 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
585}
586
594static inline LV2_Atom_Forge_Ref
597 LV2_URID id,
598 LV2_URID otype)
599{
600 const LV2_Atom_Object a = {
601 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Resource },
602 { id, otype }
603 };
604 return lv2_atom_forge_push(
605 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
606}
607
615static inline LV2_Atom_Forge_Ref
618 uint32_t id,
619 LV2_URID otype)
620{
621 const LV2_Atom_Object a = {
622 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Blank },
623 { id, otype }
624 };
625 return lv2_atom_forge_push(
626 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
627}
628
634static inline LV2_Atom_Forge_Ref
637{
638 const LV2_Atom_Property_Body a = { key, 0, { 0, 0 } };
639 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t));
640}
641
648static inline LV2_Atom_Forge_Ref
651 LV2_URID context)
652{
653 const LV2_Atom_Property_Body a = { key, context, { 0, 0 } };
654 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t));
655}
656
660static inline LV2_Atom_Forge_Ref
664{
665 const LV2_Atom_Sequence a = {
666 { (uint32_t)sizeof(LV2_Atom_Sequence_Body), forge->Sequence },
667 { unit, 0 }
668 };
669 return lv2_atom_forge_push(
670 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a)));
671}
672
678static inline LV2_Atom_Forge_Ref
680{
681 return lv2_atom_forge_write(forge, &frames, sizeof(frames));
682}
683
689static inline LV2_Atom_Forge_Ref
691{
692 return lv2_atom_forge_write(forge, &beats, sizeof(beats));
693}
694
699
700#if defined(__clang__)
701# pragma clang diagnostic pop
702#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
703# pragma GCC diagnostic pop
704#endif
705
706#ifdef __cplusplus
707} /* extern "C" */
708#endif
709
710#endif /* LV2_ATOM_FORGE_H */
#define NULL
Definition CarlaBridgeFormat.cpp:30
assert(0)
uint8_t a
Definition Spc_Cpu.h:141
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
unsigned f
Definition inflate.c:1572
#define LV2_ATOM__Object
http://lv2plug.in/ns/ext/atom#Object
Definition atom.h:47
#define LV2_ATOM__Float
http://lv2plug.in/ns/ext/atom#Float
Definition atom.h:42
#define LV2_ATOM__Chunk
http://lv2plug.in/ns/ext/atom#Chunk
Definition atom.h:39
#define LV2_ATOM__Property
http://lv2plug.in/ns/ext/atom#Property
Definition atom.h:49
#define LV2_ATOM__Int
http://lv2plug.in/ns/ext/atom#Int
Definition atom.h:43
#define LV2_ATOM__URID
http://lv2plug.in/ns/ext/atom#URID
Definition atom.h:56
#define LV2_ATOM__Blank
http://lv2plug.in/ns/ext/atom#Blank
Definition atom.h:37
#define LV2_ATOM__Double
http://lv2plug.in/ns/ext/atom#Double
Definition atom.h:40
#define LV2_ATOM__String
http://lv2plug.in/ns/ext/atom#String
Definition atom.h:53
#define LV2_ATOM__Bool
http://lv2plug.in/ns/ext/atom#Bool
Definition atom.h:38
#define LV2_ATOM__Vector
http://lv2plug.in/ns/ext/atom#Vector
Definition atom.h:57
#define LV2_ATOM__Tuple
http://lv2plug.in/ns/ext/atom#Tuple
Definition atom.h:54
LV2_Atom_Int LV2_Atom_Bool
Definition atom.h:136
#define LV2_ATOM__Path
http://lv2plug.in/ns/ext/atom#Path
Definition atom.h:48
#define LV2_ATOM__URI
http://lv2plug.in/ns/ext/atom#URI
Definition atom.h:55
#define LV2_ATOM__Resource
http://lv2plug.in/ns/ext/atom#Resource
Definition atom.h:50
#define LV2_ATOM__Sequence
http://lv2plug.in/ns/ext/atom#Sequence
Definition atom.h:51
#define LV2_ATOM__Literal
http://lv2plug.in/ns/ext/atom#Literal
Definition atom.h:44
#define LV2_ATOM__Long
http://lv2plug.in/ns/ext/atom#Long
Definition atom.h:45
#define LV2_ATOM_BODY_CONST(atom)
Definition atom.h:103
static LV2_Atom_Forge_Ref lv2_atom_forge_tuple(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame)
Definition atom-forge.h:542
static LV2_Atom_Forge_Ref lv2_atom_forge_push(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, LV2_Atom_Forge_Ref ref)
Definition atom-forge.h:189
static LV2_Atom * lv2_atom_forge_deref(LV2_Atom_Forge *forge, LV2_Atom_Forge_Ref ref)
Definition atom-forge.h:168
static LV2_Atom_Forge_Ref lv2_atom_forge_uri(LV2_Atom_Forge *forge, const char *uri, uint32_t len)
Definition atom-forge.h:452
static LV2_Atom_Forge_Ref lv2_atom_forge_int(LV2_Atom_Forge *forge, int32_t val)
Definition atom-forge.h:374
void * LV2_Atom_Forge_Sink_Handle
Definition atom-forge.h:79
static LV2_Atom_Forge_Ref lv2_atom_forge_bool(LV2_Atom_Forge *forge, bool val)
Definition atom-forge.h:406
static LV2_ATOM_FORGE_DEPRECATED LV2_Atom_Forge_Ref lv2_atom_forge_blank(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, uint32_t id, LV2_URID otype)
Definition atom-forge.h:616
intptr_t LV2_Atom_Forge_Ref
Definition atom-forge.h:82
static void lv2_atom_forge_init(LV2_Atom_Forge *forge, const LV2_URID_Map *map)
Definition atom-forge.h:143
static LV2_Atom_Forge_Ref lv2_atom_forge_string_body(LV2_Atom_Forge *forge, const char *str, uint32_t len)
Definition atom-forge.h:335
static LV2_Atom_Forge_Ref lv2_atom_forge_vector_head(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, uint32_t child_size, uint32_t child_type)
Definition atom-forge.h:491
static LV2_Atom_Forge_Ref lv2_atom_forge_beat_time(LV2_Atom_Forge *forge, double beats)
Definition atom-forge.h:690
static LV2_Atom_Forge_Ref lv2_atom_forge_long(LV2_Atom_Forge *forge, int64_t val)
Definition atom-forge.h:382
static LV2_Atom_Forge_Ref lv2_atom_forge_sequence_head(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, uint32_t unit)
Definition atom-forge.h:661
static void lv2_atom_forge_pad(LV2_Atom_Forge *forge, uint32_t written)
Definition atom-forge.h:315
static bool lv2_atom_forge_is_object_type(const LV2_Atom_Forge *forge, uint32_t type)
Definition atom-forge.h:217
static LV2_Atom_Forge_Ref lv2_atom_forge_raw(LV2_Atom_Forge *forge, const void *data, uint32_t size)
Definition atom-forge.h:293
LV2_Atom_Forge_Ref(* LV2_Atom_Forge_Sink)(LV2_Atom_Forge_Sink_Handle handle, const void *buf, uint32_t size)
Definition atom-forge.h:86
static LV2_Atom_Forge_Ref lv2_atom_forge_primitive(LV2_Atom_Forge *forge, const LV2_Atom *a)
Definition atom-forge.h:362
static bool lv2_atom_forge_top_is(LV2_Atom_Forge *forge, uint32_t type)
Definition atom-forge.h:209
static LV2_Atom_Forge_Ref lv2_atom_forge_property_head(LV2_Atom_Forge *forge, LV2_URID key, LV2_URID context)
Definition atom-forge.h:649
static LV2_Atom_Forge_Ref lv2_atom_forge_urid(LV2_Atom_Forge *forge, LV2_URID id)
Definition atom-forge.h:414
static LV2_Atom_Forge_Ref lv2_atom_forge_write(LV2_Atom_Forge *forge, const void *data, uint32_t size)
Definition atom-forge.h:324
static LV2_Atom_Forge_Ref lv2_atom_forge_double(LV2_Atom_Forge *forge, double val)
Definition atom-forge.h:398
static void lv2_atom_forge_pop(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame)
Definition atom-forge.h:201
static bool lv2_atom_forge_is_blank(const LV2_Atom_Forge *forge, uint32_t type, const LV2_Atom_Object_Body *body)
Definition atom-forge.h:226
#define LV2_ATOM_FORGE_DEPRECATED
Definition atom-forge.h:60
static LV2_Atom_Forge_Ref lv2_atom_forge_string(LV2_Atom_Forge *forge, const char *str, uint32_t len)
Definition atom-forge.h:441
static LV2_Atom_Forge_Ref lv2_atom_forge_typed_string(LV2_Atom_Forge *forge, uint32_t type, const char *str, uint32_t len)
Definition atom-forge.h:422
static void lv2_atom_forge_set_buffer(LV2_Atom_Forge *forge, uint8_t *buf, size_t size)
Definition atom-forge.h:242
static LV2_ATOM_FORGE_DEPRECATED LV2_Atom_Forge_Ref lv2_atom_forge_resource(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, LV2_URID id, LV2_URID otype)
Definition atom-forge.h:595
static LV2_Atom_Forge_Ref lv2_atom_forge_path(LV2_Atom_Forge *forge, const char *path, uint32_t len)
Definition atom-forge.h:459
static LV2_Atom_Forge_Ref lv2_atom_forge_key(LV2_Atom_Forge *forge, LV2_URID key)
Definition atom-forge.h:635
static LV2_Atom_Forge_Ref lv2_atom_forge_atom(LV2_Atom_Forge *forge, uint32_t size, uint32_t type)
Definition atom-forge.h:354
static LV2_Atom_Forge_Ref lv2_atom_forge_frame_time(LV2_Atom_Forge *forge, int64_t frames)
Definition atom-forge.h:679
LV2_DISABLE_DEPRECATION_WARNINGS typedef void * LV2_Atom_Forge_Sink_Handle
Definition forge.h:72
static LV2_Atom_Forge_Ref lv2_atom_forge_literal(LV2_Atom_Forge *forge, const char *str, uint32_t len, uint32_t datatype, uint32_t lang)
Definition atom-forge.h:466
LV2_Atom *(* LV2_Atom_Forge_Deref_Func)(LV2_Atom_Forge_Sink_Handle handle, LV2_Atom_Forge_Ref ref)
Definition forge.h:84
static LV2_Atom_Forge_Ref lv2_atom_forge_float(LV2_Atom_Forge *forge, float val)
Definition atom-forge.h:390
static void lv2_atom_forge_set_sink(LV2_Atom_Forge *forge, LV2_Atom_Forge_Sink sink, LV2_Atom_Forge_Deref_Func deref, LV2_Atom_Forge_Sink_Handle handle)
Definition atom-forge.h:268
static LV2_Atom_Forge_Ref lv2_atom_forge_object(LV2_Atom_Forge *forge, LV2_Atom_Forge_Frame *frame, LV2_URID id, LV2_URID otype)
Definition atom-forge.h:574
static LV2_Atom_Forge_Ref lv2_atom_forge_vector(LV2_Atom_Forge *forge, uint32_t child_size, uint32_t child_type, uint32_t n_elems, const void *elems)
Definition atom-forge.h:506
uint32_t LV2_URID
Definition urid.h:58
static uint32_t lv2_atom_pad_size(uint32_t size)
Definition atom-util.h:48
int val
Definition jpeglib.h:956
JSAMPIMAGE data
Definition jpeglib.h:945
SerdNode * deref(SerdReader *reader, const Ref ref)
Definition reader.c:116
static size_t sink(const void *buf, size_t len, SerdWriter *writer)
Definition writer.c:177
static SordNode * uri(SordWorld *world, int num)
Definition sord_test.c:47
float out
Definition lilv_test.c:1461
int int32_t
Definition mid.cpp:97
unsigned int uint32_t
Definition mid.cpp:100
unsigned char uint8_t
Definition mid.cpp:98
png_const_structrp png_const_inforp int * unit
Definition png.h:2161
Definition atom-forge.h:96
struct _LV2_Atom_Forge_Frame * parent
Definition atom-forge.h:97
LV2_Atom_Forge_Ref ref
Definition atom-forge.h:98
Definition atom.h:130
Definition atom.h:124
Definition forge.h:89
LV2_Atom_Forge_Ref ref
Definition forge.h:91
struct LV2_Atom_Forge_Frame * parent
Definition forge.h:90
Definition atom-forge.h:102
LV2_URID Float
Definition atom-forge.h:117
uint32_t size
Definition atom-forge.h:105
LV2_URID Property
Definition atom-forge.h:123
LV2_URID Vector
Definition atom-forge.h:130
LV2_URID Chunk
Definition atom-forge.h:115
LV2_URID Long
Definition atom-forge.h:119
LV2_Atom_Forge_Frame * stack
Definition atom-forge.h:111
LV2_Atom_Forge_Sink sink
Definition atom-forge.h:107
LV2_URID Blank LV2_ATOM_FORGE_DEPRECATED
Definition atom-forge.h:113
LV2_URID Int
Definition atom-forge.h:118
uint8_t * buf
Definition atom-forge.h:103
LV2_URID Tuple
Definition atom-forge.h:127
LV2_URID Double
Definition atom-forge.h:116
LV2_URID Path
Definition atom-forge.h:122
LV2_Atom_Forge_Deref_Func deref
Definition atom-forge.h:108
LV2_URID URI
Definition atom-forge.h:128
LV2_Atom_Forge_Sink_Handle handle
Definition atom-forge.h:109
LV2_URID Bool
Definition atom-forge.h:114
LV2_URID Sequence
Definition atom-forge.h:125
LV2_URID String
Definition atom-forge.h:126
LV2_URID Literal
Definition atom-forge.h:120
LV2_URID URID
Definition atom-forge.h:129
uint32_t offset
Definition atom-forge.h:104
LV2_URID Object
Definition atom-forge.h:121
Definition atom.h:112
Definition atom.h:158
Definition atom.h:118
Definition atom.h:197
uint32_t id
Definition atom.h:198
Definition atom.h:204
Definition atom.h:183
Definition atom.h:236
Definition atom.h:243
Definition atom.h:145
Definition atom.h:164
Definition atom.h:139
Definition atom.h:170
Definition atom.h:177
Definition atom.h:106
uint32_t size
Definition atom.h:107
uint32_t type
Definition atom.h:108
Definition urid.h:69
LV2_URID_Map_Handle handle
Definition urid.h:76
LV2_URID(* map)(LV2_URID_Map_Handle handle, const char *uri)
Definition urid.h:99
memcpy(hh, h, RAND_HEAD_LEN)
ZCONST char * key
Definition crypt.c:587
ulg size
Definition extract.c:2350