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