#ifndef HMML_H_ #define HMML_H_ #include #include #include #include // Data structures typedef struct { char* member; char* twitch; char* project; char* title; char* platform; char* id; char* annotator; } HMML_VideoMetaData; typedef struct { char* site; char* page; char* url; char* title; char* article; char* author; char* editor; char* publisher; char* isbn; int offset; } HMML_Reference; typedef enum { HMML_CATEGORY, HMML_MEMBER, HMML_PROJECT, HMML_MARKER_COUNT, } HMML_MarkerType; typedef struct { HMML_MarkerType type; char* text; int offset; } HMML_Marker; typedef struct { int id; char* author; } HMML_Quote; typedef struct { int line; char* time; char* text; char* author; HMML_Reference* references; size_t reference_count; HMML_Marker* markers; size_t marker_count; HMML_Quote quote; bool is_quote; } HMML_Annotation; typedef struct { int line; char* message; } HMML_Error; typedef struct { bool well_formed; HMML_VideoMetaData metadata; HMML_Annotation* annotations; size_t annotation_count; HMML_Error error; } HMML_Output; // Functions HMML_Output hmml_parse_file (FILE* file); void hmml_dump (HMML_Output* output); void hmml_free (HMML_Output* output); #endif