#include <unitypes.h>\r
#include "apc.h"\r
\r
-typedef union ir_setdata_t* ir_setdata;\r
-typedef struct ir_set_t* ir_set;\r
-typedef struct ir_class_t* ir_class;\r
-typedef struct ir_setld_t* ir_setld;\r
-typedef struct ir_classld_t* ir_classld;\r
+typedef union ir_setdata_t* ir_setdata;\r
+typedef struct ir_frameinfo_t* ir_frameinfo;\r
+typedef struct ir_set_t* ir_set;\r
+typedef struct ir_class_t* ir_class;\r
+typedef struct ir_setld_t* ir_setld;\r
+typedef struct ir_classld_t* ir_classld;\r
+typedef struct ir_facinglist_t* facinglist;\r
/* Classes and Sets\r
Classes are rooted at a special root class, representing the current working\r
directory at scan-time, named ".". The root class can always be identified\r
ir_class ir_class_addchild(ir_class,const uint8_t*);\r
uint8_t* ir_class_name(ir_class);\r
ir_set ir_class_addset(ir_class,const uint8_t*);\r
+ir_set ir_class_rootset(ir_class);\r
ir_set ir_set_addchild(ir_set,const uint8_t*);\r
+uint8_t* ir_set_name(ir_set);\r
+/* Output */\r
+ir_class ir_class_nextsib(ir_class);\r
+ir_class ir_class_nextchild(ir_class);\r
+long ir_class_fpos(ir_class);\r
+void ir_class_assign_fpos(ir_class,long);\r
+ir_set ir_set_from_ref(uint32_t);\r
+ir_set ir_set_nextsib(ir_set);\r
+ir_set ir_set_nextchild(ir_set);\r
+long ir_set_fpos(ir_set);\r
+void ir_set_assign_fpos(ir_set,long);\r
/* Set Data\r
Each set can contain up to FACING_MAX each of framesheets and mapsheets, one\r
sheet for each facing, per label. Each set can contain any number of audio\r
data of an associated file at that path and no path is provided, the data\r
will be entered null.\r
*/\r
+typedef ir_setdata framebox;\r
+typedef ir_setdata audiodata;\r
+typedef ir_setdata linkdata;\r
+typedef ir_setdata framedata;\r
enum ltype { OLINK, MLINK, VLINK, ALINK };\r
void ir_set_assign_data(ir_set,ir_setdata);\r
-void ir_set_assign_ref(ir_set,long long);\r
+void ir_set_assign_ref(ir_set,uint32_t);\r
void ir_data_assign_path(ir_setdata,const uint8_t*);\r
-ir_setdata ir_framesheet(const uint8_t*, apc_facing, int,int);\r
-ir_setdata ir_mapsheet(const uint8_t*, apc_facing, int,int);\r
+ir_setdata ir_framesheet(const uint8_t*,facinglist,int,int);\r
+ir_setdata ir_mapsheet(const uint8_t*,facinglist,int,int);\r
ir_setdata ir_audio(const uint8_t*);\r
ir_setdata ir_link(enum ltype,ir_setld,const uint8_t*);\r
+/* Facing Lists for creating frame/mapsheets */\r
+facinglist ir_facinglist(apc_facing);\r
+facinglist ir_facinglist_push(facinglist,apc_facing);\r
+/* Output */\r
+framebox ir_set_framebox(ir_set);\r
+audiodata ir_set_audio(ir_set);\r
+linkdata ir_set_link(ir_set);\r
+enum ltype ir_linkdata_type(linkdata);\r
+uint32_t ir_linkdata_ref(linkdata);\r
+ir_set ir_linkdata_set(linkdata);\r
+void ir_linkdata_assign_set(linkdata,ir_set);\r
+void ir_linkdata_assign_type(linkdata,enum ltype);\r
+uint8_t* ir_linkdata_dlink_name(linkdata);\r
+ir_setdata ir_setdata_nextsib(ir_setdata);\r
+uint8_t* ir_setdata_name(ir_setdata);\r
+uint8_t* ir_setdata_filename(ir_setdata);\r
+long ir_setdata_fpos(ir_setdata);\r
+void ir_setdata_assign_fpos(ir_setdata,long);\r
+void ir_setdata_assign_name(ir_setdata,uint8_t*);\r
+/* Framedata */\r
+framedata ir_framebox_framesheet(framebox,apc_facing);\r
+framedata ir_framebox_mapsheet(framebox,apc_facing);\r
+int ir_framedata_width(framedata);\r
+int ir_framedata_height(framedata);\r
+apc_facing ir_framedata_firstfacing(framedata);\r
+apc_facing ir_framedata_nextfacing(framedata);\r
/* Reference Linking Data \r
Create linking data to sets or classes that will be resolved at a later\r
stage. Class references can be created from an ir_class object, if\r
ir_classld ir_classld_from_class(ir_class);\r
ir_classld ir_classld_from_root(void);\r
ir_classld ir_classld_addchild(ir_classld,const uint8_t*);\r
-ir_setld ir_setld_from_ref(long long);\r
+ir_setld ir_setld_from_ref(uint32_t);\r
ir_setld ir_setld_from_classld(ir_classld,const uint8_t*);\r
ir_setld ir_setld_addchild(ir_setld,const uint8_t*);\r
+/* Output */\r
+enum ltype ir_setld_type(ir_setld);\r
+uint32_t ir_setld_ref(ir_setld);\r
#endif //_IR_H_\r