1/***************************************************************************/
2/*                                                                         */
3/*  svpostnm.h                                                             */
4/*                                                                         */
5/*    The FreeType PostScript name services (specification).               */
6/*                                                                         */
7/*  Copyright 2003, 2007, 2009, 2012 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 __SVPOSTNM_H__
20#define __SVPOSTNM_H__
21
22#include "../ftserv.h"
23
24
25FT_BEGIN_HEADER
26
27  /*
28   *  A trivial service used to retrieve the PostScript name of a given
29   *  font when available.  The `get_name' field should never be NULL.
30   *
31   *  The corresponding function can return NULL to indicate that the
32   *  PostScript name is not available.
33   *
34   *  The name is owned by the face and will be destroyed with it.
35   */
36
37#define FT_SERVICE_ID_POSTSCRIPT_FONT_NAME  "postscript-font-name"
38
39
40  typedef const char*
41  (*FT_PsName_GetFunc)( FT_Face  face );
42
43
44  FT_DEFINE_SERVICE( PsFontName )
45  {
46    FT_PsName_GetFunc  get_ps_font_name;
47  };
48
49
50#ifndef FT_CONFIG_OPTION_PIC
51
52#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
53  static const FT_Service_PsFontNameRec  class_ =                    \
54  {                                                                  \
55    get_ps_font_name_                                                \
56  };
57
58#else /* FT_CONFIG_OPTION_PIC */
59
60#define FT_DEFINE_SERVICE_PSFONTNAMEREC( class_, get_ps_font_name_ ) \
61  void                                                               \
62  FT_Init_Class_ ## class_( FT_Library                 library,      \
63                            FT_Service_PsFontNameRec*  clazz )       \
64  {                                                                  \
65    FT_UNUSED( library );                                            \
66                                                                     \
67    clazz->get_ps_font_name = get_ps_font_name_;                     \
68  }
69
70#endif /* FT_CONFIG_OPTION_PIC */
71
72  /* */
73
74
75FT_END_HEADER
76
77
78#endif /* __SVPOSTNM_H__ */
79
80
81/* END */
82