1/***************************************************************************/ 2/* */ 3/* ftbdf.c */ 4/* */ 5/* FreeType API for accessing BDF-specific strings (body). */ 6/* */ 7/* Copyright 2002-2004, 2013, 2014 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_DEBUG_H 21 22#include FT_INTERNAL_OBJECTS_H 23#include FT_SERVICE_BDF_H 24 25 26 /* documentation is in ftbdf.h */ 27 28 FT_EXPORT_DEF( FT_Error ) 29 FT_Get_BDF_Charset_ID( FT_Face face, 30 const char* *acharset_encoding, 31 const char* *acharset_registry ) 32 { 33 FT_Error error; 34 const char* encoding = NULL; 35 const char* registry = NULL; 36 37 FT_Service_BDF service; 38 39 40 if ( !face ) 41 return FT_THROW( Invalid_Face_Handle ); 42 43 FT_FACE_FIND_SERVICE( face, service, BDF ); 44 45 if ( service && service->get_charset_id ) 46 error = service->get_charset_id( face, &encoding, ®istry ); 47 else 48 error = FT_THROW( Invalid_Argument ); 49 50 if ( acharset_encoding ) 51 *acharset_encoding = encoding; 52 53 if ( acharset_registry ) 54 *acharset_registry = registry; 55 56 return error; 57 } 58 59 60 /* documentation is in ftbdf.h */ 61 62 FT_EXPORT_DEF( FT_Error ) 63 FT_Get_BDF_Property( FT_Face face, 64 const char* prop_name, 65 BDF_PropertyRec *aproperty ) 66 { 67 FT_Error error; 68 69 FT_Service_BDF service; 70 71 72 if ( !face ) 73 return FT_THROW( Invalid_Face_Handle ); 74 75 if ( !aproperty ) 76 return FT_THROW( Invalid_Argument ); 77 78 aproperty->type = BDF_PROPERTY_TYPE_NONE; 79 80 FT_FACE_FIND_SERVICE( face, service, BDF ); 81 82 if ( service && service->get_property ) 83 error = service->get_property( face, prop_name, aproperty ); 84 else 85 error = FT_THROW( Invalid_Argument ); 86 87 return error; 88 } 89 90 91/* END */ 92