1 /***************************************************************************/
   2 /*                                                                         */
   3 /*  svpostnm.h                                                             */
   4 /*                                                                         */
   5 /*    The FreeType PostScript name services (specification).               */
   6 /*                                                                         */
   7 /*  Copyright 2003-2018 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 FT_INTERNAL_SERVICE_H
  23 
  24 
  25 FT_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 
  75 FT_END_HEADER
  76 
  77 
  78 #endif /* SVPOSTNM_H_ */
  79 
  80 
  81 /* END */