1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* ftrfork.h */ 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Embedded resource forks accessor (specification). */ 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Copyright 2004, 2006, 2007, 2012 by */ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Masatake YAMATO and Redhat K.K. */ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* This file is part of the FreeType project, and may only be used, */ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* modified, and distributed under the terms of the FreeType project */ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* this file you indicate that you have read the license and */ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* understand and accept it fully. */ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Development of the code in this file is support of */ 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Information-technology Promotion Agency, Japan. */ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __FTRFORK_H__ 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __FTRFORK_H__ 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../ft2build.h" 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "ftobjs.h" 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Number of guessing rules supported in `FT_Raccess_Guess'. */ 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Don't forget to increment the number if you add a new guessing rule. */ 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define FT_RACCESS_N_RULES 9 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A structure to describe a reference in a resource by its resource ID */ 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* and internal offset. The `POST' resource expects to be concatenated */ 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* by the order of resource IDs instead of its appearance in the file. */ 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct FT_RFork_Ref_ 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_UShort res_id; 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ULong offset; 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } FT_RFork_Ref; 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef FT_Error 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov (*ft_raccess_guess_func)( FT_Library library, 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream, 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov char *base_file_name, 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov char **result_file_name, 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long *result_offset ); 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef enum FT_RFork_Rule_ { 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_invalid = -2, 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_uknown, /* -1 */ 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_apple_double, 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_apple_single, 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_darwin_ufs_export, 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_darwin_newvfs, 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_darwin_hfsplus, 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_vfat, 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_linux_cap, 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_linux_double, 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_linux_netatalk 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } FT_RFork_Rule; 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* For fast translation between rule index and rule type, 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * the macros FT_RFORK_xxx should be kept consistent with 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov * the raccess_guess_funcs table 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov */ 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct ft_raccess_guess_rec_ { 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ft_raccess_guess_func func; 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule type; 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } ft_raccess_guess_rec; 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FT_CONFIG_OPTION_PIC 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* this array is a storage in non-PIC mode, so ; is needed in END */ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov const type name[] = { 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { raccess_guess_ ## func_suffix, \ 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_RFork_Rule_ ## type_suffix }, 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_END }; 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else /* FT_CONFIG_OPTION_PIC */ 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* this array is a function in PIC mode, so no ; is needed in END */ 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_BEGIN( name, type ) \ 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void \ 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Init_ ## name( type* storage ) \ 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { \ 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov type* local = storage; \ 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov \ 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov \ 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov int i = 0; 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_ENTRY( func_suffix, type_suffix ) \ 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov local[i].func = raccess_guess_ ## func_suffix; \ 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov local[i].type = FT_RFork_Rule_ ## type_suffix; \ 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov i++; 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define CONST_FT_RFORK_RULE_ARRAY_END } 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* FT_CONFIG_OPTION_PIC */ 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK */ 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Raccess_Guess */ 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Guess a file name and offset where the actual resource fork is */ 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stored. The macro FT_RACCESS_N_RULES holds the number of */ 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* guessing rules; the guessed result for the Nth rule is */ 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* represented as a triplet: a new file name (new_names[N]), a file */ 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* offset (offsets[N]), and an error code (errors[N]). */ 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* library :: */ 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A FreeType library instance. */ 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stream :: */ 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A file stream containing the resource fork. */ 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* base_name :: */ 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The (base) file name of the resource fork used for some */ 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* guessing rules. */ 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Output> */ 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* new_names :: */ 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* An array of guessed file names in which the resource forks may */ 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* exist. If `new_names[N]' is NULL, the guessed file name is */ 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* equal to `base_name'. */ 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* offsets :: */ 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* An array of guessed file offsets. `offsets[N]' holds the file */ 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* offset of the possible start of the resource fork in file */ 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* `new_names[N]'. */ 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* errors :: */ 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* An array of FreeType error codes. `errors[N]' is the error */ 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* code of Nth guessing rule function. If `errors[N]' is not */ 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */ 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_BASE( void ) 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Raccess_Guess( FT_Library library, 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream, 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov char* base_name, 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov char** new_names, 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long* offsets, 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Error* errors ); 160ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 161ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 162ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 163ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 164ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 165ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Raccess_Get_HeaderInfo */ 166ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 167ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 168ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Get the information from the header of resource fork. The */ 169ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* information includes the file offset where the resource map */ 170ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* starts, and the file offset where the resource data starts. */ 171ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* `FT_Raccess_Get_DataOffsets' requires these two data. */ 172ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 173ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 174ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* library :: */ 175ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A FreeType library instance. */ 176ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 177ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stream :: */ 178ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A file stream containing the resource fork. */ 179ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 180ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* rfork_offset :: */ 181ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The file offset where the resource fork starts. */ 182ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 183ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Output> */ 184ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* map_offset :: */ 185ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The file offset where the resource map starts. */ 186ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 187ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* rdata_pos :: */ 188ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The file offset where the resource data starts. */ 189ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 190ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Return> */ 191ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FreeType error code. FT_Err_Ok means success. */ 192ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 193ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_BASE( FT_Error ) 194ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Raccess_Get_HeaderInfo( FT_Library library, 195ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream, 196ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long rfork_offset, 197ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long *map_offset, 198ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long *rdata_pos ); 199ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 200ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 201ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 202ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 203ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 204ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Raccess_Get_DataOffsets */ 205ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 206ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 207ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Get the data offsets for a tag in a resource fork. Offsets are */ 208ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stored in an array because, in some cases, resources in a resource */ 209ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* fork have the same tag. */ 210ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 211ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 212ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* library :: */ 213ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A FreeType library instance. */ 214ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 215ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* stream :: */ 216ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* A file stream containing the resource fork. */ 217ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 218ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* map_offset :: */ 219ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The file offset where the resource map starts. */ 220ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 221ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* rdata_pos :: */ 222ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The file offset where the resource data starts. */ 223ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 224ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* tag :: */ 225ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The resource tag. */ 226ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 227ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Output> */ 228ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* offsets :: */ 229ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The stream offsets for the resource data specified by `tag'. */ 230ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* This array is allocated by the function, so you have to call */ 231ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* @ft_mem_free after use. */ 232ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 233ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* count :: */ 234ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* The length of offsets array. */ 235ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 236ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Return> */ 237ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FreeType error code. FT_Err_Ok means success. */ 238ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 239ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Note> */ 240ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */ 241ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* value for `map_offset' and `rdata_pos'. */ 242ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 243ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_BASE( FT_Error ) 244ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Raccess_Get_DataOffsets( FT_Library library, 245ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Stream stream, 246ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long map_offset, 247ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long rdata_pos, 248ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long tag, 249ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long **offsets, 250ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Long *count ); 251ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 252ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 253ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER 254ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 255ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __FTRFORK_H__ */ 256ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 257ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 258ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */ 259