beginnings of binaryout
[henge/apc.git] / src / ir.h
index 7c1f4b3..096c760 100644 (file)
--- a/src/ir.h
+++ b/src/ir.h
@@ -5,7 +5,7 @@
 \r
 \details The IR serves as a storage structure that is populated during the\r
          parsing of the input directory structure. After parsing is complete,\r
-         the IR will be condensed (removed of excess allocated space) and then\r
+         the IR will be condensed (removed of excess allocated space) and then \r
          output as the input for the engine. In this file we describe the\r
          semantic actions that are called at each step, and the memory buffers\r
          that they populate.  See parser.y for the description on how the input\r
@@ -45,9 +45,10 @@ typedef struct ir_classld_t* ir_classld;
    specified set.\r
 */\r
 ir_class   ir_class_root(void);\r
-ir_class   ir_class_addchild(ir_class, uint8_t*);\r
-ir_set     ir_class_addset(ir_class,uint8_t*);\r
-ir_set     ir_set_addchild(ir_set,uint8_t*);\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_set_addchild(ir_set,const uint8_t*);\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
@@ -62,16 +63,14 @@ ir_set     ir_set_addchild(ir_set,uint8_t*);
    data of an associated file at that path and no path is provided, the data\r
    will be entered null.\r
 */\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_data_assign_path(ir_setdata,uint8_t*);\r
-ir_setdata ir_framesheet(uint8_t*, apc_facing, int,int);\r
-ir_setdata ir_mapsheet(uint8_t*, apc_facing, int,int);\r
-ir_setdata ir_audio(uint8_t*);\r
-ir_setdata ir_link_odat(ir_setld);\r
-ir_setdata ir_link_vdat(ir_setld,uint8_t*);\r
-ir_setdata ir_link_mdat(ir_setld,uint8_t*);\r
-ir_setdata ir_link_adat(ir_setld,uint8_t*);\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_audio(const uint8_t*);\r
+ir_setdata ir_link(enum ltype,ir_setld,const uint8_t*);\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
@@ -82,8 +81,35 @@ ir_setdata ir_link_adat(ir_setld,uint8_t*);
 */\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,uint8_t*);\r
-ir_setld   ir_setld_from_ref(long long);\r
-ir_setld   ir_setld_from_classld(ir_classld,uint8_t*);\r
-ir_setld   ir_setld_addchild(ir_setld,uint8_t*);\r
+ir_classld ir_classld_addchild(ir_classld,const uint8_t*);\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
 #endif //_IR_H_\r
+\r
+int get_class_sibcount(ir_class);\r
+int get_set_sibcount(ir_set);\r
+int get_set_variants(ir_set);\r
+ir_set get_class_root_set(ir_class);\r
+ir_set get_set_nextsib(ir_set);\r
+ir_set get_set_nextchild(ir_set);\r
+ir_setdata get_set_frameboxes(ir_set);\r
+ir_setdata get_set_links(ir_set);\r
+uint8_t* get_set_name(ir_set);\r
+long get_set_filepos(ir_set);\r
+void set_set_filepos(ir_set, long);\r
+ir_set get_set_from_ref(uint32_t);\r
+ir_class get_class_nextchild(ir_class);\r
+ir_class get_class_nextsib(ir_class);\r
+uint8_t* get_class_name(ir_class);\r
+uint8_t* get_link_name(ir_setdata);\r
+ir_setdata get_link_nextsib(ir_setdata);\r
+uint32_t get_link_ref(ir_setdata);\r
+enum ltype get_link_type(ir_setdata);\r
+ir_setdata get_framebox_nextsib(ir_setdata);\r
+uint8_t* get_framebox_name(ir_setdata);\r
+ir_setdata get_framebox_facing_framedata(ir_setdata, apc_facing);\r
+ir_setdata get_framebox_facing_mapdata(ir_setdata, apc_facing);\r
+int get_framedata_height(ir_setdata);\r
+int get_framedata_width(ir_setdata);\r
+uint8_t* get_framedata_name(ir_setdata);\r