Lines Matching refs:forge

119 lv2_atom_forge_set_buffer(LV2_Atom_Forge* forge, uint8_t* buf, size_t size);
128 lv2_atom_forge_init(LV2_Atom_Forge* forge, LV2_URID_Map* map) in lv2_atom_forge_init() argument
137 lv2_atom_forge_set_buffer(forge, NULL, 0); in lv2_atom_forge_init()
138 forge->Blank = map->map(map->handle, LV2_ATOM__Blank); in lv2_atom_forge_init()
139 forge->Bool = map->map(map->handle, LV2_ATOM__Bool); in lv2_atom_forge_init()
140 forge->Chunk = map->map(map->handle, LV2_ATOM__Chunk); in lv2_atom_forge_init()
141 forge->Double = map->map(map->handle, LV2_ATOM__Double); in lv2_atom_forge_init()
142 forge->Float = map->map(map->handle, LV2_ATOM__Float); in lv2_atom_forge_init()
143 forge->Int = map->map(map->handle, LV2_ATOM__Int); in lv2_atom_forge_init()
144 forge->Long = map->map(map->handle, LV2_ATOM__Long); in lv2_atom_forge_init()
145 forge->Literal = map->map(map->handle, LV2_ATOM__Literal); in lv2_atom_forge_init()
146 forge->Object = map->map(map->handle, LV2_ATOM__Object); in lv2_atom_forge_init()
147 forge->Path = map->map(map->handle, LV2_ATOM__Path); in lv2_atom_forge_init()
148 forge->Property = map->map(map->handle, LV2_ATOM__Property); in lv2_atom_forge_init()
149 forge->Resource = map->map(map->handle, LV2_ATOM__Resource); in lv2_atom_forge_init()
150 forge->Sequence = map->map(map->handle, LV2_ATOM__Sequence); in lv2_atom_forge_init()
151 forge->String = map->map(map->handle, LV2_ATOM__String); in lv2_atom_forge_init()
152 forge->Tuple = map->map(map->handle, LV2_ATOM__Tuple); in lv2_atom_forge_init()
153 forge->URI = map->map(map->handle, LV2_ATOM__URI); in lv2_atom_forge_init()
154 forge->URID = map->map(map->handle, LV2_ATOM__URID); in lv2_atom_forge_init()
155 forge->Vector = map->map(map->handle, LV2_ATOM__Vector); in lv2_atom_forge_init()
164 lv2_atom_forge_deref(LV2_Atom_Forge* forge, LV2_Atom_Forge_Ref ref) in lv2_atom_forge_deref() argument
166 if (forge->buf) { in lv2_atom_forge_deref()
169 return forge->deref(forge->handle, ref); in lv2_atom_forge_deref()
185 lv2_atom_forge_push(LV2_Atom_Forge* forge, in lv2_atom_forge_push() argument
189 frame->parent = forge->stack; in lv2_atom_forge_push()
191 forge->stack = frame; in lv2_atom_forge_push()
197 lv2_atom_forge_pop(LV2_Atom_Forge* forge, LV2_Atom_Forge_Frame* frame) in lv2_atom_forge_pop() argument
199 assert(frame == forge->stack); in lv2_atom_forge_pop()
200 forge->stack = frame->parent; in lv2_atom_forge_pop()
205 lv2_atom_forge_top_is(LV2_Atom_Forge* forge, uint32_t type) in lv2_atom_forge_top_is() argument
207 return forge->stack && forge->stack->ref && in lv2_atom_forge_top_is()
208 (lv2_atom_forge_deref(forge, forge->stack->ref)->type == type); in lv2_atom_forge_top_is()
213 lv2_atom_forge_is_object_type(const LV2_Atom_Forge* forge, uint32_t type) in lv2_atom_forge_is_object_type() argument
222 return (type == forge->Object || in lv2_atom_forge_is_object_type()
223 type == forge->Blank || in lv2_atom_forge_is_object_type()
224 type == forge->Resource); in lv2_atom_forge_is_object_type()
234 lv2_atom_forge_is_blank(const LV2_Atom_Forge* forge, in lv2_atom_forge_is_blank() argument
245 return (type == forge->Blank || in lv2_atom_forge_is_blank()
246 (type == forge->Object && body->id == 0)); in lv2_atom_forge_is_blank()
262 lv2_atom_forge_set_buffer(LV2_Atom_Forge* forge, uint8_t* buf, size_t size) in lv2_atom_forge_set_buffer() argument
264 forge->buf = buf; in lv2_atom_forge_set_buffer()
265 forge->size = (uint32_t)size; in lv2_atom_forge_set_buffer()
266 forge->offset = 0; in lv2_atom_forge_set_buffer()
267 forge->deref = NULL; in lv2_atom_forge_set_buffer()
268 forge->sink = NULL; in lv2_atom_forge_set_buffer()
269 forge->handle = NULL; in lv2_atom_forge_set_buffer()
270 forge->stack = NULL; in lv2_atom_forge_set_buffer()
288 lv2_atom_forge_set_sink(LV2_Atom_Forge* forge, in lv2_atom_forge_set_sink() argument
293 forge->buf = NULL; in lv2_atom_forge_set_sink()
294 forge->size = forge->offset = 0; in lv2_atom_forge_set_sink()
295 forge->deref = deref; in lv2_atom_forge_set_sink()
296 forge->sink = sink; in lv2_atom_forge_set_sink()
297 forge->handle = handle; in lv2_atom_forge_set_sink()
298 forge->stack = NULL; in lv2_atom_forge_set_sink()
313 lv2_atom_forge_raw(LV2_Atom_Forge* forge, const void* data, uint32_t size) in lv2_atom_forge_raw() argument
316 if (forge->sink) { in lv2_atom_forge_raw()
317 out = forge->sink(forge->handle, data, size); in lv2_atom_forge_raw()
319 out = (LV2_Atom_Forge_Ref)forge->buf + (LV2_Atom_Forge_Ref)forge->offset; in lv2_atom_forge_raw()
320 uint8_t* mem = forge->buf + forge->offset; in lv2_atom_forge_raw()
321 if (forge->offset + size > forge->size) { in lv2_atom_forge_raw()
324 forge->offset += size; in lv2_atom_forge_raw()
327 for (LV2_Atom_Forge_Frame* f = forge->stack; f; f = f->parent) { in lv2_atom_forge_raw()
328 lv2_atom_forge_deref(forge, f->ref)->size += size; in lv2_atom_forge_raw()
335 lv2_atom_forge_pad(LV2_Atom_Forge* forge, uint32_t written) in lv2_atom_forge_pad() argument
339 lv2_atom_forge_raw(forge, &pad, pad_size); in lv2_atom_forge_pad()
344 lv2_atom_forge_write(LV2_Atom_Forge* forge, const void* data, uint32_t size) in lv2_atom_forge_write() argument
346 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size); in lv2_atom_forge_write()
348 lv2_atom_forge_pad(forge, size); in lv2_atom_forge_write()
355 lv2_atom_forge_string_body(LV2_Atom_Forge* forge, in lv2_atom_forge_string_body() argument
359 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, str, len); in lv2_atom_forge_string_body()
360 if (out && (out = lv2_atom_forge_raw(forge, "", 1))) { in lv2_atom_forge_string_body()
361 lv2_atom_forge_pad(forge, len + 1); in lv2_atom_forge_string_body()
374 lv2_atom_forge_atom(LV2_Atom_Forge* forge, uint32_t size, uint32_t type) in lv2_atom_forge_atom() argument
377 return lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_atom()
382 lv2_atom_forge_primitive(LV2_Atom_Forge* forge, const LV2_Atom* a) in lv2_atom_forge_primitive() argument
384 if (lv2_atom_forge_top_is(forge, forge->Vector)) { in lv2_atom_forge_primitive()
385 return lv2_atom_forge_raw(forge, LV2_ATOM_BODY_CONST(a), a->size); in lv2_atom_forge_primitive()
388 forge, a, (uint32_t)sizeof(LV2_Atom) + a->size); in lv2_atom_forge_primitive()
394 lv2_atom_forge_int(LV2_Atom_Forge* forge, int32_t val) in lv2_atom_forge_int() argument
396 const LV2_Atom_Int a = { { sizeof(val), forge->Int }, val }; in lv2_atom_forge_int()
397 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_int()
402 lv2_atom_forge_long(LV2_Atom_Forge* forge, int64_t val) in lv2_atom_forge_long() argument
404 const LV2_Atom_Long a = { { sizeof(val), forge->Long }, val }; in lv2_atom_forge_long()
405 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_long()
410 lv2_atom_forge_float(LV2_Atom_Forge* forge, float val) in lv2_atom_forge_float() argument
412 const LV2_Atom_Float a = { { sizeof(val), forge->Float }, val }; in lv2_atom_forge_float()
413 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_float()
418 lv2_atom_forge_double(LV2_Atom_Forge* forge, double val) in lv2_atom_forge_double() argument
420 const LV2_Atom_Double a = { { sizeof(val), forge->Double }, val }; in lv2_atom_forge_double()
421 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_double()
426 lv2_atom_forge_bool(LV2_Atom_Forge* forge, bool val) in lv2_atom_forge_bool() argument
428 const LV2_Atom_Bool a = { { sizeof(int32_t), forge->Bool }, val ? 1 : 0 }; in lv2_atom_forge_bool()
429 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_bool()
434 lv2_atom_forge_urid(LV2_Atom_Forge* forge, LV2_URID id) in lv2_atom_forge_urid() argument
436 const LV2_Atom_URID a = { { sizeof(id), forge->URID }, id }; in lv2_atom_forge_urid()
437 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_urid()
442 lv2_atom_forge_typed_string(LV2_Atom_Forge* forge, in lv2_atom_forge_typed_string() argument
448 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_typed_string()
450 if (!lv2_atom_forge_string_body(forge, str, len)) { in lv2_atom_forge_typed_string()
451 LV2_Atom* atom = lv2_atom_forge_deref(forge, out); in lv2_atom_forge_typed_string()
461 lv2_atom_forge_string(LV2_Atom_Forge* forge, const char* str, uint32_t len) in lv2_atom_forge_string() argument
463 return lv2_atom_forge_typed_string(forge, forge->String, str, len); in lv2_atom_forge_string()
472 lv2_atom_forge_uri(LV2_Atom_Forge* forge, const char* uri, uint32_t len) in lv2_atom_forge_uri() argument
474 return lv2_atom_forge_typed_string(forge, forge->URI, uri, len); in lv2_atom_forge_uri()
479 lv2_atom_forge_path(LV2_Atom_Forge* forge, const char* path, uint32_t len) in lv2_atom_forge_path() argument
481 return lv2_atom_forge_typed_string(forge, forge->Path, path, len); in lv2_atom_forge_path()
486 lv2_atom_forge_literal(LV2_Atom_Forge* forge, in lv2_atom_forge_literal() argument
494 forge->Literal }, in lv2_atom_forge_literal()
498 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_literal()
500 if (!lv2_atom_forge_string_body(forge, str, len)) { in lv2_atom_forge_literal()
501 LV2_Atom* atom = lv2_atom_forge_deref(forge, out); in lv2_atom_forge_literal()
511 lv2_atom_forge_vector_head(LV2_Atom_Forge* forge, in lv2_atom_forge_vector_head() argument
517 { sizeof(LV2_Atom_Vector_Body), forge->Vector }, in lv2_atom_forge_vector_head()
521 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_vector_head()
526 lv2_atom_forge_vector(LV2_Atom_Forge* forge, in lv2_atom_forge_vector() argument
534 forge->Vector }, in lv2_atom_forge_vector()
537 LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); in lv2_atom_forge_vector()
539 lv2_atom_forge_write(forge, elems, child_size * n_elems); in lv2_atom_forge_vector()
562 lv2_atom_forge_tuple(LV2_Atom_Forge* forge, LV2_Atom_Forge_Frame* frame) in lv2_atom_forge_tuple() argument
564 const LV2_Atom_Tuple a = { { 0, forge->Tuple } }; in lv2_atom_forge_tuple()
566 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_tuple()
594 lv2_atom_forge_object(LV2_Atom_Forge* forge, in lv2_atom_forge_object() argument
600 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Object }, in lv2_atom_forge_object()
604 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_object()
615 lv2_atom_forge_resource(LV2_Atom_Forge* forge, in lv2_atom_forge_resource() argument
628 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Resource }, in lv2_atom_forge_resource()
632 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_resource()
648 lv2_atom_forge_blank(LV2_Atom_Forge* forge, in lv2_atom_forge_blank() argument
661 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Blank }, in lv2_atom_forge_blank()
665 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_blank()
679 lv2_atom_forge_key(LV2_Atom_Forge* forge, in lv2_atom_forge_key() argument
683 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t)); in lv2_atom_forge_key()
693 lv2_atom_forge_property_head(LV2_Atom_Forge* forge, in lv2_atom_forge_property_head() argument
698 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t)); in lv2_atom_forge_property_head()
705 lv2_atom_forge_sequence_head(LV2_Atom_Forge* forge, in lv2_atom_forge_sequence_head() argument
710 { (uint32_t)sizeof(LV2_Atom_Sequence_Body), forge->Sequence }, in lv2_atom_forge_sequence_head()
714 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_sequence_head()
723 lv2_atom_forge_frame_time(LV2_Atom_Forge* forge, int64_t frames) in lv2_atom_forge_frame_time() argument
725 return lv2_atom_forge_write(forge, &frames, sizeof(frames)); in lv2_atom_forge_frame_time()
734 lv2_atom_forge_beat_time(LV2_Atom_Forge* forge, double beats) in lv2_atom_forge_beat_time() argument
736 return lv2_atom_forge_write(forge, &beats, sizeof(beats)); in lv2_atom_forge_beat_time()