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/TextEncodingPlugin.h | |
| download | archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.tar.xz archived-source-engine-2018-hl2-src-3bf9df6b2785fa6d951086978a3e66f49427166a.zip | |
Diffstat (limited to 'common/quicktime_win32/TextEncodingPlugin.h')
| -rw-r--r-- | common/quicktime_win32/TextEncodingPlugin.h | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/common/quicktime_win32/TextEncodingPlugin.h b/common/quicktime_win32/TextEncodingPlugin.h new file mode 100644 index 0000000..7e0775a --- /dev/null +++ b/common/quicktime_win32/TextEncodingPlugin.h @@ -0,0 +1,210 @@ +/* + File: TextEncodingPlugin.h + + Contains: Required interface for Text Encoding Converter-Plugins + + 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 __TEXTENCODINGPLUGIN__ +#define __TEXTENCODINGPLUGIN__ + +#ifndef __MACTYPES__ +#include <MacTypes.h> +#endif + +#ifndef __TEXTCOMMON__ +#include <TextCommon.h> +#endif + +#ifndef __TEXTENCODINGCONVERTER__ +#include <TextEncodingConverter.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/* + #################################################################################### + Constants + #################################################################################### +*/ +/* + #################################################################################### + Structs + #################################################################################### +*/ +struct TECBufferContextRec { + TextPtr textInputBuffer; + TextPtr textInputBufferEnd; + TextPtr textOutputBuffer; + TextPtr textOutputBufferEnd; + + TextEncodingRunPtr encodingInputBuffer; + TextEncodingRunPtr encodingInputBufferEnd; + TextEncodingRunPtr encodingOutputBuffer; + TextEncodingRunPtr encodingOutputBufferEnd; +}; +typedef struct TECBufferContextRec TECBufferContextRec; +struct TECPluginStateRec { + + UInt8 state1; + UInt8 state2; + UInt8 state3; + UInt8 state4; + + UInt32 longState1; + UInt32 longState2; + UInt32 longState3; + UInt32 longState4; +}; +typedef struct TECPluginStateRec TECPluginStateRec; +struct TECConverterContextRec { + + /* public - manipulated externally and by plugin*/ + Ptr pluginRec; + TextEncoding sourceEncoding; + TextEncoding destEncoding; + UInt32 reserved1; + UInt32 reserved2; + TECBufferContextRec bufferContext; + /* private - manipulated only within Plugin*/ + UInt32 contextRefCon; + ProcPtr conversionProc; + ProcPtr flushProc; + ProcPtr clearContextInfoProc; + UInt32 options1; + UInt32 options2; + TECPluginStateRec pluginState; +}; +typedef struct TECConverterContextRec TECConverterContextRec; +struct TECSnifferContextRec { + /* public - manipulated externally*/ + Ptr pluginRec; + TextEncoding encoding; + ItemCount maxErrors; + ItemCount maxFeatures; + TextPtr textInputBuffer; + TextPtr textInputBufferEnd; + ItemCount numFeatures; + ItemCount numErrors; + /* private - manipulated only within Plugin*/ + UInt32 contextRefCon; + ProcPtr sniffProc; + ProcPtr clearContextInfoProc; + TECPluginStateRec pluginState; +}; +typedef struct TECSnifferContextRec TECSnifferContextRec; +/* + #################################################################################### + Functional Messages + #################################################################################### +*/ + +typedef CALLBACK_API_C( OSStatus , TECPluginNewEncodingConverterPtr )(TECObjectRef *newEncodingConverter, TECConverterContextRec *plugContext, TextEncoding inputEncoding, TextEncoding outputEncoding); +typedef CALLBACK_API_C( OSStatus , TECPluginClearContextInfoPtr )(TECObjectRef encodingConverter, TECConverterContextRec *plugContext); +typedef CALLBACK_API_C( OSStatus , TECPluginConvertTextEncodingPtr )(TECObjectRef encodingConverter, TECConverterContextRec *plugContext); +typedef CALLBACK_API_C( OSStatus , TECPluginFlushConversionPtr )(TECObjectRef encodingConverter, TECConverterContextRec *plugContext); +typedef CALLBACK_API_C( OSStatus , TECPluginDisposeEncodingConverterPtr )(TECObjectRef newEncodingConverter, TECConverterContextRec *plugContext); +typedef CALLBACK_API_C( OSStatus , TECPluginNewEncodingSnifferPtr )(TECSnifferObjectRef *encodingSniffer, TECSnifferContextRec *snifContext, TextEncoding inputEncoding); +typedef CALLBACK_API_C( OSStatus , TECPluginClearSnifferContextInfoPtr )(TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext); +typedef CALLBACK_API_C( OSStatus , TECPluginSniffTextEncodingPtr )(TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext); +typedef CALLBACK_API_C( OSStatus , TECPluginDisposeEncodingSnifferPtr )(TECSnifferObjectRef encodingSniffer, TECSnifferContextRec *snifContext); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountAvailableTextEncodingsPtr )(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountAvailableTextEncodingPairsPtr )(TECConversionInfo *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountDestinationTextEncodingsPtr )(TextEncoding inputEncoding, TextEncoding *destinationEncodings, ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountSubTextEncodingsPtr )(TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount *actualSubEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountAvailableSniffersPtr )(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetTextEncodingInternetNamePtr )(TextEncoding textEncoding, Str255 encodingName); +typedef CALLBACK_API_C( OSStatus , TECPluginGetTextEncodingFromInternetNamePtr )(TextEncoding *textEncoding, ConstStr255Param encodingName); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountWebEncodingsPtr )(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); +typedef CALLBACK_API_C( OSStatus , TECPluginGetCountMailEncodingsPtr )(TextEncoding *availableEncodings, ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings); +/* + #################################################################################### + Dispatch Table Definition + #################################################################################### +*/ + +enum { + kTECPluginDispatchTableVersion1 = 0x00010000, /* 1.0 through 1.0.3 releases*/ + kTECPluginDispatchTableVersion1_1 = 0x00010001, /* 1.1 releases*/ + kTECPluginDispatchTableVersion1_2 = 0x00010002, /* 1.2 releases*/ + kTECPluginDispatchTableCurrentVersion = kTECPluginDispatchTableVersion1_2 +}; + +struct TECPluginDispatchTable { + + TECPluginVersion version; + TECPluginVersion compatibleVersion; + TECPluginSignature PluginID; + + TECPluginNewEncodingConverterPtr PluginNewEncodingConverter; + TECPluginClearContextInfoPtr PluginClearContextInfo; + TECPluginConvertTextEncodingPtr PluginConvertTextEncoding; + TECPluginFlushConversionPtr PluginFlushConversion; + TECPluginDisposeEncodingConverterPtr PluginDisposeEncodingConverter; + + TECPluginNewEncodingSnifferPtr PluginNewEncodingSniffer; + TECPluginClearSnifferContextInfoPtr PluginClearSnifferContextInfo; + TECPluginSniffTextEncodingPtr PluginSniffTextEncoding; + TECPluginDisposeEncodingSnifferPtr PluginDisposeEncodingSniffer; + + TECPluginGetCountAvailableTextEncodingsPtr PluginGetCountAvailableTextEncodings; + TECPluginGetCountAvailableTextEncodingPairsPtr PluginGetCountAvailableTextEncodingPairs; + TECPluginGetCountDestinationTextEncodingsPtr PluginGetCountDestinationTextEncodings; + TECPluginGetCountSubTextEncodingsPtr PluginGetCountSubTextEncodings; + TECPluginGetCountAvailableSniffersPtr PluginGetCountAvailableSniffers; + TECPluginGetCountWebEncodingsPtr PluginGetCountWebTextEncodings; + TECPluginGetCountMailEncodingsPtr PluginGetCountMailTextEncodings; + + TECPluginGetTextEncodingInternetNamePtr PluginGetTextEncodingInternetName; + TECPluginGetTextEncodingFromInternetNamePtr PluginGetTextEncodingFromInternetName; + +}; +typedef struct TECPluginDispatchTable TECPluginDispatchTable; + + + + + + +#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 + + +#endif /* __TEXTENCODINGPLUGIN__ */ + |