ICU 50.1.2  50.1.2
LETypes.h
Go to the documentation of this file.
1 /*
2  *
3  * (C) Copyright IBM Corp. 1998-2012 - All Rights Reserved
4  *
5  */
6 
7 #ifndef __LETYPES_H
8 #define __LETYPES_H
9 
10 #if !defined(LE_USE_CMEMORY) && (defined(U_LAYOUT_IMPLEMENTATION) || defined(U_LAYOUTEX_IMPLEMENTATION) || defined(U_STATIC_IMPLEMENTATION) || defined(U_COMBINED_IMPLEMENTATION))
11 #define LE_USE_CMEMORY
12 #endif
13 
14 #include "unicode/utypes.h"
15 
16 #ifdef __cplusplus
17 #include "unicode/uobject.h"
18 #endif
19 
20 #ifdef LE_USE_CMEMORY
21 #include "cmemory.h"
22 #endif
23 
34 typedef int32_t le_int32;
35 
41 typedef uint32_t le_uint32;
42 
48 typedef int16_t le_int16;
49 
55 typedef uint16_t le_uint16;
56 
62 typedef int8_t le_int8;
63 
69 typedef uint8_t le_uint8;
70 
71 
77 typedef UBool le_bool;
78 
79 #ifndef NULL
80 
85 #define NULL 0
86 #endif
87 
93 typedef le_uint32 LETag;
94 
102 
113 
120 #define LE_GLYPH_MASK 0x0000FFFF
121 
129 #define LE_GLYPH_SHIFT 0
130 
131 
138 #define LE_SUB_FONT_MASK 0x00FF0000
139 
147 #define LE_SUB_FONT_SHIFT 16
148 
149 
156 #define LE_CLIENT_MASK 0xFF000000
157 
165 #define LE_CLIENT_SHIFT 24
166 
167 
174 #define LE_GET_GLYPH(gid) ((gid & LE_GLYPH_MASK) >> LE_GLYPH_SHIFT)
175 
182 #define LE_GET_SUB_FONT(gid) ((gid & LE_SUB_FONT_MASK) >> LE_SUB_FONT_SHIFT)
183 
190 #define LE_GET_CLIENT(gid) ((gid & LE_CLIENT_MASK) >> LE_CLIENT_SHIFT)
191 
192 
199 #define LE_SET_GLYPH(gid, glyph) ((gid & ~LE_GLYPH_MASK) | ((glyph << LE_GLYPH_SHIFT) & LE_GLYPH_MASK))
200 
207 #define LE_SET_SUB_FONT(gid, font) ((gid & ~LE_SUB_FONT_MASK) | ((font << LE_SUB_FONT_SHIFT) & LE_SUB_FONT_MASK))
208 
215 #define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK))
216 
217 
224 
231 
232 #ifndef U_HIDE_DEPRECATED_API
233 
238 typedef UChar LEUnicode;
239 #endif /* U_HIDE_DEPRECATED_API */
240 
246 struct LEPoint
247 {
253  float fX;
254 
260  float fY;
261 };
262 
263 #ifndef __cplusplus
264 
269 typedef struct LEPoint LEPoint;
270 #endif
271 
272 
273 #ifndef U_HIDE_INTERNAL_API
274 
279 #define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
280 
281 #ifdef LE_USE_CMEMORY
282 
287 #define LE_ARRAY_COPY(dst, src, count) uprv_memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
288 
295 #define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
296 
303 #define LE_GROW_ARRAY(array, newSize) uprv_realloc((void *) (array), (newSize) * sizeof (array)[0])
304 
311 #define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
312 #else
313 
314 /* Not using ICU memory - use C std lib versions */
315 
316 #include <stdlib.h>
317 #include <string.h>
318 
324 #define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
325 
331 #define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
332 
339 #define LE_NEW_ARRAY(type, count) (type *) malloc((count) * sizeof(type))
340 
347 #define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
348 
355 #define LE_DELETE_ARRAY(array) free((void *) (array))
356 
357 #endif
358 #endif /* U_HIDE_INTERNAL_API */
359 
370 #define LE_MAKE_TAG(a, b, c, d) \
371  (((le_uint32)(a) << 24) | \
372  ((le_uint32)(b) << 16) | \
373  ((le_uint32)(c) << 8) | \
374  (le_uint32)(d))
375 
383  LE_ACNT_TABLE_TAG = 0x61636E74UL,
384  LE_AVAR_TABLE_TAG = 0x61766172UL,
385  LE_BASE_TABLE_TAG = 0x42415345UL,
386  LE_BDAT_TABLE_TAG = 0x62646174UL,
387  LE_BHED_TABLE_TAG = 0x62686564UL,
388  LE_BLOC_TABLE_TAG = 0x626C6F63UL,
389  LE_BSLN_TABLE_TAG = 0x62736C6EUL,
390  LE_CFF__TABLE_TAG = 0x43464620UL,
391  LE_CMAP_TABLE_TAG = 0x636D6170UL,
392  LE_CVAR_TABLE_TAG = 0x63766172UL,
393  LE_CVT__TABLE_TAG = 0x63767420UL,
394  LE_DSIG_TABLE_TAG = 0x44534947UL,
395  LE_EBDT_TABLE_TAG = 0x45424454UL,
396  LE_EBLC_TABLE_TAG = 0x45424C43UL,
397  LE_EBSC_TABLE_TAG = 0x45425343UL,
398  LE_FDSC_TABLE_TAG = 0x66647363UL,
399  LE_FEAT_TABLE_TAG = 0x66656174UL,
400  LE_FMTX_TABLE_TAG = 0x666D7478UL,
401  LE_FPGM_TABLE_TAG = 0x6670676DUL,
402  LE_FVAR_TABLE_TAG = 0x66766172UL,
403  LE_GASP_TABLE_TAG = 0x67617370UL,
404  LE_GDEF_TABLE_TAG = 0x47444546UL,
405  LE_GLYF_TABLE_TAG = 0x676C7966UL,
406  LE_GPOS_TABLE_TAG = 0x47504F53UL,
407  LE_GSUB_TABLE_TAG = 0x47535542UL,
408  LE_GVAR_TABLE_TAG = 0x67766172UL,
409  LE_HDMX_TABLE_TAG = 0x68646D78UL,
410  LE_HEAD_TABLE_TAG = 0x68656164UL,
411  LE_HHEA_TABLE_TAG = 0x68686561UL,
412  LE_HMTX_TABLE_TAG = 0x686D7478UL,
413  LE_HSTY_TABLE_TAG = 0x68737479UL,
414  LE_JUST_TABLE_TAG = 0x6A757374UL,
415  LE_JSTF_TABLE_TAG = 0x4A535446UL,
416  LE_KERN_TABLE_TAG = 0x6B65726EUL,
417  LE_LCAR_TABLE_TAG = 0x6C636172UL,
418  LE_LOCA_TABLE_TAG = 0x6C6F6361UL,
419  LE_LTSH_TABLE_TAG = 0x4C545348UL,
420  LE_MAXP_TABLE_TAG = 0x6D617870UL,
421  LE_MORT_TABLE_TAG = 0x6D6F7274UL,
422  LE_MORX_TABLE_TAG = 0x6D6F7278UL,
423  LE_NAME_TABLE_TAG = 0x6E616D65UL,
424  LE_OPBD_TABLE_TAG = 0x6F706264UL,
425  LE_OS_2_TABLE_TAG = 0x4F532F32UL,
426  LE_PCLT_TABLE_TAG = 0x50434C54UL,
427  LE_POST_TABLE_TAG = 0x706F7374UL,
428  LE_PREP_TABLE_TAG = 0x70726570UL,
429  LE_PROP_TABLE_TAG = 0x70726F70UL,
430  LE_TRAK_TABLE_TAG = 0x7472616BUL,
431  LE_VDMX_TABLE_TAG = 0x56444D58UL,
432  LE_VHEA_TABLE_TAG = 0x76686561UL,
433  LE_VMTX_TABLE_TAG = 0x766D7478UL,
434  LE_VORG_TABLE_TAG = 0x564F5247UL,
435  LE_ZAPF_TABLE_TAG = 0x5A617066UL
436 };
437 
445  LE_AALT_FEATURE_TAG = 0x61616C74UL,
446  LE_ABVF_FEATURE_TAG = 0x61627666UL,
447  LE_ABVM_FEATURE_TAG = 0x6162766DUL,
448  LE_ABVS_FEATURE_TAG = 0x61627673UL,
449  LE_AFRC_FEATURE_TAG = 0x61667263UL,
450  LE_AKHN_FEATURE_TAG = 0x616B686EUL,
451  LE_BLWF_FEATURE_TAG = 0x626C7766UL,
452  LE_BLWM_FEATURE_TAG = 0x626C776DUL,
453  LE_BLWS_FEATURE_TAG = 0x626C7773UL,
454  LE_CALT_FEATURE_TAG = 0x63616C74UL,
455  LE_CASE_FEATURE_TAG = 0x63617365UL,
456  LE_CCMP_FEATURE_TAG = 0x63636D70UL,
457  LE_CJCT_FEATURE_TAG = 0x636A6374UL,
458  LE_CLIG_FEATURE_TAG = 0x636C6967UL,
459  LE_CPSP_FEATURE_TAG = 0x63707370UL,
460  LE_CSWH_FEATURE_TAG = 0x63737768UL,
461  LE_CURS_FEATURE_TAG = 0x63757273UL,
462  LE_C2SC_FEATURE_TAG = 0x63327363UL,
463  LE_C2PC_FEATURE_TAG = 0x63327063UL,
464  LE_DIST_FEATURE_TAG = 0x64697374UL,
465  LE_DLIG_FEATURE_TAG = 0x646C6967UL,
466  LE_DNOM_FEATURE_TAG = 0x646E6F6DUL,
467  LE_EXPT_FEATURE_TAG = 0x65787074UL,
468  LE_FALT_FEATURE_TAG = 0x66616C74UL,
469  LE_FIN2_FEATURE_TAG = 0x66696E32UL,
470  LE_FIN3_FEATURE_TAG = 0x66696E33UL,
471  LE_FINA_FEATURE_TAG = 0x66696E61UL,
472  LE_FRAC_FEATURE_TAG = 0x66726163UL,
473  LE_FWID_FEATURE_TAG = 0x66776964UL,
474  LE_HALF_FEATURE_TAG = 0x68616C66UL,
475  LE_HALN_FEATURE_TAG = 0x68616C6EUL,
476  LE_HALT_FEATURE_TAG = 0x68616C74UL,
477  LE_HIST_FEATURE_TAG = 0x68697374UL,
478  LE_HKNA_FEATURE_TAG = 0x686B6E61UL,
479  LE_HLIG_FEATURE_TAG = 0x686C6967UL,
480  LE_HNGL_FEATURE_TAG = 0x686E676CUL,
481  LE_HWID_FEATURE_TAG = 0x68776964UL,
482  LE_INIT_FEATURE_TAG = 0x696E6974UL,
483  LE_ISOL_FEATURE_TAG = 0x69736F6CUL,
484  LE_ITAL_FEATURE_TAG = 0x6974616CUL,
485  LE_JALT_FEATURE_TAG = 0x6A616C74UL,
486  LE_JP78_FEATURE_TAG = 0x6A703738UL,
487  LE_JP83_FEATURE_TAG = 0x6A703833UL,
488  LE_JP90_FEATURE_TAG = 0x6A703930UL,
489  LE_KERN_FEATURE_TAG = 0x6B65726EUL,
490  LE_LFBD_FEATURE_TAG = 0x6C666264UL,
491  LE_LIGA_FEATURE_TAG = 0x6C696761UL,
492  LE_LJMO_FEATURE_TAG = 0x6C6A6D6FUL,
493  LE_LNUM_FEATURE_TAG = 0x6C6E756DUL,
494  LE_LOCL_FEATURE_TAG = 0x6C6F636CUL,
495  LE_MARK_FEATURE_TAG = 0x6D61726BUL,
496  LE_MED2_FEATURE_TAG = 0x6D656432UL,
497  LE_MEDI_FEATURE_TAG = 0x6D656469UL,
498  LE_MGRK_FEATURE_TAG = 0x6D67726BUL,
499  LE_MKMK_FEATURE_TAG = 0x6D6B6D6BUL,
500  LE_MSET_FEATURE_TAG = 0x6D736574UL,
501  LE_NALT_FEATURE_TAG = 0x6E616C74UL,
502  LE_NLCK_FEATURE_TAG = 0x6E6C636BUL,
503  LE_NUKT_FEATURE_TAG = 0x6E756B74UL,
504  LE_NUMR_FEATURE_TAG = 0x6E756D72UL,
505  LE_ONUM_FEATURE_TAG = 0x6F6E756DUL,
506  LE_OPBD_FEATURE_TAG = 0x6F706264UL,
507  LE_ORDN_FEATURE_TAG = 0x6F72646EUL,
508  LE_ORNM_FEATURE_TAG = 0x6F726E6DUL,
509  LE_PALT_FEATURE_TAG = 0x70616C74UL,
510  LE_PCAP_FEATURE_TAG = 0x70636170UL,
511  LE_PNUM_FEATURE_TAG = 0x706E756DUL,
512  LE_PREF_FEATURE_TAG = 0x70726566UL,
513  LE_PRES_FEATURE_TAG = 0x70726573UL,
514  LE_PSTF_FEATURE_TAG = 0x70737466UL,
515  LE_PSTS_FEATURE_TAG = 0x70737473UL,
516  LE_PWID_FEATURE_TAG = 0x70776964UL,
517  LE_QWID_FEATURE_TAG = 0x71776964UL,
518  LE_RAND_FEATURE_TAG = 0x72616E64UL,
519  LE_RLIG_FEATURE_TAG = 0x726C6967UL,
520  LE_RPHF_FEATURE_TAG = 0x72706866UL,
521  LE_RKRF_FEATURE_TAG = 0x726B7266UL,
522  LE_RTBD_FEATURE_TAG = 0x72746264UL,
523  LE_RTLA_FEATURE_TAG = 0x72746C61UL,
524  LE_RUBY_FEATURE_TAG = 0x72756279UL,
525  LE_SALT_FEATURE_TAG = 0x73616C74UL,
526  LE_SINF_FEATURE_TAG = 0x73696E66UL,
527  LE_SIZE_FEATURE_TAG = 0x73697A65UL,
528  LE_SMCP_FEATURE_TAG = 0x736D6370UL,
529  LE_SMPL_FEATURE_TAG = 0x736D706CUL,
530  LE_SS01_FEATURE_TAG = 0x73733031UL,
531  LE_SS02_FEATURE_TAG = 0x73733032UL,
532  LE_SS03_FEATURE_TAG = 0x73733033UL,
533  LE_SS04_FEATURE_TAG = 0x73733034UL,
534  LE_SS05_FEATURE_TAG = 0x73733035UL,
535  LE_SS06_FEATURE_TAG = 0x73733036UL,
536  LE_SS07_FEATURE_TAG = 0x73733037UL,
537  LE_SS08_FEATURE_TAG = 0x73733038UL,
538  LE_SS09_FEATURE_TAG = 0x73733039UL,
539  LE_SS10_FEATURE_TAG = 0x73733130UL,
540  LE_SS11_FEATURE_TAG = 0x73733131UL,
541  LE_SS12_FEATURE_TAG = 0x73733132UL,
542  LE_SS13_FEATURE_TAG = 0x73733133UL,
543  LE_SS14_FEATURE_TAG = 0x73733134UL,
544  LE_SS15_FEATURE_TAG = 0x73733135UL,
545  LE_SS16_FEATURE_TAG = 0x73733136UL,
546  LE_SS17_FEATURE_TAG = 0x73733137UL,
547  LE_SS18_FEATURE_TAG = 0x73733138UL,
548  LE_SS19_FEATURE_TAG = 0x73733139UL,
549  LE_SS20_FEATURE_TAG = 0x73733230UL,
550  LE_SUBS_FEATURE_TAG = 0x73756273UL,
551  LE_SUPS_FEATURE_TAG = 0x73757073UL,
552  LE_SWSH_FEATURE_TAG = 0x73777368UL,
553  LE_TITL_FEATURE_TAG = 0x7469746CUL,
554  LE_TJMO_FEATURE_TAG = 0x746A6D6FUL,
555  LE_TNAM_FEATURE_TAG = 0x746E616DUL,
556  LE_TNUM_FEATURE_TAG = 0x746E756DUL,
557  LE_TRAD_FEATURE_TAG = 0x74726164UL,
558  LE_TWID_FEATURE_TAG = 0x74776964UL,
559  LE_UNIC_FEATURE_TAG = 0x756E6963UL,
560  LE_VALT_FEATURE_TAG = 0x76616C74UL,
561  LE_VATU_FEATURE_TAG = 0x76617475UL,
562  LE_VERT_FEATURE_TAG = 0x76657274UL,
563  LE_VHAL_FEATURE_TAG = 0x7668616CUL,
564  LE_VJMO_FEATURE_TAG = 0x766A6D6FUL,
565  LE_VKNA_FEATURE_TAG = 0x766B6E61UL,
566  LE_VKRN_FEATURE_TAG = 0x766B726EUL,
567  LE_VPAL_FEATURE_TAG = 0x7670616CUL,
568  LE_VRT2_FEATURE_TAG = 0x76727432UL,
569  LE_ZERO_FEATURE_TAG = 0x7A65726FUL
570 };
571 
578  /* informational */
581  /* success */
584  /* failures */
592 };
593 
594 #ifndef __cplusplus
595 
601 #endif
602 
608 #define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
609 
615 #define LE_FAILURE(code) (U_FAILURE((UErrorCode)code))
616 
617 #endif