ref: 9e9bc9dadedd1dfa4023ba2124dba5afcf4f835f
dir: /src/base/ftbdf.c/
/****************************************************************************
 *
 * ftbdf.c
 *
 *   FreeType API for accessing BDF-specific strings (body).
 *
 * Copyright (C) 2002-2019 by
 * David Turner, Robert Wilhelm, and Werner Lemberg.
 *
 * This file is part of the FreeType project, and may only be used,
 * modified, and distributed under the terms of the FreeType project
 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
 * this file you indicate that you have read the license and
 * understand and accept it fully.
 *
 */
#include <ft2build.h>
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_OBJECTS_H
#include FT_SERVICE_BDF_H
  /* documentation is in ftbdf.h */
  FT_EXPORT_DEF( FT_Error )
  FT_Get_BDF_Charset_ID( FT_Face       face,
                         const char*  *acharset_encoding,
                         const char*  *acharset_registry )
  {
    FT_Error     error;
    const char*  encoding = NULL;
    const char*  registry = NULL;
    FT_Service_BDF  service;
    if ( !face )
      return FT_THROW( Invalid_Face_Handle );
    FT_FACE_FIND_SERVICE( face, service, BDF );
    if ( service && service->get_charset_id )
      error = service->get_charset_id( face, &encoding, ®istry );
    else
      error = FT_THROW( Invalid_Argument );
    if ( acharset_encoding )
      *acharset_encoding = encoding;
    if ( acharset_registry )
      *acharset_registry = registry;
    return error;
  }
  /* documentation is in ftbdf.h */
  FT_EXPORT_DEF( FT_Error )
  FT_Get_BDF_Property( FT_Face           face,
                       const char*       prop_name,
                       BDF_PropertyRec  *aproperty )
  {
    FT_Error  error;
    FT_Service_BDF  service;
    if ( !face )
      return FT_THROW( Invalid_Face_Handle );
    if ( !aproperty )
      return FT_THROW( Invalid_Argument );
    aproperty->type = BDF_PROPERTY_TYPE_NONE;
    FT_FACE_FIND_SERVICE( face, service, BDF );
    if ( service && service->get_property )
      error = service->get_property( face, prop_name, aproperty );
    else
      error = FT_THROW( Invalid_Argument );
    return error;
  }
/* END */