summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/TextEncodingPlugin.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/TextEncodingPlugin.h
downloadarchived-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.h210
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__ */
+