00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef KATE_kate_encode_state_h_GUARD
00011 #define KATE_kate_encode_state_h_GUARD
00012
00013 #include "kate_internal.h"
00014 #include "kate_bitwise.h"
00015 #include "kate/kate.h"
00016
00017 typedef struct kate_event_timing {
00018 kate_int64_t start;
00019 kate_int64_t end;
00020
00021 kate_int32_t id;
00022 kate_int64_t repeat;
00023
00024 size_t original_size;
00025 void *original_data;
00026
00027 size_t repeat_size;
00028 void *repeat_data;
00029 } kate_event_timing;
00030
00031 typedef struct kate_encode_state {
00032 kate_pack_buffer kpb;
00033
00034 const kate_info *ki;
00035
00036 kate_int32_t id;
00037
00038 kate_int64_t granulepos;
00039 kate_int64_t packetno;
00040
00041 kate_int64_t furthest_granule;
00042
00043 size_t nmotions;
00044 kate_motion **motions;
00045 int *destroy_motions;
00046 size_t *motion_indices;
00047
00048 size_t nbitmaps;
00049 const kate_bitmap **bitmaps;
00050 size_t *bitmap_indices;
00051
00052 int eos;
00053
00054 size_t ntimings;
00055 kate_event_timing *timings;
00056
00057 struct {
00058 char *language;
00059 kate_text_encoding text_encoding;
00060 kate_text_directionality text_directionality;
00061 kate_markup_type text_markup_type;
00062 int region_index;
00063 const kate_region *region;
00064 int style_index;
00065 const kate_style *style;
00066 int secondary_style_index;
00067 const kate_style *secondary_style;
00068 int font_mapping_index;
00069
00070 const kate_palette *palette;
00071 int palette_index;
00072 const kate_bitmap *bitmap;
00073 int bitmap_index;
00074 } overrides;
00075 } kate_encode_state;
00076
00077 extern kate_encode_state *kate_encode_state_create(const kate_info *ki) kate_internal;
00078 extern int kate_encode_state_clear_overrides(kate_encode_state *kes) kate_internal;
00079 extern int kate_encode_state_add_motion(kate_encode_state *kes,kate_motion *km,int destroy) kate_internal;
00080 extern int kate_encode_state_add_motion_index(kate_encode_state *kes,size_t motion) kate_internal;
00081 extern int kate_encode_state_add_bitmap(kate_encode_state *kes,const kate_bitmap *kb) kate_internal;
00082 extern int kate_encode_state_add_bitmap_index(kate_encode_state *kes,size_t bitmap) kate_internal;
00083 extern int kate_encode_state_destroy(kate_encode_state *kes) kate_internal;
00084
00085 extern int kate_encode_state_add_event(kate_encode_state *kes,kate_int64_t start,kate_int64_t end) kate_internal;
00086 extern int kate_encode_state_get_earliest_event(kate_encode_state *kes,kate_int64_t *start,kate_int64_t *end) kate_internal;
00087 extern int kate_encode_state_get_latest_event(kate_encode_state *kes,kate_int64_t *start,kate_int64_t *end) kate_internal;
00088 extern int kate_encode_state_trim_events(kate_encode_state *kes,kate_int64_t t) kate_internal;
00089 extern int kate_encode_state_save_event_buffer(kate_encode_state *kes,size_t size,const void *data) kate_internal;
00090 extern int kate_encode_state_get_repeat(kate_encode_state *kes,kate_int64_t t,kate_int64_t threshold,kate_packet *kp) kate_internal;
00091
00092 #endif