1 /***************************************************************************/ 2 /* */ 3 /* ftmoderr.h */ 4 /* */ 5 /* FreeType module error offsets (specification). */ 6 /* */ 7 /* Copyright 2001, 2002, 2003, 2004, 2005, 2010 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 /*************************************************************************/ 20 /* */ 21 /* This file is used to define the FreeType module error offsets. */ 22 /* */ 23 /* The lower byte gives the error code, the higher byte gives the */ 24 /* module. The base module has error offset 0. For example, the error */ 25 /* `FT_Err_Invalid_File_Format' has value 0x003, the error */ 26 /* `TT_Err_Invalid_File_Format' has value 0x1103, the error */ 27 /* `T1_Err_Invalid_File_Format' has value 0x1203, etc. */ 28 /* */ 29 /* Undefine the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in ftoption.h */ 30 /* to make the higher byte always zero (disabling the module error */ 31 /* mechanism). */ 32 /* */ 33 /* It can also be used to create a module error message table easily */ 34 /* with something like */ 35 /* */ 36 /* { */ 37 /* #undef __FTMODERR_H__ */ 38 /* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s }, */ 39 /* #define FT_MODERR_START_LIST { */ 40 /* #define FT_MODERR_END_LIST { 0, 0 } }; */ 41 /* */ 42 /* const struct */ 43 /* { */ 44 /* int mod_err_offset; */ 45 /* const char* mod_err_msg */ 46 /* } ft_mod_errors[] = */ 47 /* */ 48 /* #include FT_MODULE_ERRORS_H */ 49 /* } */ 50 /* */ 51 /* To use such a table, all errors must be ANDed with 0xFF00 to remove */ 52 /* the error code. */ 53 /* */ 54 /*************************************************************************/ 55 56 57 #ifndef __FTMODERR_H__ 58 #define __FTMODERR_H__ 59 60 61 /*******************************************************************/ 62 /*******************************************************************/ 63 /***** *****/ 64 /***** SETUP MACROS *****/ 65 /***** *****/ 66 /*******************************************************************/ 67 /*******************************************************************/ 68 69 70 #undef FT_NEED_EXTERN_C 71 72 #ifndef FT_MODERRDEF 73 74 #ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS 75 #define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v, 76 #else 77 #define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0, 78 #endif 79 80 #define FT_MODERR_START_LIST enum { 81 #define FT_MODERR_END_LIST FT_Mod_Err_Max }; 82 83 #ifdef __cplusplus 84 #define FT_NEED_EXTERN_C 85 extern "C" { 86 #endif 87 88 #endif /* !FT_MODERRDEF */ 89 90 91 /*******************************************************************/ 92 /*******************************************************************/ 93 /***** *****/ 94 /***** LIST MODULE ERROR BASES *****/ 95 /***** *****/ 96 /*******************************************************************/ 97 /*******************************************************************/ 98 99 100 #ifdef FT_MODERR_START_LIST 101 FT_MODERR_START_LIST 102 #endif 103 104 105 FT_MODERRDEF( Base, 0x000, "base module" ) 106 FT_MODERRDEF( Autofit, 0x100, "autofitter module" ) 107 FT_MODERRDEF( BDF, 0x200, "BDF module" ) 108 FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" ) 109 FT_MODERRDEF( Cache, 0x400, "cache module" ) 110 FT_MODERRDEF( CFF, 0x500, "CFF module" ) 111 FT_MODERRDEF( CID, 0x600, "CID module" ) 112 FT_MODERRDEF( Gzip, 0x700, "Gzip module" ) 113 FT_MODERRDEF( LZW, 0x800, "LZW module" ) 114 FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" ) 115 FT_MODERRDEF( PCF, 0xA00, "PCF module" ) 116 FT_MODERRDEF( PFR, 0xB00, "PFR module" ) 117 FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" ) 118 FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" ) 119 FT_MODERRDEF( PSnames, 0xE00, "PS names module" ) 120 FT_MODERRDEF( Raster, 0xF00, "raster module" ) 121 FT_MODERRDEF( SFNT, 0x1000, "SFNT module" ) 122 FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" ) 123 FT_MODERRDEF( TrueType, 0x1200, "TrueType module" ) 124 FT_MODERRDEF( Type1, 0x1300, "Type 1 module" ) 125 FT_MODERRDEF( Type42, 0x1400, "Type 42 module" ) 126 FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" ) 127 128 129 #ifdef FT_MODERR_END_LIST 130 FT_MODERR_END_LIST 131 #endif 132 133 134 /*******************************************************************/ 135 /*******************************************************************/ 136 /***** *****/ 137 /***** CLEANUP *****/ 138 /***** *****/ 139 /*******************************************************************/ 140 /*******************************************************************/ 141 142 143 #ifdef FT_NEED_EXTERN_C 144 } 145 #endif 146 147 #undef FT_MODERR_START_LIST 148 #undef FT_MODERR_END_LIST 149 #undef FT_MODERRDEF 150 #undef FT_NEED_EXTERN_C 151 152 153 #endif /* __FTMODERR_H__ */ 154 155 156 /* END */ 157