1 /***************************************************************************/ 2 /* */ 3 /* fttype1.c */ 4 /* */ 5 /* FreeType utility file for PS names support (body). */ 6 /* */ 7 /* Copyright 2002-2004, 2011 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 #include <ft2build.h> 20 #include FT_INTERNAL_OBJECTS_H 21 #include FT_INTERNAL_SERVICE_H 22 #include FT_SERVICE_POSTSCRIPT_INFO_H 23 24 25 /* documentation is in t1tables.h */ 26 27 FT_EXPORT_DEF( FT_Error ) FT_Get_PS_Font_Info(FT_Face face,PS_FontInfoRec * afont_info)28 FT_Get_PS_Font_Info( FT_Face face, 29 PS_FontInfoRec* afont_info ) 30 { 31 FT_Error error = FT_ERR( Invalid_Argument ); 32 33 34 if ( face ) 35 { 36 FT_Service_PsInfo service = NULL; 37 38 39 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); 40 41 if ( service && service->ps_get_font_info ) 42 error = service->ps_get_font_info( face, afont_info ); 43 } 44 45 return error; 46 } 47 48 49 /* documentation is in t1tables.h */ 50 51 FT_EXPORT_DEF( FT_Int ) FT_Has_PS_Glyph_Names(FT_Face face)52 FT_Has_PS_Glyph_Names( FT_Face face ) 53 { 54 FT_Int result = 0; 55 FT_Service_PsInfo service = NULL; 56 57 58 if ( face ) 59 { 60 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); 61 62 if ( service && service->ps_has_glyph_names ) 63 result = service->ps_has_glyph_names( face ); 64 } 65 66 return result; 67 } 68 69 70 /* documentation is in t1tables.h */ 71 72 FT_EXPORT_DEF( FT_Error ) FT_Get_PS_Font_Private(FT_Face face,PS_PrivateRec * afont_private)73 FT_Get_PS_Font_Private( FT_Face face, 74 PS_PrivateRec* afont_private ) 75 { 76 FT_Error error = FT_ERR( Invalid_Argument ); 77 78 79 if ( face ) 80 { 81 FT_Service_PsInfo service = NULL; 82 83 84 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); 85 86 if ( service && service->ps_get_font_private ) 87 error = service->ps_get_font_private( face, afont_private ); 88 } 89 90 return error; 91 } 92 93 94 /* documentation is in t1tables.h */ 95 96 FT_EXPORT_DEF( FT_Long ) FT_Get_PS_Font_Value(FT_Face face,PS_Dict_Keys key,FT_UInt idx,void * value,FT_Long value_len)97 FT_Get_PS_Font_Value( FT_Face face, 98 PS_Dict_Keys key, 99 FT_UInt idx, 100 void *value, 101 FT_Long value_len ) 102 { 103 FT_Int result = 0; 104 FT_Service_PsInfo service = NULL; 105 106 107 if ( face ) 108 { 109 FT_FACE_FIND_SERVICE( face, service, POSTSCRIPT_INFO ); 110 111 if ( service && service->ps_get_font_value ) 112 result = service->ps_get_font_value( face, key, idx, 113 value, value_len ); 114 } 115 116 return result; 117 } 118 119 120 /* END */ 121