diff options
Diffstat (limited to 'common/quicktime_win32/FontSync.h')
| -rw-r--r-- | common/quicktime_win32/FontSync.h | 603 |
1 files changed, 603 insertions, 0 deletions
diff --git a/common/quicktime_win32/FontSync.h b/common/quicktime_win32/FontSync.h new file mode 100644 index 0000000..ca57d5b --- /dev/null +++ b/common/quicktime_win32/FontSync.h @@ -0,0 +1,603 @@ +/* + File: FontSync.h + + Contains: Public interface for FontSync + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1999-2001 by Apple Computer, Inc., all rights reserved. + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __FONTS__ +#include <Fonts.h> +#endif + +#ifndef __SFNTTYPES__ +#include <SFNTTypes.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=power +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + + +/* Matching Options */ +typedef UInt32 FNSMatchOptions; +enum { + kFNSMatchNames = 0x00000001, /* font names must match */ + kFNSMatchTechnology = 0x00000002, /* scaler technology must match */ + kFNSMatchGlyphs = 0x00000004, /* glyph data must match */ + kFNSMatchEncodings = 0x00000008, /* cmaps must match */ + kFNSMatchQDMetrics = 0x00000010, /* QuickDraw Text metrics must match */ + kFNSMatchATSUMetrics = 0x00000020, /* ATSUI metrics (incl. vertical) must match */ + kFNSMatchKerning = 0x00000040, /* kerning data must match */ + kFNSMatchWSLayout = 0x00000080, /* WorldScript layout tables must match */ + kFNSMatchAATLayout = 0x00000100, /* AAT (incl. OpenType) layout tables must match */ + kFNSMatchPrintEncoding = 0x00000200, /* PostScript font and glyph names and re-encoding vector must match */ + kFNSMissingDataNoMatch = (unsigned long)0x80000000, /* treat missing data as mismatch */ + kFNSMatchAll = (unsigned long)0xFFFFFFFF, /* everything must match */ + kFNSMatchDefaults = 0 /* use global default match options */ +}; + +/* + * FNSMatchDefaultsGet() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( FNSMatchOptions ) +FNSMatchDefaultsGet(void); + + + +/* Version control */ +typedef UInt32 FNSObjectVersion; +enum { + kFNSVersionDontCare = 0, + kFNSCurSysInfoVersion = 1 +}; + +/* No features defined yet.*/ +typedef UInt32 FNSFeatureFlags; +/* + The FontSync library version number is binary-coded decimal: + 8 bits of major version, 4 minor version and 4 bits revision. +*/ +struct FNSSysInfo { + FNSObjectVersion iSysInfoVersion; /* fill this in before calling FNSSysInfoGet*/ + FNSFeatureFlags oFeatures; + FNSObjectVersion oCurRefVersion; + FNSObjectVersion oMinRefVersion; + FNSObjectVersion oCurProfileVersion; + FNSObjectVersion oMinProfileVersion; + UInt16 oFontSyncVersion; +}; +typedef struct FNSSysInfo FNSSysInfo; +/* + * FNSSysInfoGet() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +FNSSysInfoGet(FNSSysInfo * ioInfo); + + + +/* FontSync References */ +typedef struct OpaqueFNSFontReference* FNSFontReference; +/* + * FNSReferenceGetVersion() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceGetVersion( + FNSFontReference iReference, + FNSObjectVersion * oVersion); + + +/* + * FNSReferenceDispose() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceDispose(FNSFontReference iReference); + + +/* + * FNSReferenceMatch() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceMatch( + FNSFontReference iReference1, + FNSFontReference iReference2, + FNSMatchOptions iOptions, + FNSMatchOptions * oFailedMatchOptions); /* can be NULL */ + + +/* + * FNSReferenceFlattenedSize() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceFlattenedSize( + FNSFontReference iReference, + ByteCount * oFlattenedSize); + + +/* + * FNSReferenceFlatten() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceFlatten( + FNSFontReference iReference, + void * oFlatReference, /* can be NULL */ + ByteCount * oFlattenedSize); /* can be NULL */ + + +/* + * FNSReferenceUnflatten() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceUnflatten( + const void * iFlatReference, + ByteCount iFlattenedSize, + FNSFontReference * oReference); + + + +/* FontSync Profiles */ +enum { + kFNSCreatorDefault = 0, + kFNSProfileFileType = FOUR_CHAR_CODE('fnsp') +}; + +typedef struct OpaqueFNSFontProfile* FNSFontProfile; +/* + * FNSProfileCreate() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileCreate( + const FSSpec * iFile, + FourCharCode iCreator, + ItemCount iEstNumRefs, + FNSObjectVersion iDesiredVersion, + FNSFontProfile * oProfile); + + +/* + * FNSProfileOpen() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileOpen( + const FSSpec * iFile, + Boolean iOpenForWrite, + FNSFontProfile * oProfile); + + + +/* + * FNSProfileCreateWithFSRef() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileCreateWithFSRef( + const FSRef * iParentDirectory, + UniCharCount iNameLength, + const UniChar * iName, + FourCharCode iCreator, + ItemCount iEstNumRefs, + FNSObjectVersion iDesiredVersion, + FNSFontProfile * oProfile); + + +/* + * FNSProfileOpenWithFSRef() + * + * Availability: + * Non-Carbon CFM: not available + * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later + * Mac OS X: in version 10.1 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileOpenWithFSRef( + const FSRef * iFile, + Boolean iOpenForWrite, + FNSFontProfile * oProfile); + + +/* + * FNSProfileGetVersion() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileGetVersion( + FNSFontProfile iProfile, + FNSObjectVersion * oVersion); + + +/* + * FNSProfileCompact() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileCompact(FNSFontProfile iProfile); + + +/* + * FNSProfileClose() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileClose(FNSFontProfile iProfile); + + +/* + * FNSProfileAddReference() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileAddReference( + FNSFontProfile iProfile, + FNSFontReference iReference); + + +/* + * FNSProfileRemoveReference() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileRemoveReference( + FNSFontProfile iProfile, + FNSFontReference iReference); + + +/* + * FNSProfileRemoveIndReference() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileRemoveIndReference( + FNSFontProfile iProfile, + UInt32 iIndex); + + +/* + * FNSProfileClear() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileClear(FNSFontProfile iProfile); + + +/* + * FNSProfileCountReferences() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileCountReferences( + FNSFontProfile iProfile, + ItemCount * oCount); + + +/* + * FNSProfileGetIndReference() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileGetIndReference( + FNSFontProfile iProfile, + UInt32 iWhichReference, + FNSFontReference * oReference); + + +/* + * FNSProfileMatchReference() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSProfileMatchReference( + FNSFontProfile iProfile, + FNSFontReference iReference, + FNSMatchOptions iMatchOptions, + ItemCount iOutputSize, + UInt32 oIndices[], /* can be NULL */ + ItemCount * oNumMatches); /* can be NULL */ + + + +/* Mapping to and from Font Objects */ +/* + * FNSReferenceCreate() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceCreate( + FMFont iFont, + FNSObjectVersion iDesiredVersion, + FNSFontReference * oReference); + + +/* + * FNSReferenceMatchFonts() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceMatchFonts( + FNSFontReference iReference, + FNSMatchOptions iMatchOptions, + ItemCount iOutputSize, + FMFont oFonts[], /* can be NULL */ + ItemCount * oNumMatches); /* can be NULL */ + + + +/* Mapping to and from Font Families */ +/* + * FNSReferenceCreateFromFamily() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceCreateFromFamily( + FMFontFamily iFamily, + FMFontStyle iStyle, + FNSObjectVersion iDesiredVersion, + FNSFontReference * oReference, /* can be NULL */ + FMFontStyle * oActualStyle); /* can be NULL */ + + +/* + * FNSReferenceMatchFamilies() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceMatchFamilies( + FNSFontReference iReference, + FNSMatchOptions iMatchOptions, + ItemCount iOutputSize, + FMFontFamilyInstance oFonts[], /* can be NULL */ + ItemCount * oNumMatches); /* can be NULL */ + + + +/* UI Support */ +/* + * FNSReferenceGetFamilyInfo() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceGetFamilyInfo( + FNSFontReference iReference, + Str255 oFamilyName, /* can be NULL */ + ScriptCode * oFamilyNameScript, /* can be NULL */ + FMFontStyle * oActualStyle); /* can be NULL */ + + +/* + * FNSReferenceCountNames() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceCountNames( + FNSFontReference iReference, + ItemCount * oNameCount); + + +/* + * FNSReferenceGetIndName() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceGetIndName( + FNSFontReference iReference, + ItemCount iFontNameIndex, + ByteCount iMaximumNameLength, + Ptr oName, /* can be NULL */ + ByteCount * oActualNameLength, /* can be NULL */ + FontNameCode * oFontNameCode, /* can be NULL */ + FontPlatformCode * oFontNamePlatform, /* can be NULL */ + FontScriptCode * oFontNameScript, /* can be NULL */ + FontLanguageCode * oFontNameLanguage); /* can be NULL */ + + +/* + * FNSReferenceFindName() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSStatus ) +FNSReferenceFindName( + FNSFontReference iReference, + FontNameCode iFontNameCode, + FontPlatformCode iFontNamePlatform, + FontScriptCode iFontNameScript, + FontLanguageCode iFontNameLanguage, + ByteCount iMaximumNameLength, + Ptr oName, /* can be NULL */ + ByteCount * oActualNameLength, /* can be NULL */ + ItemCount * oFontNameIndex); /* can be NULL */ + + +/* Miscellany */ +/* + * FNSEnabled() + * + * Availability: + * Non-Carbon CFM: in FontSyncLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( Boolean ) +FNSEnabled(void); + + + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif |