*** empty log message ***
[m17n/libotf.git] / src / otf.h
index a04eb39..47e2a78 100644 (file)
--- a/src/otf.h
+++ b/src/otf.h
@@ -1,6 +1,6 @@
 /* otf.h -- Header file for libotf (OpenType font library).
 
 /* otf.h -- Header file for libotf (OpenType font library).
 
-Copyright (C) 2003, 2004, 2005
+Copyright (C) 2003, 2004, 2005, 2006, 2007
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H15PRO167
 
   National Institute of Advanced Industrial Science and Technology (AIST)
   Registration Number H15PRO167
 
@@ -24,15 +24,19 @@ write to the Free Software Foundation, Inc., 59 Temple Place, Suite
 #ifndef _OTF_H_
 #define _OTF_H_
 
 #ifndef _OTF_H_
 #define _OTF_H_
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Version name of this library.  */
 /* Version name of this library.  */
-#define LIBOTF_VERSION "0.9.4"
+#define LIBOTF_VERSION "0.9.6"
 
 /* Major version number.  */
 #define LIBOTF_MAJOR_VERSION 0
 /* Minor version number.  */
 #define LIBOTF_MINOR_VERSION 9
 /* Release (i.e. patch level) number.  */
 
 /* Major version number.  */
 #define LIBOTF_MAJOR_VERSION 0
 /* Minor version number.  */
 #define LIBOTF_MINOR_VERSION 9
 /* Release (i.e. patch level) number.  */
-#define LIBOTF_RELEASE_NUMBER 4
+#define LIBOTF_RELEASE_NUMBER 6
 
 /***
     Table of contents:
 
 /***
     Table of contents:
@@ -51,7 +55,7 @@ write to the Free Software Foundation, Inc., 59 Temple Place, Suite
     (1-11) Structure for OTF
 
     (2) API for reading OTF
     (1-11) Structure for OTF
 
     (2) API for reading OTF
-    (2-1) OTF_open()
+    (2-1) OTF_open(), OTF_open_ft_face()
     (2-2) OTF_close()
     (2-3) OTF_get_table()
     (2-4) OTF_check_table()
     (2-2) OTF_close()
     (2-3) OTF_get_table()
     (2-4) OTF_check_table()
@@ -1063,7 +1067,12 @@ typedef struct
 
     See also OTF_get_table() and OTF_close().  */
 
 
     See also OTF_get_table() and OTF_close().  */
 
-extern OTF *OTF_open (char *name);
+extern OTF *OTF_open (const char *name);
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+extern OTF *OTF_open_ft_face (FT_Face face);
 
 
 /*** (2-2) OTF_close () */
 
 
 /*** (2-2) OTF_close () */
@@ -1095,7 +1104,7 @@ extern void OTF_close (OTF *otf);
 
     See also OTF_open().  */
 
 
     See also OTF_open().  */
 
-extern int OTF_get_table (OTF *otf, char *name);
+extern int OTF_get_table (OTF *otf, const char *name);
 
 /*** (2-4) OTF_check_table () */
 
 
 /*** (2-4) OTF_check_table () */
 
@@ -1109,7 +1118,7 @@ extern int OTF_get_table (OTF *otf, char *name);
 
     See also OTF_open().  */
 
 
     See also OTF_open().  */
 
-extern int OTF_check_table (OTF *otf, char *name);
+extern int OTF_check_table (OTF *otf, const char *name);
 
 /*** (2-5) OTF_get_scripts () */
 
 
 /*** (2-5) OTF_get_scripts () */
 
@@ -1156,7 +1165,7 @@ extern int OTF_get_features (OTF *otf, int gsubp);
 
 extern int OTF_check_features (OTF *otf, int gsubp,
                               OTF_Tag script, OTF_Tag language,
 
 extern int OTF_check_features (OTF *otf, int gsubp,
                               OTF_Tag script, OTF_Tag language,
-                              OTF_Tag *features, int n_features);
+                              const OTF_Tag *features, int n_features);
 
 /*** (3) API for driving OTF */
 
 
 /*** (3) API for driving OTF */
 
