Lines Matching refs:forge

122 lv2_atom_forge_set_buffer(LV2_Atom_Forge* forge, uint8_t* buf, size_t size);
131 lv2_atom_forge_init(LV2_Atom_Forge* forge, LV2_URID_Map* map) in lv2_atom_forge_init() argument
133 lv2_atom_forge_set_buffer(forge, NULL, 0); in lv2_atom_forge_init()
134 forge->Blank = map->map(map->handle, LV2_ATOM__Blank); in lv2_atom_forge_init()
135 forge->Bool = map->map(map->handle, LV2_ATOM__Bool); in lv2_atom_forge_init()
136 forge->Chunk = map->map(map->handle, LV2_ATOM__Chunk); in lv2_atom_forge_init()
137 forge->Double = map->map(map->handle, LV2_ATOM__Double); in lv2_atom_forge_init()
138 forge->Float = map->map(map->handle, LV2_ATOM__Float); in lv2_atom_forge_init()
139 forge->Int = map->map(map->handle, LV2_ATOM__Int); in lv2_atom_forge_init()
140 forge->Long = map->map(map->handle, LV2_ATOM__Long); in lv2_atom_forge_init()
141 forge->Literal = map->map(map->handle, LV2_ATOM__Literal); in lv2_atom_forge_init()
142 forge->Object = map->map(map->handle, LV2_ATOM__Object); in lv2_atom_forge_init()
143 forge->Path = map->map(map->handle, LV2_ATOM__Path); in lv2_atom_forge_init()
144 forge->Property = map->map(map->handle, LV2_ATOM__Property); in lv2_atom_forge_init()
145 forge->Resource = map->map(map->handle, LV2_ATOM__Resource); in lv2_atom_forge_init()
146 forge->Sequence = map->map(map->handle, LV2_ATOM__Sequence); in lv2_atom_forge_init()
147 forge->String = map->map(map->handle, LV2_ATOM__String); in lv2_atom_forge_init()
148 forge->Tuple = map->map(map->handle, LV2_ATOM__Tuple); in lv2_atom_forge_init()
149 forge->URI = map->map(map->handle, LV2_ATOM__URI); in lv2_atom_forge_init()
150 forge->URID = map->map(map->handle, LV2_ATOM__URID); in lv2_atom_forge_init()
151 forge->Vector = map->map(map->handle, LV2_ATOM__Vector); in lv2_atom_forge_init()
156 lv2_atom_forge_deref(LV2_Atom_Forge* forge, LV2_Atom_Forge_Ref ref) in lv2_atom_forge_deref() argument
158 return forge->buf ? (LV2_Atom*)ref : forge->deref(forge->handle, ref); in lv2_atom_forge_deref()
173 lv2_atom_forge_push(LV2_Atom_Forge* forge, in lv2_atom_forge_push() argument
177 frame->parent = forge->stack; in lv2_atom_forge_push()
179 forge->stack = frame; in lv2_atom_forge_push()
185 lv2_atom_forge_pop(LV2_Atom_Forge* forge, LV2_Atom_Forge_Frame* frame) in lv2_atom_forge_pop() argument
187 assert(frame == forge->stack); in lv2_atom_forge_pop()
188 forge->stack = frame->parent; in lv2_atom_forge_pop()
193 lv2_atom_forge_top_is(LV2_Atom_Forge* forge, uint32_t type) in lv2_atom_forge_top_is() argument
195 return forge->stack && forge->stack->ref && in lv2_atom_forge_top_is()
196 (lv2_atom_forge_deref(forge, forge->stack->ref)->type == type); in lv2_atom_forge_top_is()
201 lv2_atom_forge_is_object_type(const LV2_Atom_Forge* forge, uint32_t type) in lv2_atom_forge_is_object_type() argument
203 return (type == forge->Object || in lv2_atom_forge_is_object_type()
204 type == forge->Blank || in lv2_atom_forge_is_object_type()
205 type == forge->Resource); in lv2_atom_forge_is_object_type()
210 lv2_atom_forge_is_blank(const LV2_Atom_Forge* forge, in lv2_atom_forge_is_blank() argument
214 return (type == forge->Blank || in lv2_atom_forge_is_blank()
215 (type == forge->Object && body->id == 0)); in lv2_atom_forge_is_blank()
226 lv2_atom_forge_set_buffer(LV2_Atom_Forge* forge, uint8_t* buf, size_t size) in lv2_atom_forge_set_buffer() argument
228 forge->buf = buf; in lv2_atom_forge_set_buffer()
229 forge->size = (uint32_t)size; in lv2_atom_forge_set_buffer()
230 forge->offset = 0; in lv2_atom_forge_set_buffer()
231 forge->deref = NULL; in lv2_atom_forge_set_buffer()
232 forge->sink = NULL; in lv2_atom_forge_set_buffer()
233 forge->handle = NULL; in lv2_atom_forge_set_buffer()
234 forge->stack = NULL; in lv2_atom_forge_set_buffer()
252 lv2_atom_forge_set_sink(LV2_Atom_Forge* forge, in lv2_atom_forge_set_sink() argument
257 forge->buf = NULL; in lv2_atom_forge_set_sink()
258 forge->size = forge->offset = 0; in lv2_atom_forge_set_sink()
259 forge->deref = deref; in lv2_atom_forge_set_sink()
260 forge->sink = sink; in lv2_atom_forge_set_sink()
261 forge->handle = handle; in lv2_atom_forge_set_sink()
262 forge->stack = NULL; in lv2_atom_forge_set_sink()
277 lv2_atom_forge_raw(LV2_Atom_Forge* forge, const void* data, uint32_t size) in lv2_atom_forge_raw() argument
280 if (forge->sink) { in lv2_atom_forge_raw()
281 out = forge->sink(forge->handle, data, size); in lv2_atom_forge_raw()
283 out = (LV2_Atom_Forge_Ref)forge->buf + forge->offset; in lv2_atom_forge_raw()
284 uint8_t* mem = forge->buf + forge->offset; in lv2_atom_forge_raw()
285 if (forge->offset + size > forge->size) { in lv2_atom_forge_raw()
288 forge->offset += size; in lv2_atom_forge_raw()
291 for (LV2_Atom_Forge_Frame* f = forge->stack; f; f = f->parent) { in lv2_atom_forge_raw()
292 lv2_atom_forge_deref(forge, f->ref)->size += size; in lv2_atom_forge_raw()
299 lv2_atom_forge_pad(LV2_Atom_Forge* forge, uint32_t written) in lv2_atom_forge_pad() argument
303 lv2_atom_forge_raw(forge, &pad, pad_size); in lv2_atom_forge_pad()
308 lv2_atom_forge_write(LV2_Atom_Forge* forge, const void* data, uint32_t size) in lv2_atom_forge_write() argument
310 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, data, size); in lv2_atom_forge_write()
312 lv2_atom_forge_pad(forge, size); in lv2_atom_forge_write()
319 lv2_atom_forge_string_body(LV2_Atom_Forge* forge, in lv2_atom_forge_string_body() argument
323 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, str, len); in lv2_atom_forge_string_body()
324 if (out && (out = lv2_atom_forge_raw(forge, "", 1))) { in lv2_atom_forge_string_body()
325 lv2_atom_forge_pad(forge, len + 1); in lv2_atom_forge_string_body()
338 lv2_atom_forge_atom(LV2_Atom_Forge* forge, uint32_t size, uint32_t type) in lv2_atom_forge_atom() argument
341 return lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_atom()
346 lv2_atom_forge_primitive(LV2_Atom_Forge* forge, const LV2_Atom* a) in lv2_atom_forge_primitive() argument
348 return (lv2_atom_forge_top_is(forge, forge->Vector) in lv2_atom_forge_primitive()
349 ? lv2_atom_forge_raw(forge, LV2_ATOM_BODY_CONST(a), a->size) in lv2_atom_forge_primitive()
351 forge, a, (uint32_t)sizeof(LV2_Atom) + a->size)); in lv2_atom_forge_primitive()
356 lv2_atom_forge_int(LV2_Atom_Forge* forge, int32_t val) in lv2_atom_forge_int() argument
358 const LV2_Atom_Int a = { { sizeof(val), forge->Int }, val }; in lv2_atom_forge_int()
359 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_int()
364 lv2_atom_forge_long(LV2_Atom_Forge* forge, int64_t val) in lv2_atom_forge_long() argument
366 const LV2_Atom_Long a = { { sizeof(val), forge->Long }, val }; in lv2_atom_forge_long()
367 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_long()
372 lv2_atom_forge_float(LV2_Atom_Forge* forge, float val) in lv2_atom_forge_float() argument
374 const LV2_Atom_Float a = { { sizeof(val), forge->Float }, val }; in lv2_atom_forge_float()
375 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_float()
380 lv2_atom_forge_double(LV2_Atom_Forge* forge, double val) in lv2_atom_forge_double() argument
382 const LV2_Atom_Double a = { { sizeof(val), forge->Double }, val }; in lv2_atom_forge_double()
383 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_double()
388 lv2_atom_forge_bool(LV2_Atom_Forge* forge, bool val) in lv2_atom_forge_bool() argument
390 const LV2_Atom_Bool a = { { sizeof(int32_t), forge->Bool }, val ? 1 : 0 }; in lv2_atom_forge_bool()
391 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_bool()
396 lv2_atom_forge_urid(LV2_Atom_Forge* forge, LV2_URID id) in lv2_atom_forge_urid() argument
398 const LV2_Atom_URID a = { { sizeof(id), forge->URID }, id }; in lv2_atom_forge_urid()
399 return lv2_atom_forge_primitive(forge, &a.atom); in lv2_atom_forge_urid()
404 lv2_atom_forge_typed_string(LV2_Atom_Forge* forge, in lv2_atom_forge_typed_string() argument
410 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_typed_string()
412 if (!lv2_atom_forge_string_body(forge, str, len)) { in lv2_atom_forge_typed_string()
413 LV2_Atom* atom = lv2_atom_forge_deref(forge, out); in lv2_atom_forge_typed_string()
423 lv2_atom_forge_string(LV2_Atom_Forge* forge, const char* str, uint32_t len) in lv2_atom_forge_string() argument
425 return lv2_atom_forge_typed_string(forge, forge->String, str, len); in lv2_atom_forge_string()
434 lv2_atom_forge_uri(LV2_Atom_Forge* forge, const char* uri, uint32_t len) in lv2_atom_forge_uri() argument
436 return lv2_atom_forge_typed_string(forge, forge->URI, uri, len); in lv2_atom_forge_uri()
441 lv2_atom_forge_path(LV2_Atom_Forge* forge, const char* path, uint32_t len) in lv2_atom_forge_path() argument
443 return lv2_atom_forge_typed_string(forge, forge->Path, path, len); in lv2_atom_forge_path()
448 lv2_atom_forge_literal(LV2_Atom_Forge* forge, in lv2_atom_forge_literal() argument
456 forge->Literal }, in lv2_atom_forge_literal()
460 LV2_Atom_Forge_Ref out = lv2_atom_forge_raw(forge, &a, sizeof(a)); in lv2_atom_forge_literal()
462 if (!lv2_atom_forge_string_body(forge, str, len)) { in lv2_atom_forge_literal()
463 LV2_Atom* atom = lv2_atom_forge_deref(forge, out); in lv2_atom_forge_literal()
473 lv2_atom_forge_vector_head(LV2_Atom_Forge* forge, in lv2_atom_forge_vector_head() argument
479 { sizeof(LV2_Atom_Vector_Body), forge->Vector }, in lv2_atom_forge_vector_head()
483 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_vector_head()
488 lv2_atom_forge_vector(LV2_Atom_Forge* forge, in lv2_atom_forge_vector() argument
496 forge->Vector }, in lv2_atom_forge_vector()
499 LV2_Atom_Forge_Ref out = lv2_atom_forge_write(forge, &a, sizeof(a)); in lv2_atom_forge_vector()
501 lv2_atom_forge_write(forge, elems, child_size * n_elems); in lv2_atom_forge_vector()
524 lv2_atom_forge_tuple(LV2_Atom_Forge* forge, LV2_Atom_Forge_Frame* frame) in lv2_atom_forge_tuple() argument
526 const LV2_Atom_Tuple a = { { 0, forge->Tuple } }; in lv2_atom_forge_tuple()
528 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_tuple()
556 lv2_atom_forge_object(LV2_Atom_Forge* forge, in lv2_atom_forge_object() argument
562 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Object }, in lv2_atom_forge_object()
566 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_object()
577 lv2_atom_forge_resource(LV2_Atom_Forge* forge, in lv2_atom_forge_resource() argument
583 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Resource }, in lv2_atom_forge_resource()
587 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_resource()
598 lv2_atom_forge_blank(LV2_Atom_Forge* forge, in lv2_atom_forge_blank() argument
604 { (uint32_t)sizeof(LV2_Atom_Object_Body), forge->Blank }, in lv2_atom_forge_blank()
608 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_blank()
617 lv2_atom_forge_key(LV2_Atom_Forge* forge, in lv2_atom_forge_key() argument
621 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t)); in lv2_atom_forge_key()
631 lv2_atom_forge_property_head(LV2_Atom_Forge* forge, in lv2_atom_forge_property_head() argument
636 return lv2_atom_forge_write(forge, &a, 2 * (uint32_t)sizeof(uint32_t)); in lv2_atom_forge_property_head()
643 lv2_atom_forge_sequence_head(LV2_Atom_Forge* forge, in lv2_atom_forge_sequence_head() argument
648 { (uint32_t)sizeof(LV2_Atom_Sequence_Body), forge->Sequence }, in lv2_atom_forge_sequence_head()
652 forge, frame, lv2_atom_forge_write(forge, &a, sizeof(a))); in lv2_atom_forge_sequence_head()
661 lv2_atom_forge_frame_time(LV2_Atom_Forge* forge, int64_t frames) in lv2_atom_forge_frame_time() argument
663 return lv2_atom_forge_write(forge, &frames, sizeof(frames)); in lv2_atom_forge_frame_time()
672 lv2_atom_forge_beat_time(LV2_Atom_Forge* forge, double beats) in lv2_atom_forge_beat_time() argument
674 return lv2_atom_forge_write(forge, &beats, sizeof(beats)); in lv2_atom_forge_beat_time()