Home | History | Annotate | Download | only in services
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  svprop.h                                                               */
      4 /*                                                                         */
      5 /*    The FreeType property service (specification).                       */
      6 /*                                                                         */
      7 /*  Copyright 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 __SVPROP_H__
     20 #define __SVPROP_H__
     21 
     22 
     23 FT_BEGIN_HEADER
     24 
     25 
     26 #define FT_SERVICE_ID_PROPERTIES  "properties"
     27 
     28 
     29   typedef FT_Error
     30   (*FT_Properties_SetFunc)( FT_Module    module,
     31                             const char*  property_name,
     32                             const void*  value );
     33 
     34   typedef FT_Error
     35   (*FT_Properties_GetFunc)( FT_Module    module,
     36                             const char*  property_name,
     37                             void*        value );
     38 
     39 
     40   FT_DEFINE_SERVICE( Properties )
     41   {
     42     FT_Properties_SetFunc  set_property;
     43     FT_Properties_GetFunc  get_property;
     44   };
     45 
     46 
     47 #ifndef FT_CONFIG_OPTION_PIC
     48 
     49 #define FT_DEFINE_SERVICE_PROPERTIESREC( class_,          \
     50                                          set_property_,   \
     51                                          get_property_ )  \
     52   static const FT_Service_PropertiesRec  class_ =         \
     53   {                                                       \
     54     set_property_,                                        \
     55     get_property_                                         \
     56   };
     57 
     58 #else /* FT_CONFIG_OPTION_PIC */
     59 
     60 #define FT_DEFINE_SERVICE_PROPERTIESREC( class_,                \
     61                                          set_property_,         \
     62                                          get_property_ )        \
     63   void                                                          \
     64   FT_Init_Class_ ## class_( FT_Service_PropertiesRec*  clazz )  \
     65   {                                                             \
     66     clazz->set_property = set_property_;                        \
     67     clazz->get_property = get_property_;                        \
     68   }
     69 
     70 #endif /* FT_CONFIG_OPTION_PIC */
     71 
     72   /* */
     73 
     74 
     75 FT_END_HEADER
     76 
     77 
     78 #endif /* __SVPROP_H__ */
     79 
     80 
     81 /* END */
     82