diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/LanguageAnalysis.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'common/quicktime_win32/LanguageAnalysis.h')
| -rw-r--r-- | common/quicktime_win32/LanguageAnalysis.h | 624 |
1 files changed, 624 insertions, 0 deletions
diff --git a/common/quicktime_win32/LanguageAnalysis.h b/common/quicktime_win32/LanguageAnalysis.h new file mode 100644 index 0000000..ac8ed20 --- /dev/null +++ b/common/quicktime_win32/LanguageAnalysis.h @@ -0,0 +1,624 @@ +/* + File: LanguageAnalysis.h + + Contains: Language Analysis Manager Interfaces + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1996-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 __LANGUAGEANALYSIS__ +#define __LANGUAGEANALYSIS__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __FILES__ +#include <Files.h> +#endif + +#ifndef __TEXTCOMMON__ +#include <TextCommon.h> +#endif + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __AEREGISTRY__ +#include <AERegistry.h> +#endif + +#ifndef __DICTIONARY__ +#include <Dictionary.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 + +typedef struct OpaqueLAEnvironmentRef* LAEnvironmentRef; +typedef struct OpaqueLAContextRef* LAContextRef; +typedef AEKeyword LAPropertyKey; +typedef DescType LAPropertyType; +/* + Data structure for high level API +*/ +struct LAMorphemeRec { + ByteCount sourceTextLength; + LogicalAddress sourceTextPtr; + ByteCount morphemeTextLength; + LogicalAddress morphemeTextPtr; + UInt32 partOfSpeech; +}; +typedef struct LAMorphemeRec LAMorphemeRec; +struct LAMorphemesArray { + ItemCount morphemesCount; + ByteCount processedTextLength; + ByteCount morphemesTextLength; + LAMorphemeRec morphemes[1]; +}; +typedef struct LAMorphemesArray LAMorphemesArray; +typedef LAMorphemesArray * LAMorphemesArrayPtr; +enum { + kLAMorphemesArrayVersion = 0 +}; + +/* + Definitions for result path/bundle structure +*/ +typedef AERecord LAMorphemeBundle; +typedef AERecord LAMorphemePath; +typedef AERecord LAMorpheme; +typedef AERecord LAHomograph; +enum { + keyAELAMorphemeBundle = FOUR_CHAR_CODE('lmfb'), + keyAELAMorphemePath = FOUR_CHAR_CODE('lmfp'), + keyAELAMorpheme = FOUR_CHAR_CODE('lmfn'), + keyAELAHomograph = FOUR_CHAR_CODE('lmfh') +}; + +enum { + typeLAMorphemeBundle = typeAERecord, + typeLAMorphemePath = typeAERecord, + typeLAMorpheme = typeAEList, + typeLAHomograph = typeAEList +}; + +/* + Definitions for morpheme/homograph information +*/ +enum { + keyAEMorphemePartOfSpeechCode = FOUR_CHAR_CODE('lamc'), + keyAEMorphemeTextRange = FOUR_CHAR_CODE('lamt') +}; + +enum { + typeAEMorphemePartOfSpeechCode = FOUR_CHAR_CODE('lamc'), + typeAEMorphemeTextRange = FOUR_CHAR_CODE('lamt') +}; + +typedef UInt32 MorphemePartOfSpeech; +struct MorphemeTextRange { + UInt32 sourceOffset; + UInt32 length; +}; +typedef struct MorphemeTextRange MorphemeTextRange; +/* + Mask for High level API convert flags +*/ +enum { + kLAEndOfSourceTextMask = 0x00000001 +}; + +/* + Constants for leading/trailing path of analysis function +*/ +enum { + kLADefaultEdge = 0, + kLAFreeEdge = 1, + kLAIncompleteEdge = 2 +}; + +/* + Constants for confirm and shift function +*/ +enum { + kLAAllMorphemes = 0 +}; + + +/* + Library version +*/ +/* + * LALibraryVersion() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( UInt32 ) +LALibraryVersion(void); + + +/* + High level API +*/ +/* + * LATextToMorphemes() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LATextToMorphemes( + LAContextRef context, + TextEncoding preferedEncoding, + ByteCount textLength, + ConstLogicalAddress sourceText, + ByteCount bufferSize, + OptionBits convertFlags, + UInt32 structureVersion, + ByteCount * acceptedLength, + LAMorphemesArrayPtr resultBuffer); + + +/* + Handling Context +*/ +/* + * LAOpenAnalysisContext() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAOpenAnalysisContext( + LAEnvironmentRef environ, + LAContextRef * context); + + +/* + * LACloseAnalysisContext() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LACloseAnalysisContext(LAContextRef context); + + +/* + Handling Environment +*/ +/* + * LAGetEnvironmentList() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAGetEnvironmentList( + UInt32 maxCount, + UInt32 * actualCount, + LAEnvironmentRef environmentList[]); + + +/* + * LAGetEnvironmentName() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAGetEnvironmentName( + LAEnvironmentRef environment, + Str63 environmentName); + + +/* + * LAGetEnvironmentRef() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAGetEnvironmentRef( + ConstStr63Param targetEnvironmentName, + LAEnvironmentRef * environment); + + +/* + * LACreateCustomEnvironment() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LACreateCustomEnvironment( + LAEnvironmentRef baseEnvironment, + ConstStr63Param newEnvironmentName, + Boolean persistent, + LAEnvironmentRef * newEnvironment); + + +/* + * LADeleteCustomEnvironment() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LADeleteCustomEnvironment(LAEnvironmentRef environment); + + +/* + Handling dictionries +*/ +/* + * LAOpenDictionary() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAOpenDictionary( + LAEnvironmentRef environ, + const FSSpec * dictionary); + + +/* + * LACloseDictionary() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LACloseDictionary( + LAEnvironmentRef environ, + const FSSpec * dictionary); + + +/* + * LAListAvailableDictionaries() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAListAvailableDictionaries( + LAEnvironmentRef environ, + ItemCount maxCount, + ItemCount * actualCount, + FSSpec dictionaryList[], + Boolean opened[]); + + +/* + * LAAddNewWord() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAAddNewWord( + LAEnvironmentRef environ, + const FSSpec * dictionary, + const AEDesc * dataList); + + +/* + Analyzing text +*/ +/* + * LAMorphemeAnalysis() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAMorphemeAnalysis( + LAContextRef context, + ConstUniCharArrayPtr text, + UniCharCount textLength, + LAMorphemePath * leadingPath, + LAMorphemePath * trailingPath, + ItemCount pathCount, + LAMorphemeBundle * result); + + +/* + * LAContinuousMorphemeAnalysis() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAContinuousMorphemeAnalysis( + LAContextRef context, + ConstUniCharArrayPtr text, + UniCharCount textLength, + Boolean incrementalText, + LAMorphemePath * leadingPath, + LAMorphemePath * trailingPath, + Boolean * modified); + + +/* + * LAGetMorphemes() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAGetMorphemes( + LAContextRef context, + LAMorphemePath * result); + + +/* + * LAShiftMorphemes() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAShiftMorphemes( + LAContextRef context, + ItemCount morphemeCount, + LAMorphemePath * path, + UniCharCount * shiftedLength); + + +/* + * LAResetAnalysis() + * + * Availability: + * Non-Carbon CFM: in LanguageAnalysisLib 1.0 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSStatus ) +LAResetAnalysis(LAContextRef context); + + +/* + Check Language Analysis Manager availability +*/ +#if TARGET_RT_MAC_CFM +#ifdef __cplusplus + inline pascal Boolean LALanguageAnalysisAvailable() { return (LALibraryVersion != (void*)kUnresolvedCFragSymbolAddress); } +#else + #define LALanguageAnalysisAvailable() ((LALibraryVersion != (void*)kUnresolvedCFragSymbolAddress) +#endif +#elif TARGET_RT_MAC_MACHO +/* Language Analysis Manager is always available on OS X */ +#ifdef __cplusplus + inline pascal Boolean LALanguageAnalysisAvailable() { return true; } +#else + #define LALanguageAnalysisAvailable() (true) +#endif +#endif /* */ + +/* +============================================================================================= + Definitions for Japanese Analysis Module +============================================================================================= +*/ +/* + Names for default environments for Japanese analysis +*/ +#define kLAJapaneseKanaKanjiEnvironment "\pKanaKanjiConversion" +#define kLAJapaneseMorphemeAnalysisEnvironment "\pJapaneseMorphemeAnalysis" +#define kLAJapaneseTTSEnvironment "\pJapaneseTextToSpeech" +/* + File cretor for dictionary of Apple Japanese access method +*/ +enum { + kAppleJapaneseDictionarySignature = FOUR_CHAR_CODE('jlan') +}; + +/* + Engine limitations +*/ +enum { + kMaxInputLengthOfAppleJapaneseEngine = 200 +}; + +/* + Definitions of information in the path/bundle +*/ + +typedef MorphemePartOfSpeech JapanesePartOfSpeech; +typedef UInt16 HomographWeight; +typedef UInt8 HomographAccent; +/* + AE keywords and type definitions for morpheme/homograph information +*/ +enum { + keyAEHomographDicInfo = FOUR_CHAR_CODE('lahd'), + keyAEHomographWeight = FOUR_CHAR_CODE('lahw'), + keyAEHomographAccent = FOUR_CHAR_CODE('laha') +}; + +enum { + typeAEHomographDicInfo = FOUR_CHAR_CODE('lahd'), + typeAEHomographWeight = typeShortInteger, + typeAEHomographAccent = FOUR_CHAR_CODE('laha') +}; + +/* + Structure for dictionary information of homograph +*/ +struct HomographDicInfoRec { + DCMDictionaryID dictionaryID; + DCMUniqueID uniqueID; +}; +typedef struct HomographDicInfoRec HomographDicInfoRec; +/* +============================================================================================= + Definitions for Japanese part of speeches +============================================================================================= +*/ +/* + Masks for part of speeches +*/ +enum { + kLASpeechRoughClassMask = 0x0000F000, + kLASpeechMediumClassMask = 0x0000FF00, + kLASpeechStrictClassMask = 0x0000FFF0, + kLASpeechKatsuyouMask = 0x0000000F +}; + + +/* + Part of speeches +*/ +enum { + kLASpeechMeishi = 0x00000000, /* noun */ + kLASpeechFutsuuMeishi = 0x00000000, /* general noun */ + kLASpeechJinmei = 0x00000100, /* person name */ + kLASpeechJinmeiSei = 0x00000110, /* family name */ + kLASpeechJinmeiMei = 0x00000120, /* first name */ + kLASpeechChimei = 0x00000200, /* place name */ + kLASpeechSetsubiChimei = 0x00000210, /* place name with suffix */ + kLASpeechSoshikimei = 0x00000300, /* organization name */ + kLASpeechKoyuuMeishi = 0x00000400, /* proper noun */ + kLASpeechSahenMeishi = 0x00000500, /* special noun */ + kLASpeechKeidouMeishi = 0x00000600, /* special noun */ + kLASpeechRentaishi = 0x00001000, + kLASpeechFukushi = 0x00002000, /* adverb */ + kLASpeechSetsuzokushi = 0x00003000, /* conjunction */ + kLASpeechKandoushi = 0x00004000, + kLASpeechDoushi = 0x00005000, /* verb */ + kLASpeechGodanDoushi = 0x00005000, + kLASpeechKagyouGodan = 0x00005000, + kLASpeechSagyouGodan = 0x00005010, + kLASpeechTagyouGodan = 0x00005020, + kLASpeechNagyouGodan = 0x00005030, + kLASpeechMagyouGodan = 0x00005040, + kLASpeechRagyouGodan = 0x00005050, + kLASpeechWagyouGodan = 0x00005060, + kLASpeechGagyouGodan = 0x00005070, + kLASpeechBagyouGodan = 0x00005080, + kLASpeechIchidanDoushi = 0x00005100, + kLASpeechKahenDoushi = 0x00005200, + kLASpeechSahenDoushi = 0x00005300, + kLASpeechZahenDoushi = 0x00005400, + kLASpeechKeiyoushi = 0x00006000, /* adjective */ + kLASpeechKeiyoudoushi = 0x00007000, + kLASpeechSettougo = 0x00008000, /* prefix*/ + kLASpeechSuujiSettougo = 0x00008100, /* prefix for numbers */ + kLASpeechSetsubigo = 0x00009000, /* suffix */ + kLASpeechJinmeiSetsubigo = 0x00009100, /* suffix for person name */ + kLASpeechChimeiSetsubigo = 0x00009200, /* suffix for place name */ + kLASpeechSoshikimeiSetsubigo = 0x00009300, /* suffix for organization name */ + kLASpeechSuujiSetsubigo = 0x00009400, /* suffix for numbers */ + kLASpeechMuhinshi = 0x0000A000, /* no category */ + kLASpeechTankanji = 0x0000A000, /* character */ + kLASpeechKigou = 0x0000A100, /* symbol */ + kLASpeechKuten = 0x0000A110, + kLASpeechTouten = 0x0000A120, + kLASpeechSuushi = 0x0000A200, /* numbers */ + kLASpeechDokuritsugo = 0x0000A300, + kLASpeechSeiku = 0x0000A400, + kLASpeechJodoushi = 0x0000B000, /* auxiliary verb */ + kLASpeechJoshi = 0x0000C000 /* postpositional particle */ +}; + + +/* + Conjugations + */ +enum { + kLASpeechKatsuyouGokan = 0x00000001, /* stem */ + kLASpeechKatsuyouMizen = 0x00000002, + kLASpeechKatsuyouRenyou = 0x00000003, + kLASpeechKatsuyouSyuushi = 0x00000004, + kLASpeechKatsuyouRentai = 0x00000005, + kLASpeechKatsuyouKatei = 0x00000006, + kLASpeechKatsuyouMeirei = 0x00000007 +}; + + + +#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 + +#endif /* __LANGUAGEANALYSIS__ */ + |