@@ -1293,7 +1302,8 @@ extern int OTF_drive_gdef (OTF *otf, OTF_GlyphString *gstring);
     use OTF_drive_gsub_alternate().  */
 
 extern int OTF_drive_gsub (OTF *otf, OTF_GlyphString *gstring,
     use OTF_drive_gsub_alternate().  */
 
 extern int OTF_drive_gsub (OTF *otf, OTF_GlyphString *gstring,
-                          char *script, char *language, char *features);
+                          const char *script, const char *language,
+                          const char *features);
 
 /*** (3-5) OTF_drive_gpos() */
 
 
 /*** (3-5) OTF_drive_gpos() */
 
@@ -1307,7 +1317,8 @@ extern int OTF_drive_gsub (OTF *otf, OTF_GlyphString *gstring,
     $GSTRING.  $FEATURES is a list of features to apply.  */
 
 extern int OTF_drive_gpos (OTF *otf, OTF_GlyphString *gstring,
     $GSTRING.  $FEATURES is a list of features to apply.  */
 
 extern int OTF_drive_gpos (OTF *otf, OTF_GlyphString *gstring,
-                          char *script, char *language, char *features);
+                          const char *script, const char *language,
+                          const char *features);
 
 /*** (3-6) OTF_drive_tables() */
 
 
 /*** (3-6) OTF_drive_tables() */
 
@@ -1319,8 +1330,9 @@ extern int OTF_drive_gpos (OTF *otf, OTF_GlyphString *gstring,
     order, and update the glyphs string GSTRING.  */
 
 extern int OTF_drive_tables (OTF *otf, OTF_GlyphString *gstring,
     order, and update the glyphs string GSTRING.  */
 
 extern int OTF_drive_tables (OTF *otf, OTF_GlyphString *gstring,
-                            char *script, char *language,
-                            char *gsub_features, char *gpos_features);
+                            const char *script, const char *language,
+                            const char *gsub_features,
+                            const char *gpos_features);
 
 
 /*** (3-7) OTF_get_unicode()  */
 
 
 /*** (3-7) OTF_get_unicode()  */
@@ -1340,8 +1352,8 @@ extern int OTF_get_unicode (OTF *otf, OTF_GlyphID code);
     (Alternate Substituion).  */
 
 extern int OTF_drive_gsub_alternate (OTF *otf, OTF_GlyphString *gstring,
     (Alternate Substituion).  */
 
 extern int OTF_drive_gsub_alternate (OTF *otf, OTF_GlyphString *gstring,
-                                    char *script, char *language,
-                                    char *features);
+                                    const char *script, const char *language,
+                                    const char *features);
 
 /*** (4) API for error handling ***/
 
 
 /*** (4) API for error handling ***/
 
@@ -1417,7 +1429,7 @@ extern int OTF_error;
     first, followed by a colon and a blank.  Then the message and a
     newline.  */
 
     first, followed by a colon and a blank.  Then the message and a
     newline.  */
 
-extern void OTF_perror (char *prefix);
+extern void OTF_perror (const char *prefix);
 
 
 /*** (5) API miscellaneous ***/
 
 
 /*** (5) API miscellaneous ***/
@@ -1429,7 +1441,7 @@ extern void OTF_perror (char *prefix);
     NULL, return 0.  Otherwise, $NAME must be at least 4-byte length.
     Only the first 4 characters are took into an account.  */
 
     NULL, return 0.  Otherwise, $NAME must be at least 4-byte length.
     Only the first 4 characters are took into an account.  */
 
-extern OTF_Tag OTF_tag (char *name);
+extern OTF_Tag OTF_tag (const char *name);
 
 /***
     Convert OTF tag to name string.
 
 /***
     Convert OTF tag to name string.
@@ -1440,5 +1452,8 @@ extern OTF_Tag OTF_tag (char *name);
 
 extern void OTF_tag_name (OTF_Tag tag, char *name);
 
 
 extern void OTF_tag_name (OTF_Tag tag, char *name);
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* not _OTF_H_ */
 
 #endif /* not _OTF_H_ */