libkate: /home/lyrian/OggVorbis/kate/include/kate/kate.h Source File

- Main Page
- Modules
- Data Structures
- Files
- Related Pages
- Examples

# /home/lyrian/OggVorbis/kate/include/kate/kate.h

Go to the documentation of this file.

    00001 /* Copyright (C) 2008, 2009 Vincent Penquerc'h.
    00002    This file is part of the Kate codec library.
    00003    Written by Vincent Penquerc'h.
    00004
    00005    Use, distribution and reproduction of this library is governed
    00006    by a BSD style source license included with this source in the
    00007    file 'COPYING'. Please read these terms before distributing. */
    00008
    00009
    00010 #ifndef KATE_kate_h_GUARD
    00011 #define KATE_kate_h_GUARD
    00012
    00017 #include "kate/kate_config.h"
    00018
    00021 #define KATE_VERSION_MAJOR 0
    00022 #define KATE_VERSION_MINOR 3
    00023 #define KATE_VERSION_PATCH 7
    00028 #define KATE_BITSTREAM_VERSION_MAJOR 0
    00029 #define KATE_BITSTREAM_VERSION_MINOR 5
    00033 typedef enum {
    00034   kate_utf8
    00035 } kate_text_encoding;
    00036
    00038 typedef enum {
    00039   kate_markup_none,
    00040   kate_markup_simple
    00041 } kate_markup_type;
    00042
    00044 typedef enum {
    00045   kate_pixel,
    00046   kate_percentage,
    00047   kate_millionths
    00048 } kate_space_metric;
    00049
    00051 typedef struct kate_region {
    00052   kate_space_metric metric;
    00053   int x;
    00054   int y;
    00055   int w;
    00056   int h;
    00057   int style;
    00058   unsigned int clip:1;
    00059   unsigned int pad0:31;
    00060   kate_uintptr_t pad1[6];
    00061 } kate_region;
    00062
    00064 typedef struct kate_color {
    00065   unsigned char r;
    00066   unsigned char g;
    00067   unsigned char b;
    00068   unsigned char a;
    00069 } kate_color;
    00070
    00072 typedef enum {
    00073   kate_wrap_word,
    00074   kate_wrap_none
    00075 } kate_wrap_mode;
    00076
    00078 typedef struct kate_style {
    00079   kate_float halign;
    00080   kate_float valign;
    00082   kate_color text_color;
    00083   kate_color background_color;
    00084   kate_color draw_color;
    00086   kate_space_metric font_metric;
    00087   kate_float font_width;
    00088   kate_float font_height;
    00090   kate_space_metric margin_metric;
    00091   kate_float left_margin;
    00092   kate_float top_margin;
    00093   kate_float right_margin;
    00094   kate_float bottom_margin;
    00096   unsigned int bold:1;
    00097   unsigned int italics:1;
    00098   unsigned int underline:1;
    00099   unsigned int strike:1;
    00100   unsigned int justify:1;
    00101   unsigned int wrap_mode:2;
    00102   unsigned int pad0:25;
    00103
    00104   kate_const char *font;
    00106   kate_uintptr_t pad1[9];
    00107 } kate_style;
    00108
    00110 typedef enum kate_curve_type {
    00111   kate_curve_none,
    00112   kate_curve_static,
    00113   kate_curve_linear,
    00114   kate_curve_catmull_rom_spline,
    00115   kate_curve_bezier_cubic_spline,
    00116   kate_curve_bspline
    00117 } kate_curve_type;
    00118
    00120 typedef struct kate_curve {
    00121   kate_curve_type type;
    00122   size_t npts;
    00123   kate_float *pts;
    00124   kate_uintptr_t pad[5];
    00125 } kate_curve;
    00126
    00128 typedef enum kate_motion_mapping {
    00129   /* these can be used for a x/y position mapping */
    00130   kate_motion_mapping_none,
    00131   kate_motion_mapping_frame,
    00132   kate_motion_mapping_window,
    00133   kate_motion_mapping_region,
    00134   kate_motion_mapping_event_duration,
    00135   kate_motion_mapping_bitmap_size,
    00137 #if 0
    00138   text is useful, find a way to readd it easily
    00139   kate_motion_mapping_text,
    00140 #endif
    00141
    00142   /* more mapping may be added in future versions */
    00143
    00144   kate_motion_mapping_user=128
    00145 } kate_motion_mapping;
    00146
    00148 typedef enum kate_motion_semantics {
    00149   kate_motion_semantics_time,
    00150   kate_motion_semantics_z,
    00151   kate_motion_semantics_region_position,
    00152   kate_motion_semantics_region_size,
    00153   kate_motion_semantics_text_alignment_int,
    00154   kate_motion_semantics_text_alignment_ext,
    00155   kate_motion_semantics_text_position,
    00156   kate_motion_semantics_text_size,
    00157   kate_motion_semantics_marker1_position,
    00158   kate_motion_semantics_marker2_position,
    00159   kate_motion_semantics_marker3_position,
    00160   kate_motion_semantics_marker4_position,
    00161   kate_motion_semantics_glyph_pointer_1,
    00162   kate_motion_semantics_glyph_pointer_2,
    00163   kate_motion_semantics_glyph_pointer_3,
    00164   kate_motion_semantics_glyph_pointer_4,
    00165   kate_motion_semantics_text_color_rg,
    00166   kate_motion_semantics_text_color_ba,
    00167   kate_motion_semantics_background_color_rg,
    00168   kate_motion_semantics_background_color_ba,
    00169   kate_motion_semantics_draw_color_rg,
    00170   kate_motion_semantics_draw_color_ba,
    00171   kate_motion_semantics_style_morph,
    00172   kate_motion_semantics_text_path,
    00173   kate_motion_semantics_text_path_section,
    00174   kate_motion_semantics_draw,
    00175   kate_motion_semantics_text_visible_section,
    00176   kate_motion_semantics_horizontal_margins,
    00177   kate_motion_semantics_vertical_margins,
    00178   kate_motion_semantics_bitmap_position,
    00179   kate_motion_semantics_bitmap_size,
    00180   kate_motion_semantics_marker1_bitmap,
    00181   kate_motion_semantics_marker2_bitmap,
    00182   kate_motion_semantics_marker3_bitmap,
    00183   kate_motion_semantics_marker4_bitmap,
    00184   kate_motion_semantics_glyph_pointer_1_bitmap,
    00185   kate_motion_semantics_glyph_pointer_2_bitmap,
    00186   kate_motion_semantics_glyph_pointer_3_bitmap,
    00187   kate_motion_semantics_glyph_pointer_4_bitmap,
    00188   kate_motion_semantics_draw_width,
    00190   /* more semantics may be added in future versions */
    00191
    00192   kate_motion_semantics_user = 128
    00193 } kate_motion_semantics;
    00194
    00196 typedef struct kate_motion {
    00197   size_t ncurves;
    00198   kate_curve **curves;
    00199   kate_float *durations;
    00200   kate_motion_mapping x_mapping;
    00201   kate_motion_mapping y_mapping;
    00202   kate_motion_semantics semantics;
    00203   unsigned int periodic:1;
    00204   unsigned int pad0:31;
    00205   kate_uintptr_t pad1[5];
    00206 } kate_motion;
    00207
    00209 typedef enum kate_text_directionality {
    00210   kate_l2r_t2b,
    00211   kate_r2l_t2b,
    00212   kate_t2b_r2l,
    00213   kate_t2b_l2r
    00214 } kate_text_directionality;
    00215
    00217 typedef struct kate_palette {
    00218   size_t ncolors;
    00219   kate_color *colors;
    00220   kate_uintptr_t pad[2];
    00221 } kate_palette;
    00222
    00224 typedef enum kate_bitmap_type {
    00225   kate_bitmap_type_paletted,
    00226   kate_bitmap_type_png
    00227 } kate_bitmap_type;
    00228
    00230 typedef struct kate_bitmap {
    00231   size_t width;
    00232   size_t height;
    00233   unsigned char bpp;
    00234   kate_bitmap_type type;
    00235   unsigned char pad0[2];
    00236   int palette;
    00237   unsigned char *pixels;
    00238   size_t size;
    00239   int x_offset;
    00240   int y_offset;
    00241 } kate_bitmap;
    00242
    00244 typedef struct kate_font_range {
    00245   int first_code_point;
    00246   int last_code_point;
    00247   int first_bitmap;
    00248   kate_uintptr_t pad[5];
    00249 } kate_font_range;
    00250
    00252 typedef struct kate_font_mapping {
    00253   size_t nranges;
    00254   kate_font_range **ranges;
    00255   kate_uintptr_t pad[6];
    00256 } kate_font_mapping;
    00257
    00263 typedef struct kate_info {
    00264   unsigned char bitstream_version_major;
    00265   unsigned char bitstream_version_minor;
    00266   unsigned char pad0[2];
    00267
    00268   kate_text_encoding text_encoding;
    00269   kate_text_directionality text_directionality;
    00271   unsigned char num_headers;
    00272   unsigned char granule_shift;
    00273   unsigned char pad1[2];
    00274
    00275   kate_uint32_t gps_numerator;
    00276   kate_uint32_t gps_denominator;
    00278   kate_const char *language;
    00280   kate_const char *category;
    00282   size_t nregions;
    00283   kate_const kate_region *kate_const *regions;
    00285   size_t nstyles;
    00286   kate_const kate_style *kate_const *styles;
    00288   size_t ncurves;
    00289   kate_const kate_curve *kate_const *curves;
    00291   size_t nmotions;
    00292   kate_const kate_motion *kate_const *motions;
    00294   size_t npalettes;
    00295   kate_const kate_palette *kate_const *palettes;
    00297   size_t nbitmaps;
    00298   kate_const kate_bitmap *kate_const *bitmaps;
    00300   size_t nfont_ranges;
    00301   kate_const kate_font_range *kate_const *font_ranges;
    00303   size_t nfont_mappings;
    00304   kate_const kate_font_mapping *kate_const *font_mappings;
    00306   kate_markup_type text_markup_type;
    00308   size_t original_canvas_width;
    00309   size_t original_canvas_height;
    00311   kate_uintptr_t pad2[11];
    00312
    00313   /* internal */
    00314   int remove_markup;
    00315   int no_limits;
    00316   int probe;
    00317
    00318   kate_uintptr_t pad3[13];
    00319 } kate_info;
    00320
    00321 struct kate_encode_state; /* internal */
    00322 struct kate_decode_state; /* internal */
    00323
    00325 typedef struct kate_state {
    00326   kate_const kate_info *ki;
    00328   /* internal */
    00329   kate_const struct kate_encode_state *kes;
    00330   kate_const struct kate_decode_state *kds;
    00331
    00332   kate_uintptr_t pad[5];
    00333 } kate_state;
    00334
    00336 typedef struct kate_comment {
    00337   char **user_comments;
    00338   int *comment_lengths;
    00339   int comments;
    00340   char *vendor;
    00341 } kate_comment;
    00342
    00347 typedef struct kate_event {
    00348   kate_int64_t start;
    00349   kate_int64_t duration;
    00350   kate_int64_t backlink;
    00352   kate_float start_time;
    00353   kate_float end_time;
    00355   kate_int32_t id;
    00357   kate_text_encoding text_encoding;
    00358   kate_text_directionality text_directionality;
    00359   kate_const char *language;
    00360   kate_const char *text;
    00361   size_t len;
    00362   size_t len0;
    00364   size_t nmotions;
    00365   kate_const kate_motion *kate_const *motions;
    00367   kate_const kate_region *region;
    00368   kate_const kate_style *style;
    00369   kate_const kate_style *secondary_style;
    00370   kate_const kate_font_mapping *font_mapping;
    00371   kate_const kate_palette *palette;
    00372   kate_const kate_bitmap *bitmap;
    00374   kate_markup_type text_markup_type;
    00376   size_t nbitmaps;
    00377   kate_const kate_bitmap *kate_const *bitmaps;
    00379   kate_uintptr_t pad0[6];
    00380
    00381   /* internal */
    00382   const kate_info *ki;
    00383   size_t trackers;
    00384
    00385   kate_uintptr_t pad1[10];
    00386 } kate_event;
    00387
    00388 struct kate_tracker_internal; /* internal */
    00389
    00391 typedef struct kate_tracker {
    00392   const kate_info *ki;
    00393   kate_const kate_event *event;
    00394   kate_float t;
    00396   struct {
    00397     unsigned int region:1;
    00398     unsigned int text_alignment_int:1;
    00399     unsigned int text_alignment_ext:1;
    00400     unsigned int text_pos:1;
    00401     unsigned int text_size:1;
    00402     unsigned int marker_pos:4;
    00403     unsigned int text_color:1;
    00404     unsigned int background_color:1;
    00405     unsigned int draw_color:1;
    00406     unsigned int glyph_pointer:4;
    00407     unsigned int path:1;
    00408     unsigned int draw:1;
    00409     unsigned int visible_section:1;
    00410     unsigned int z:1;
    00411     unsigned int hmargins:1;
    00412     unsigned int vmargins:1;
    00413     unsigned int bitmap_pos:1;
    00414     unsigned int bitmap_size:1;
    00415     unsigned int marker_bitmap:4;
    00416     unsigned int glyph_pointer_bitmap:4;
    00417     unsigned int draw_width:1;
    00418     /* 33 bits */
    00419     unsigned int pad0:31;
    00420     /* 64 bits */
    00421   } has;
    00423   int window_w;
    00424   int window_h;
    00425   int frame_x;
    00426   int frame_y;
    00427   int frame_w;
    00428   int frame_h;
    00430   /* has.region */
    00431   kate_float region_x;
    00432   kate_float region_y;
    00433   kate_float region_w;
    00434   kate_float region_h;
    00436   /* has.text_alignment (int/ext) */
    00437   kate_float text_halign;
    00438   kate_float text_valign;
    00440   /* has.text_pos */
    00441   kate_float text_x;
    00442   kate_float text_y;
    00444   /* has.text_size */
    00445   kate_float text_size_x;
    00446   kate_float text_size_y;
    00448   /* has.marker_pos&(1<<n) */
    00449   kate_float marker_x[4];
    00450   kate_float marker_y[4];
    00452   /* has.text_color */
    00453   kate_color text_color;
    00455   /* has.background_color */
    00456   kate_color background_color;
    00458   /* has.draw_color */
    00459   kate_color draw_color;
    00461   /* has.glyph_pointer&(1<<n) */
    00462   kate_float glyph_pointer[4];
    00463   kate_float glyph_height[4];
    00465   /* has.path */
    00466   kate_float path_start;
    00467   kate_float path_end;
    00469   /* has.draw */
    00470   kate_float draw_x;
    00471   kate_float draw_y;
    00473   /* has.visible_section */
    00474   kate_float visible_x;
    00475   kate_float visible_y;
    00477   /* has.z */
    00478   kate_float z;
    00480   /* has.hmargins */
    00481   kate_float left_margin;
    00482   kate_float right_margin;
    00484   /* has.vmargins */
    00485   kate_float top_margin;
    00486   kate_float bottom_margin;
    00488   /* has.bitmap_pos */
    00489   kate_float bitmap_x;
    00490   kate_float bitmap_y;
    00492   /* has.bitmap_size */
    00493   kate_float bitmap_size_x;
    00494   kate_float bitmap_size_y;
    00496   /* has.marker_bitmap&(1<<n) */
    00497   const kate_bitmap *marker_bitmap[4];
    00499   /* has.glyph_pointer_bitmap&(1<<n) */
    00500   const kate_bitmap *glyph_pointer_bitmap[4];
    00502   /* has.draw_width */
    00503   kate_float draw_width;
    00505   /* internal */
    00506   struct kate_tracker_internal *internal;
    00507
    00508   kate_uintptr_t pad[19];
    00509
    00510 } kate_tracker;
    00511
    00513 typedef struct kate_packet {
    00514   size_t nbytes;
    00515   void *data;
    00516 } kate_packet;
    00517
    00518 #ifdef __cplusplus
    00519 extern "C" {
    00520 #endif
    00521
    00523 extern int kate_get_version(void);
    00524 extern const char *kate_get_version_string(void);
    00525 extern int kate_get_bitstream_version(void);
    00526 extern const char *kate_get_bitstream_version_string(void);
    00527
    00529 extern int kate_info_init(kate_info *ki);
    00530 extern int kate_info_set_granule_encoding(kate_info *ki,kate_float resolution,kate_float max_length,kate_float max_event_lifetime);
    00531 extern int kate_info_set_language(kate_info *ki,const char *language);
    00532 extern int kate_info_set_text_directionality(kate_info *ki,kate_text_directionality text_directionality);
    00533 extern int kate_info_set_markup_type(kate_info *ki,kate_markup_type text_markup_type);
    00534 extern int kate_info_set_category(kate_info *ki,const char *category);
    00535 extern int kate_info_set_original_canvas_size(kate_info *ki,size_t width,size_t height);
    00536 extern int kate_info_add_region(kate_info *ki,kate_region *kr);
    00537 extern int kate_info_add_style(kate_info *ki,kate_style *ks);
    00538 extern int kate_info_add_curve(kate_info *ki,kate_curve *kc);
    00539 extern int kate_info_add_motion(kate_info *ki,kate_motion *km);
    00540 extern int kate_info_add_palette(kate_info *ki,kate_palette *kp);
    00541 extern int kate_info_add_bitmap(kate_info *ki,kate_bitmap *kb);
    00542 extern int kate_info_add_font_range(kate_info *ki,kate_font_range *kfr);
    00543 extern int kate_info_add_font_mapping(kate_info *ki,kate_font_mapping *kfm);
    00544 extern int kate_info_matches_language(const kate_info *ki,const char *language);
    00545 extern int kate_info_remove_markup(kate_info *ki,int flag);
    00546 extern int kate_info_no_limits(kate_info *ki,int flag);
    00547 extern int kate_info_clear(kate_info *ki);
    00548
    00550 extern int kate_granule_shift(const kate_info *ki);
    00551 extern int kate_granule_split_time(const kate_info *ki,kate_int64_t granulepos,kate_float *base,kate_float *offset);
    00552 extern kate_float kate_granule_time(const kate_info *ki,kate_int64_t granulepos);
    00553 extern kate_int64_t kate_duration_granule(const kate_info *ki,kate_float duration);
    00554 extern kate_float kate_granule_duration(const kate_info *ki,kate_int64_t duration);
    00555
    00557 extern int kate_clear(kate_state *k);
    00558 extern int kate_motion_get_point(const kate_motion *km,kate_float duration,kate_float t,kate_float *x,kate_float *y);
    00559 extern int kate_curve_get_point(const kate_curve *kc,kate_float t,kate_float *x,kate_float *y);
    00560 extern int kate_region_init(kate_region *kr);
    00561 extern int kate_style_init(kate_style *ks);
    00562 extern int kate_palette_init(kate_palette *kp);
    00563 extern int kate_bitmap_init(kate_bitmap *kb);
    00564 extern int kate_curve_init(kate_curve *kc);
    00565 extern int kate_motion_init(kate_motion *km);
    00566
    00568 extern int kate_text_get_character(kate_text_encoding text_encoding,const char ** const text,size_t *len0);
    00569 extern int kate_text_set_character(kate_text_encoding text_encoding,int c,char ** const text,size_t *len0);
    00570 extern int kate_text_remove_markup(kate_text_encoding text_encoding,char *text,size_t *len0);
    00571 extern int kate_text_validate(kate_text_encoding text_encoding,const char *text,size_t len0);
    00572
    00574 extern int kate_comment_init(kate_comment *kc);
    00575 extern int kate_comment_clear(kate_comment *kc);
    00576 extern int kate_comment_add(kate_comment *kc,const char *comment);
    00577 extern int kate_comment_add_length(kate_comment *kc,const char *comment,size_t len);
    00578 extern int kate_comment_add_tag(kate_comment *kc,const char *tag,const char *value);
    00579 extern const char *kate_comment_query(const kate_comment *kc,const char *tag,int count);
    00580 extern int kate_comment_query_count(const kate_comment *kc,const char *tag);
    00581
    00583 extern int kate_encode_init(kate_state *k,kate_info *ki);
    00584 extern int kate_encode_headers(kate_state *k,kate_comment *kc,kate_packet *kp);
    00585 extern int kate_encode_text(kate_state *k,kate_float start_time,kate_float stop_time,const char *text,size_t sz,kate_packet *kp); /* text is not null terminated */
    00586 extern int kate_encode_text_raw_times(kate_state *k,kate_int64_t start_time,kate_int64_t stop_time,const char *text,size_t sz,kate_packet *kp); /* text is not null terminated */
    00587 extern int kate_encode_keepalive(kate_state *k,kate_float t,kate_packet *kp);
    00588 extern int kate_encode_keepalive_raw_times(kate_state *k,kate_int64_t t,kate_packet *kp);
    00589 extern int kate_encode_repeat(kate_state *k,kate_float t,kate_float threshold,kate_packet *kp);
    00590 extern int kate_encode_repeat_raw_times(kate_state *k,kate_int64_t t,kate_int64_t threshold,kate_packet *kp);
    00591 extern int kate_encode_finish(kate_state *k,kate_float t,kate_packet *kp); /* t may be negative to use the end granule of the last event */
    00592 extern int kate_encode_finish_raw_times(kate_state *k,kate_int64_t t,kate_packet *kp); /* t may be negative to use the end granule of the last event */
    00593 extern int kate_encode_set_id(kate_state *k,kate_int32_t id);
    00594 extern int kate_encode_set_language(kate_state *k,const char *language); /* language can be NULL */
    00595 extern int kate_encode_set_text_encoding(kate_state *k,kate_text_encoding text_encoding);
    00596 extern int kate_encode_set_text_directionality(kate_state *k,kate_text_directionality text_directionality);
    00597 extern int kate_encode_set_region_index(kate_state *k,size_t region);
    00598 extern int kate_encode_set_region(kate_state *k,const kate_region *kr);
    00599 extern int kate_encode_set_style_index(kate_state *k,size_t style);
    00600 extern int kate_encode_set_style(kate_state *k,const kate_style *ks);
    00601 extern int kate_encode_set_secondary_style_index(kate_state *k,size_t style);
    00602 extern int kate_encode_set_secondary_style(kate_state *k,const kate_style *ks);
    00603 extern int kate_encode_set_font_mapping_index(kate_state *k,size_t font_mapping);
    00604 extern int kate_encode_add_motion(kate_state *k,kate_motion *km,int destroy);
    00605 extern int kate_encode_add_motion_index(kate_state *k,size_t motion);
    00606 extern int kate_encode_set_palette_index(kate_state *k,size_t palette);
    00607 extern int kate_encode_set_palette(kate_state *k,const kate_palette *kp);
    00608 extern int kate_encode_set_bitmap_index(kate_state *k,size_t bitmap);
    00609 extern int kate_encode_set_bitmap(kate_state *k,const kate_bitmap *kb);
    00610 extern int kate_encode_add_bitmap(kate_state *k,const kate_bitmap *kb);
    00611 extern int kate_encode_add_bitmap_index(kate_state *k,size_t bitmap);
    00612 extern int kate_encode_set_markup_type(kate_state *k,int markup_type);
    00613 extern kate_int64_t kate_encode_get_granule(const kate_state *k);
    00614
    00616 extern int kate_decode_is_idheader(const kate_packet *kp);
    00617 extern int kate_decode_init(kate_state *k,kate_info *ki);
    00618 extern int kate_decode_headerin(kate_info *ki,kate_comment *kc,kate_packet *kp);
    00619 extern int kate_decode_packetin(kate_state *k,kate_packet *kp);
    00620 extern int kate_decode_eventout(kate_state *k,kate_const kate_event **ev); /* event can be NULL */
    00621 extern int kate_decode_seek(kate_state *k);
    00622
    00624 extern int kate_tracker_init(kate_tracker *kin,const kate_info *ki,kate_const kate_event *ev);
    00625 extern int kate_tracker_clear(kate_tracker *kin);
    00626 extern int kate_tracker_update(kate_tracker *kin,kate_float t,int window_w,int window_h,int frame_x,int frame_y,int frame_w,int frame_h);
    00627 extern int kate_tracker_morph_styles(kate_style *style,kate_float t,const kate_style *from,const kate_style *to);
    00628 extern int kate_tracker_get_text_path_position(kate_tracker *kin,size_t glyph,int *x,int *y);
    00629 extern int kate_tracker_update_property_at_duration(const kate_tracker *kin,kate_float duration,kate_float t,kate_motion_semantics semantics,kate_float *x,kate_float *y);
    00630 extern int kate_tracker_remap(const kate_tracker *kin,kate_motion_mapping x_mapping,kate_motion_mapping y_mapping,kate_float *x,kate_float *y);
    00631
    00633 extern int kate_font_get_index_from_code_point(const kate_font_mapping *kfm,int c);
    00634
    00636 extern int kate_high_decode_init(kate_state *k);
    00637 extern int kate_high_decode_packetin(kate_state *k,kate_packet *kp,kate_const kate_event **ev);
    00638 extern int kate_high_decode_clear(kate_state *k);
    00639 extern const kate_comment *kate_high_decode_get_comments(kate_state *k);
    00640
    00642 extern int kate_packet_wrap(kate_packet *kp,size_t nbytes,const void *data);
    00643 extern int kate_packet_init(kate_packet *kp,size_t nbytes,const void *data);
    00644 extern int kate_packet_clear(kate_packet *kp);
    00645
    00646 #ifdef __cplusplus
    00647 }
    00648 #endif
    00649
    00652 #define KATE_E_NOT_FOUND (-1)
    00653 #define KATE_E_INVALID_PARAMETER (-2)
    00654 #define KATE_E_OUT_OF_MEMORY (-3)
    00655 #define KATE_E_BAD_GRANULE (-4)
    00656 #define KATE_E_INIT (-5)
    00657 #define KATE_E_BAD_PACKET (-6)
    00658 #define KATE_E_TEXT (-7)
    00659 #define KATE_E_LIMIT (-8)
    00660 #define KATE_E_VERSION (-9)
    00661 #define KATE_E_NOT_KATE (-10)
    00662 #define KATE_E_BAD_TAG (-11)
    00663 #define KATE_E_IMPL (-12)
    00666 #endif
    00667