1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  ftsnames.h                                                             */
4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
5a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin/*    Simple interface to access SFNT `name' tables (which are used        */
6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    to hold font names, copyright info, notices, etc.) (specification).  */
7049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*    This is _not_ used to retrieve glyph names!                          */
9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
10a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin/*  Copyright 1996-2017 by                                                 */
11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  This file is part of the FreeType project, and may only be used,       */
14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  modified, and distributed under the terms of the FreeType project      */
15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  this file you indicate that you have read the license and              */
17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*  understand and accept it fully.                                        */
18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/*                                                                         */
19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/
20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
22055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#ifndef FTSNAMES_H_
23055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#define FTSNAMES_H_
24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h>
27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H
28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H
30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!"
31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files"
32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first."
33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif
34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER
37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Section>                                                             */
42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    sfnt_names                                                         */
43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Title>                                                               */
45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    SFNT Names                                                         */
46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Abstract>                                                            */
48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Access the names embedded in TrueType and OpenType files.          */
49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
510a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    The TrueType and OpenType specifications allow the inclusion of    */
52a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    a special names table (`name') in font files.  This table contains */
53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    textual (and internationalized) information regarding the font,    */
54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    like family name, copyright, version, etc.                         */
55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The definitions below are used to access them if available.        */
57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Note that this has nothing to do with glyph names!                 */
59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Struct>                                                              */
66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_SfntName                                                        */
67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    A structure used to model an SFNT `name' table entry.              */
70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Fields>                                                              */
72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    platform_id :: The platform ID for `string'.                       */
73a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   See @TT_PLATFORM_XXX for possible values.           */
74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    encoding_id :: The encoding ID for `string'.                       */
76a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   See @TT_APPLE_ID_XXX, @TT_MAC_ID_XXX,               */
77a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   @TT_ISO_ID_XXX, @TT_MS_ID_XXX, and @TT_ADOBE_ID_XXX */
78a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   for possible values.                                */
79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    language_id :: The language ID for `string'.                       */
81a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   See @TT_MAC_LANGID_XXX and @TT_MS_LANGID_XXX for    */
82a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   possible values.                                    */
83a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
84a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   Registered OpenType values for `language_id' are    */
85a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   always smaller than 0x8000; values equal or larger  */
86a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   than 0x8000 usually indicate a language tag string  */
87a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   (introduced in OpenType version 1.6).  Use function */
88a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   @FT_Get_Sfnt_LangTag with `language_id' as its      */
89a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   argument to retrieve the associated language tag.   */
90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    name_id     :: An identifier for `string'.                         */
92a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   See @TT_NAME_ID_XXX for possible values.            */
93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    string      :: The `name' string.  Note that its format differs    */
95a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   depending on the (platform,encoding) pair, being    */
96a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   either a string of bytes (without a terminating     */
97a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   NULL byte) or containing UTF-16BE entities.         */
98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    string_len  :: The length of `string' in bytes.                    */
100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
102a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    Please refer to the TrueType or OpenType specification for more    */
103a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    details.                                                           */
104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  typedef struct  FT_SfntName_
106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  {
107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UShort  platform_id;
108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UShort  encoding_id;
109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UShort  language_id;
110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_UShort  name_id;
111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project    FT_Byte*   string;      /* this string is *not* null-terminated! */
113a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin    FT_UInt    string_len;  /* in bytes                              */
114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  } FT_SfntName;
116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
118049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Get_Sfnt_Name_Count                                             */
122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
1240a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    Retrieve the number of name strings in the SFNT `name' table.      */
125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face :: A handle to the source face.                               */
128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The number of strings in the `name' table.                         */
131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
132049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_UInt )
133049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Get_Sfnt_Name_Count( FT_Face  face );
134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*************************************************************************/
137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Function>                                                            */
139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    FT_Get_Sfnt_Name                                                   */
140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Description>                                                         */
1420a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    Retrieve a string of the SFNT `name' table for a given index.      */
143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Input>                                                               */
145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    face  :: A handle to the source face.                              */
146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    idx   :: The index of the `name' string.                           */
148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Output>                                                              */
150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    aname :: The indexed @FT_SfntName structure.                       */
151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Return>                                                              */
1530a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project  /*    FreeType error code.  0~means success.                             */
154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* <Note>                                                                */
156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    The `string' array returned in the `aname' structure is not        */
157a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    null-terminated.  Note that you don't have to deallocate `string'  */
158a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    by yourself; FreeType takes care of it if you call @FT_Done_Face.  */
159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
160049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    Use @FT_Get_Sfnt_Name_Count to get the total number of available   */
161049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    `name' table entries, then do a loop until you get the right       */
162049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*    platform, encoding, and name ID.                                   */
163049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /*                                                                       */
164a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    `name' table format~1 entries can use language tags also, see      */
165a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    @FT_Get_Sfnt_LangTag.                                              */
166a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
167049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_EXPORT( FT_Error )
168049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  FT_Get_Sfnt_Name( FT_Face       face,
169049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                    FT_UInt       idx,
170049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project                    FT_SfntName  *aname );
171049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
172049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
173a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*************************************************************************/
174a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
175a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Struct>                                                              */
176a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    FT_SfntLangTag                                                     */
177a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
178a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Description>                                                         */
179a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    A structure to model a language tag entry from an SFNT `name'      */
180a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    table.                                                             */
181a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
182a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Fields>                                                              */
183a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    string      :: The language tag string, encoded in UTF-16BE        */
184a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                   (without trailing NULL bytes).                      */
185a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
186a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    string_len  :: The length of `string' in *bytes*.                  */
187a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
188a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Note>                                                                */
189a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    Please refer to the TrueType or OpenType specification for more    */
190a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    details.                                                           */
191a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
192a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  typedef struct  FT_SfntLangTag_
193a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  {
194a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin    FT_Byte*  string;      /* this string is *not* null-terminated! */
195a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin    FT_UInt   string_len;  /* in bytes                              */
196a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
197a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  } FT_SfntLangTag;
198a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
199a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
200a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*************************************************************************/
201a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
202a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Function>                                                            */
203a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    FT_Get_Sfnt_LangTag                                                */
204a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
205a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Description>                                                         */
206a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    Retrieve the language tag associated with a language ID of an SFNT */
207a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    `name' table entry.                                                */
208a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
209a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Input>                                                               */
210a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    face     :: A handle to the source face.                           */
211a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
212a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    langID   :: The language ID, as returned by @FT_Get_Sfnt_Name.     */
213a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                This is always a value larger than 0x8000.             */
214a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
215a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Output>                                                              */
216a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    alangTag :: The language tag associated with the `name' table      */
217a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                entry's language ID.                                   */
218a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
219a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Return>                                                              */
220a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    FreeType error code.  0~means success.                             */
221a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
222a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* <Note>                                                                */
223a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    The `string' array returned in the `alangTag' structure is not     */
224a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    null-terminated.  Note that you don't have to deallocate `string'  */
225a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    by yourself; FreeType takes care of it if you call @FT_Done_Face.  */
226a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
227a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    Only `name' table format~1 supports language tags.  For format~0   */
228a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    tables, this function always returns FT_Err_Invalid_Table.  For    */
229a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    invalid format~1 language ID values, FT_Err_Invalid_Argument is    */
230a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*    returned.                                                          */
231a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /*                                                                       */
232a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  FT_EXPORT( FT_Error )
233a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  FT_Get_Sfnt_LangTag( FT_Face          face,
234a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin                       FT_UInt          langID,
235a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin                       FT_SfntLangTag  *alangTag );
236a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
237a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
238295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner  /***************************************************************************
239295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
240295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   * @constant:
241a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
242295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
243295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   * @description:
244a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
245a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   family names in the `name' table (introduced in OpenType version
246a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   1.4).  Use this for backwards compatibility with legacy systems that
247a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   have a four-faces-per-family restriction.
248295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
249295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   */
250a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \
251a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin          FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
252a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
253a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
254a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* this constant is deprecated */
255a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
256a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin          FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
257295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
258295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
259295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner  /***************************************************************************
260295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
261295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   * @constant:
262a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
263295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
264295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   * @description:
265a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
266a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   subfamily names in the `name' table (introduced in OpenType version
267a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   1.4).  Use this for backwards compatibility with legacy systems that
268a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin   *   have a four-faces-per-family restriction.
269295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   *
270295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner   */
271a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \
272a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin          FT_MAKE_TAG( 'i', 'g', 'p', 's' )
273a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
274a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin
275a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin  /* this constant is deprecated */
276a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
277a2527749993cb7f25560e4b1266787f1874435d4Jungshik Shin          FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
278295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner
279049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project  /* */
280049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
281049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
282049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER
283049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
284055aee28cedc3631434b2636fc6093c0d4d818abJungshik Shin#endif /* FTSNAMES_H_ */
285049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
286049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project
287049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */
288