1 /****************************************************************************
2  *
3  * svpsinfo.h
4  *
5  *   The FreeType PostScript info service (specification).
6  *
7  * Copyright (C) 2003-2020 by
8  * David Turner, Robert Wilhelm, and Werner Lemberg.
9  *
10  * This file is part of the FreeType project, and may only be used,
11  * modified, and distributed under the terms of the FreeType project
12  * license, LICENSE.TXT.  By continuing to use, modify, or distribute
13  * this file you indicate that you have read the license and
14  * understand and accept it fully.
15  *
16  */
17 
18 
19 #ifndef SVPSINFO_H_
20 #define SVPSINFO_H_
21 
22 #include <freetype/internal/ftserv.h>
23 #include <freetype/internal/t1types.h>
24 
25 
26 FT_BEGIN_HEADER
27 
28 
29 #define FT_SERVICE_ID_POSTSCRIPT_INFO  "postscript-info"
30 
31 
32   typedef FT_Error
33   (*PS_GetFontInfoFunc)( FT_Face          face,
34                          PS_FontInfoRec*  afont_info );
35 
36   typedef FT_Error
37   (*PS_GetFontExtraFunc)( FT_Face           face,
38                           PS_FontExtraRec*  afont_extra );
39 
40   typedef FT_Int
41   (*PS_HasGlyphNamesFunc)( FT_Face  face );
42 
43   typedef FT_Error
44   (*PS_GetFontPrivateFunc)( FT_Face         face,
45                             PS_PrivateRec*  afont_private );
46 
47   typedef FT_Long
48   (*PS_GetFontValueFunc)( FT_Face       face,
49                           PS_Dict_Keys  key,
50                           FT_UInt       idx,
51                           void         *value,
52                           FT_Long       value_len );
53 
54 
FT_DEFINE_SERVICE(PsInfo)55   FT_DEFINE_SERVICE( PsInfo )
56   {
57     PS_GetFontInfoFunc     ps_get_font_info;
58     PS_GetFontExtraFunc    ps_get_font_extra;
59     PS_HasGlyphNamesFunc   ps_has_glyph_names;
60     PS_GetFontPrivateFunc  ps_get_font_private;
61     PS_GetFontValueFunc    ps_get_font_value;
62   };
63 
64 
65 #define FT_DEFINE_SERVICE_PSINFOREC( class_,                     \
66                                      get_font_info_,             \
67                                      ps_get_font_extra_,         \
68                                      has_glyph_names_,           \
69                                      get_font_private_,          \
70                                      get_font_value_ )           \
71   static const FT_Service_PsInfoRec  class_ =                    \
72   {                                                              \
73     get_font_info_, ps_get_font_extra_, has_glyph_names_,        \
74     get_font_private_, get_font_value_                           \
75   };
76 
77   /* */
78 
79 
80 FT_END_HEADER
81 
82 
83 #endif /* SVPSINFO_H_ */
84 
85 
86 /* END */
87