1 /* Copyright (C) 2008 Vincent Penquerc'h.
2 This file is part of the Kate codec library.
3 Written by Vincent Penquerc'h.
4
5 Use, distribution and reproduction of this library is governed
6 by a BSD style source license included with this source in the
7 file 'COPYING'. Please read these terms before distributing. */
8
9
10 #ifdef HAVE_CONFIG_H
11 #include "config.h"
12 #endif
13 #ifdef HAVE_UNISTD_H
14 #include <unistd.h>
15 #endif
16 #include <stdarg.h>
17 #include <stdio.h>
18 #ifdef HAVE_STDLIB_H
19 #include <stdlib.h>
20 #endif
21 #include <errno.h>
22 #ifdef HAVE_STRING_H
23 #include <string.h>
24 #endif
25 #include <ogg/ogg.h>
26 #include "kate/oggkate.h"
27 #include "kate_internal.h"
28 #include "kutil.h"
29
halign2text(kate_float d)30 const char *halign2text(kate_float d)
31 {
32 static char tmp[32];
33 if (d==0.0) return "hcenter";
34 if (d==1.0) return "hright";
35 if (d==-1.0) return "hleft";
36 snprintf(tmp,sizeof(tmp),"halign %.16g",d);
37 tmp[sizeof(tmp)-1]=0;
38 return tmp;
39 }
40
valign2text(kate_float d)41 const char *valign2text(kate_float d)
42 {
43 static char tmp[32];
44 if (d==0.0) return "vcenter";
45 if (d==-1.0) return "vtop";
46 if (d==1.0) return "vbottom";
47 snprintf(tmp,sizeof(tmp),"valign %.16g",d);
48 tmp[sizeof(tmp)-1]=0;
49 return tmp;
50 }
51
metric2text(kate_space_metric d)52 const char *metric2text(kate_space_metric d)
53 {
54 switch (d) {
55 case kate_pixel: return "pixel";
56 case kate_percentage: return "percent";
57 case kate_millionths: return "millionths";
58 default: return "invalid";
59 }
60 }
61
metric2suffix(kate_space_metric d)62 const char *metric2suffix(kate_space_metric d)
63 {
64 switch (d) {
65 case kate_pixel: return "";
66 case kate_percentage: return "%";
67 case kate_millionths: return "m";
68 default: return "invalid";
69 }
70 }
71
curve2text(kate_curve_type d)72 const char *curve2text(kate_curve_type d)
73 {
74 switch (d) {
75 case kate_curve_none: return "none";
76 case kate_curve_static: return "static";
77 case kate_curve_linear: return "linear";
78 case kate_curve_catmull_rom_spline: return "catmull_rom";
79 case kate_curve_bezier_cubic_spline: return "bezier_cubic";
80 case kate_curve_bspline: return "bspline";
81 }
82 return "invalid";
83 }
84
semantics2text(kate_motion_semantics d)85 const char *semantics2text(kate_motion_semantics d)
86 {
87 static char tmp[32];
88 switch (d) {
89 case kate_motion_semantics_time: return "time";
90 case kate_motion_semantics_region_position: return "region position";
91 case kate_motion_semantics_region_size: return "region size";
92 case kate_motion_semantics_text_alignment_ext: return "external text alignment";
93 case kate_motion_semantics_text_alignment_int: return "internal text alignment";
94 case kate_motion_semantics_text_position: return "text position";
95 case kate_motion_semantics_text_size: return "text size";
96 case kate_motion_semantics_marker1_position: return "marker 1 position";
97 case kate_motion_semantics_marker2_position: return "marker 2 position";
98 case kate_motion_semantics_marker3_position: return "marker 3 position";
99 case kate_motion_semantics_marker4_position: return "marker 4 position";
100 case kate_motion_semantics_glyph_pointer_1: return "glyph pointer 1";
101 case kate_motion_semantics_glyph_pointer_2: return "glyph pointer 2";
102 case kate_motion_semantics_glyph_pointer_3: return "glyph pointer 3";
103 case kate_motion_semantics_glyph_pointer_4: return "glyph pointer 4";
104 case kate_motion_semantics_text_color_rg: return "text color rg";
105 case kate_motion_semantics_text_color_ba: return "text color ba";
106 case kate_motion_semantics_background_color_rg: return "background color rg";
107 case kate_motion_semantics_background_color_ba: return "background color ba";
108 case kate_motion_semantics_draw_color_rg: return "draw color rg";
109 case kate_motion_semantics_draw_color_ba: return "draw color ba";
110 case kate_motion_semantics_style_morph: return "style morph";
111 case kate_motion_semantics_text_path: return "text path";
112 case kate_motion_semantics_text_path_section: return "text path section";
113 case kate_motion_semantics_draw: return "draw";
114 case kate_motion_semantics_text_visible_section: return "visible section";
115 case kate_motion_semantics_z: return "z";
116 case kate_motion_semantics_horizontal_margins: return "horizontal margins";
117 case kate_motion_semantics_vertical_margins: return "vertical margins";
118 case kate_motion_semantics_bitmap_position: return "bitmap position";
119 case kate_motion_semantics_bitmap_size: return "bitmap size";
120 case kate_motion_semantics_marker1_bitmap: return "marker 1 bitmap";
121 case kate_motion_semantics_marker2_bitmap: return "marker 2 bitmap";
122 case kate_motion_semantics_marker3_bitmap: return "marker 3 bitmap";
123 case kate_motion_semantics_marker4_bitmap: return "marker 4 bitmap";
124 case kate_motion_semantics_glyph_pointer_1_bitmap: return "glyph pointer 1 bitmap";
125 case kate_motion_semantics_glyph_pointer_2_bitmap: return "glyph pointer 2 bitmap";
126 case kate_motion_semantics_glyph_pointer_3_bitmap: return "glyph pointer 3 bitmap";
127 case kate_motion_semantics_glyph_pointer_4_bitmap: return "glyph pointer 4 bitmap";
128 case kate_motion_semantics_draw_width: return "draw width";
129 default: snprintf(tmp,sizeof(tmp),"user %u",d); return tmp;
130 }
131 return "invalid";
132 }
133
mapping2text(kate_motion_mapping d)134 const char *mapping2text(kate_motion_mapping d)
135 {
136 static char tmp[32];
137 switch (d) {
138 case kate_motion_mapping_none: return "none";
139 case kate_motion_mapping_frame: return "frame";
140 case kate_motion_mapping_region: return "region";
141 case kate_motion_mapping_event_duration: return "event duration";
142 case kate_motion_mapping_bitmap_size: return "bitmap size";
143 default: snprintf(tmp,sizeof(tmp),"user %u",d); return tmp;
144 }
145 return "invalid";
146 }
147
directionality2text(kate_text_directionality d)148 const char *directionality2text(kate_text_directionality d)
149 {
150 switch (d) {
151 case kate_l2r_t2b: return "l2r_t2b";
152 case kate_r2l_t2b: return "r2l_t2b";
153 case kate_t2b_r2l: return "t2b_r2l";
154 case kate_t2b_l2r: return "t2b_l2r";
155 }
156 return "invalid";
157 }
158
wrap2text(kate_wrap_mode w)159 const char *wrap2text(kate_wrap_mode w)
160 {
161 switch (w) {
162 case kate_wrap_word: return "word";
163 case kate_wrap_none: return "none";
164 }
165 return "invalid";
166 }
167
encoding2text(kate_text_encoding text_encoding)168 const char *encoding2text(kate_text_encoding text_encoding)
169 {
170 switch (text_encoding) {
171 case kate_utf8: return "UTF-8";
172 default: return "unknown";
173 }
174 }
175
176