Mercurial > projects > dstep
view dstep/coreservices/carboncore/TextEncodingConverter.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 21, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.carboncore.TextEncodingConverter; //import dstep.AvailabilityMacros; import dstep.corefoundation.CFBase; import dstep.coreservices.carboncore.MacTypes; import dstep.coreservices.carboncore.TextCommon; import dstep.corefoundation.CFString; import dstep.objc.bridge.TypeEncoding; struct OpaqueTECObjectRef; struct OpaqueTECSnifferObjectRef; alias uint TECPluginSignature; alias uint TECPluginVersion; alias OpaqueTECObjectRef* TECObjectRef; alias OpaqueTECSnifferObjectRef* TECSnifferObjectRef; alias uint TECPluginSig; alias uint TECInternetNameUsageMask; // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __kTECSignature = getOSType!("encv"); const __kTECUnicodePluginSignature = getOSType!("puni"); const __kTECJapanesePluginSignature = getOSType!("pjpn"); const __kTECChinesePluginSignature = getOSType!("pzho"); const __kTECKoreanPluginSignature = getOSType!("pkor"); } } enum { kTECSignature = getOSType!("encv"), kTECUnicodePluginSignature = getOSType!("puni"), kTECJapanesePluginSignature = getOSType!("pjpn"), kTECChinesePluginSignature = getOSType!("pzho"), kTECKoreanPluginSignature = getOSType!("pkor") } enum { kTECInternetNameDefaultUsageMask = 0, kTECInternetNameStrictUsageMask = 1, kTECInternetNameTolerantUsageMask = 2 } enum { kTEC_MIBEnumDontCare = -1 } struct TECConversionInfo { uint sourceEncoding; uint destinationEncoding; ushort reserved1; ushort reserved2; } extern (C) { int TECCountAvailableTextEncodings (ItemCount* numberEncodings); int TECGetAvailableTextEncodings (TextEncoding* availableEncodings, uint maxAvailableEncodings, ItemCount* actualAvailableEncodings); int TECCountDirectTextEncodingConversions (ItemCount* numberOfEncodings); int TECGetDirectTextEncodingConversions (TECConversionInfo* availableConversions, uint maxAvailableConversions, ItemCount* actualAvailableConversions); int TECCountDestinationTextEncodings (uint inputEncoding, ItemCount* numberOfEncodings); int TECGetDestinationTextEncodings (uint inputEncoding, TextEncoding* destinationEncodings, uint maxDestinationEncodings, ItemCount* actualDestinationEncodings); int TECGetTextEncodingInternetName (uint textEncoding, ubyte[256] encodingName); int TECGetTextEncodingFromInternetName (TextEncoding* textEncoding, char* encodingName); int TECCreateConverter (TECObjectRef* newEncodingConverter, uint inputEncoding, uint outputEncoding); int TECCreateConverterFromPath (TECObjectRef* newEncodingConverter, TextEncoding* inPath, uint inEncodings); int TECDisposeConverter (TECObjectRef newEncodingConverter); int TECClearConverterContextInfo (TECObjectRef encodingConverter); int TECConvertText (TECObjectRef encodingConverter, char* inputBuffer, uint inputBufferLength, ByteCount* actualInputLength, char* outputBuffer, uint outputBufferLength, ByteCount* actualOutputLength); int TECFlushText (TECObjectRef encodingConverter, char* outputBuffer, uint outputBufferLength, ByteCount* actualOutputLength); int TECCountSubTextEncodings (uint inputEncoding, ItemCount* numberOfEncodings); int TECGetSubTextEncodings (uint inputEncoding, TextEncoding* subEncodings, uint maxSubEncodings, ItemCount* actualSubEncodings); int TECGetEncodingList (TECObjectRef encodingConverter, ItemCount* numEncodings, Handle* encodingList); int TECCreateOneToManyConverter (TECObjectRef* newEncodingConverter, uint inputEncoding, uint numOutputEncodings, TextEncoding* outputEncodings); int TECConvertTextToMultipleEncodings (TECObjectRef encodingConverter, char* inputBuffer, uint inputBufferLength, ByteCount* actualInputLength, char* outputBuffer, uint outputBufferLength, ByteCount* actualOutputLength, TextEncodingRun* outEncodingsBuffer, uint maxOutEncodingRuns, ItemCount* actualOutEncodingRuns); int TECFlushMultipleEncodings (TECObjectRef encodingConverter, char* outputBuffer, uint outputBufferLength, ByteCount* actualOutputLength, TextEncodingRun* outEncodingsBuffer, uint maxOutEncodingRuns, ItemCount* actualOutEncodingRuns); int TECCountWebTextEncodings (short locale, ItemCount* numberEncodings); int TECGetWebTextEncodings (short locale, TextEncoding* availableEncodings, uint maxAvailableEncodings, ItemCount* actualAvailableEncodings); int TECCountMailTextEncodings (short locale, ItemCount* numberEncodings); int TECGetMailTextEncodings (short locale, TextEncoding* availableEncodings, uint maxAvailableEncodings, ItemCount* actualAvailableEncodings); int TECCountAvailableSniffers (ItemCount* numberOfEncodings); int TECGetAvailableSniffers (TextEncoding* availableSniffers, uint maxAvailableSniffers, ItemCount* actualAvailableSniffers); int TECCreateSniffer (TECSnifferObjectRef* encodingSniffer, TextEncoding* testEncodings, uint numTextEncodings); int TECSniffTextEncoding (TECSnifferObjectRef encodingSniffer, char* inputBuffer, uint inputBufferLength, TextEncoding* testEncodings, uint numTextEncodings, ItemCount* numErrsArray, uint maxErrs, ItemCount* numFeaturesArray, uint maxFeatures); int TECDisposeSniffer (TECSnifferObjectRef encodingSniffer); int TECClearSnifferContextInfo (TECSnifferObjectRef encodingSniffer); int TECSetBasicOptions (TECObjectRef encodingConverter, uint controlFlags); int TECCopyTextEncodingInternetNameAndMIB (uint textEncoding, uint usage, CFStringRef* encodingNamePtr, SInt32* mibEnumPtr); int TECGetTextEncodingFromInternetNameOrMIB (TextEncoding* textEncodingPtr, uint usage, CFStringRef encodingName, int mibEnum); }