diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dstep/coreservices/carboncore/TextEncodingConverter.d	Sat Aug 01 15:03:28 2009 +0200
@@ -0,0 +1,104 @@
+/**
+ * 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);
+}
\ No newline at end of file