mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user