1 // lsd-tab.h
2 // LiVES
3 // (c) G. Finch 2020 <salsaman+lives@gmail.com>
4 // released under the GNU GPL 3 or later
5 // see file ../COPYING or www.gnu.org for licensing details
6 // functions for handling the LiVES Struct Def Table
7 
8 #ifndef HAS_LIVES_LSD_TAB_H
9 #define HAS_LIVES_LSD_TAB_H
10 
11 typedef enum {
12   LIVES_STRUCT_CLIP_DATA_T,
13   LIVES_STRUCT_FILE_DETS_T,
14   LIVES_N_STRUCTS
15 } lives_struct_type;
16 
17 #define LIVES_STRUCT_FIRST LIVES_STRUCT_CLIP_DATA_T
18 
19 const lives_struct_def_t *get_lsd(lives_struct_type st_type);
20 void *struct_from_template(lives_struct_type st_type);
21 void *copy_struct(lives_struct_def_t *);
22 const char *lives_struct_get_creator(lives_struct_def_t *);
23 void unref_struct(lives_struct_def_t *);
24 void ref_struct(lives_struct_def_t *);
25 boolean lives_structs_equal(lives_struct_def_t *, lives_struct_def_t *);
26 boolean lives_struct_is_a(lives_struct_def_t *, const char *st_type);
27 boolean lives_structs_same_type(lives_struct_def_t *, lives_struct_def_t *);
28 
29 uint64_t lsd_check_struct(lives_struct_def_t *);
30 uint64_t lsd_check_match(lives_struct_def_t *, lives_struct_def_t *);
31 
32 char *weed_plant_to_header(weed_plant_t *, const char *tname);
33 
34 #endif
35