Home | History | Annotate | Download | only in base
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  ftbdf.c                                                                */
      4 /*                                                                         */
      5 /*    FreeType API for accessing BDF-specific strings (body).              */
      6 /*                                                                         */
      7 /*  Copyright 2002-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 #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, &registry );
     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