1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */
2 
3 #ifndef __VT_CTL_LOADER_H__
4 #define __VT_CTL_LOADER_H__
5 
6 #include "vt_line.h"
7 #include "vt_logical_visual.h"
8 #include "vt_shape.h"
9 
10 typedef enum vt_ctl_bidi_id {
11   CTL_BIDI_API_COMPAT_CHECK,
12   VT_LINE_SET_USE_BIDI,
13   VT_LINE_BIDI_CONVERT_LOGICAL_CHAR_INDEX_TO_VISUAL,
14   VT_LINE_BIDI_CONVERT_VISUAL_CHAR_INDEX_TO_LOGICAL,
15   VT_LINE_BIDI_COPY_LOGICAL_STR,
16   VT_LINE_BIDI_IS_RTL,
17   VT_SHAPE_ARABIC,
18   VT_IS_ARABIC_COMBINING,
19   VT_IS_RTL_CHAR,
20   VT_BIDI_COPY,
21   VT_BIDI_RESET,
22   VT_LINE_BIDI_NEED_SHAPE,
23   VT_LINE_BIDI_RENDER,
24   VT_LINE_BIDI_VISUAL,
25   VT_LINE_BIDI_LOGICAL,
26   MAX_CTL_BIDI_FUNCS,
27 
28 } vt_ctl_bidi_id_t;
29 
30 typedef enum vt_ctl_iscii_id {
31   CTL_ISCII_API_COMPAT_CHECK,
32   VT_ISCIIKEY_STATE_NEW,
33   VT_ISCIIKEY_STATE_DESTROY,
34   VT_CONVERT_ASCII_TO_ISCII,
35   VT_LINE_SET_USE_ISCII,
36   VT_LINE_ISCII_CONVERT_LOGICAL_CHAR_INDEX_TO_VISUAL,
37   VT_LINE_ISCII_CONVERT_VISUAL_CHAR_INDEX_TO_LOGICAL,
38   VT_SHAPE_ISCII,
39   VT_ISCII_COPY,
40   VT_ISCII_RESET,
41   VT_LINE_ISCII_NEED_SHAPE,
42   VT_LINE_ISCII_RENDER,
43   VT_LINE_ISCII_VISUAL,
44   VT_LINE_ISCII_LOGICAL,
45   MAX_CTL_ISCII_FUNCS,
46 
47 } vt_ctl_iscii_id_t;
48 
49 #define CTL_API_VERSION 0x02
50 #define CTL_API_COMPAT_CHECK_MAGIC \
51   (((CTL_API_VERSION & 0x0f) << 28) | ((sizeof(vt_line_t) & 0xff) << 20))
52 
53 void *vt_load_ctl_bidi_func(vt_ctl_bidi_id_t id);
54 
55 void *vt_load_ctl_iscii_func(vt_ctl_iscii_id_t id);
56 
57 #endif
58