From b636368a771c4b7791244d308529bd9d44abfe99 Mon Sep 17 00:00:00 2001 From: Mike Wey Date: Sun, 11 Sep 2011 11:38:32 +0200 Subject: Version the Headers so DMagick can be used with older versions of MagickCore. --- dmagick/c/option.d | 183 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 110 insertions(+), 73 deletions(-) (limited to 'dmagick/c/option.d') diff --git a/dmagick/c/option.d b/dmagick/c/option.d index 915796a..655582f 100644 --- a/dmagick/c/option.d +++ b/dmagick/c/option.d @@ -6,80 +6,101 @@ import core.sys.posix.sys.types; import dmagick.c.exception; import dmagick.c.image; import dmagick.c.magickType; +import dmagick.c.magickVersion; extern(C) { - enum CommandOption + mixin( { - MagickUndefinedOptions = -1, - MagickAlignOptions = 0, - MagickAlphaOptions, - MagickBooleanOptions, - MagickChannelOptions, - MagickClassOptions, - MagickClipPathOptions, - MagickCoderOptions, - MagickColorOptions, - MagickColorspaceOptions, - MagickCommandOptions, - MagickComposeOptions, - MagickCompressOptions, - MagickConfigureOptions, - MagickDataTypeOptions, - MagickDebugOptions, - MagickDecorateOptions, - MagickDelegateOptions, - MagickDirectionOptions, - MagickDisposeOptions, - MagickDistortOptions, - MagickDitherOptions, - MagickEndianOptions, - MagickEvaluateOptions, - MagickFillRuleOptions, - MagickFilterOptions, - MagickFontOptions, - MagickFontsOptions, - MagickFormatOptions, - MagickFunctionOptions, - MagickGravityOptions, - MagickIntentOptions, - MagickInterlaceOptions, - MagickInterpolateOptions, - MagickKernelOptions, - MagickLayerOptions, - MagickLineCapOptions, - MagickLineJoinOptions, - MagickListOptions, - MagickLocaleOptions, - MagickLogEventOptions, - MagickLogOptions, - MagickMagicOptions, - MagickMethodOptions, - MagickMetricOptions, - MagickMimeOptions, - MagickModeOptions, - MagickModuleOptions, - MagickMorphologyOptions, - MagickNoiseOptions, - MagickOrientationOptions, - MagickPolicyOptions, - MagickPolicyDomainOptions, - MagickPolicyRightsOptions, - MagickPreviewOptions, - MagickPrimitiveOptions, - MagickQuantumFormatOptions, - MagickResolutionOptions, - MagickResourceOptions, - MagickSparseColorOptions, - MagickStatisticOptions, - MagickStorageOptions, - MagickStretchOptions, - MagickStyleOptions, - MagickThresholdOptions, - MagickTypeOptions, - MagickValidateOptions, - MagickVirtualPixelOptions - } + string options = "enum CommandOption + { + MagickUndefinedOptions = -1, + MagickAlignOptions = 0, + MagickAlphaOptions, + MagickBooleanOptions, + MagickChannelOptions, + MagickClassOptions, + MagickClipPathOptions, + MagickCoderOptions, + MagickColorOptions, + MagickColorspaceOptions, + MagickCommandOptions, + MagickComposeOptions, + MagickCompressOptions, + MagickConfigureOptions, + MagickDataTypeOptions, + MagickDebugOptions, + MagickDecorateOptions, + MagickDelegateOptions, + MagickDirectionOptions, + MagickDisposeOptions, + MagickDistortOptions, + MagickDitherOptions, + MagickEndianOptions, + MagickEvaluateOptions, + MagickFillRuleOptions, + MagickFilterOptions, + MagickFontOptions, + MagickFontsOptions, + MagickFormatOptions, + MagickFunctionOptions, + MagickGravityOptions,"; + + static if ( MagickLibVersion < 0x670 ) + { + options ~= "MagickImageListOptions,"; + } + + options ~= " + MagickIntentOptions, + MagickInterlaceOptions, + MagickInterpolateOptions, + MagickKernelOptions, + MagickLayerOptions, + MagickLineCapOptions, + MagickLineJoinOptions, + MagickListOptions, + MagickLocaleOptions, + MagickLogEventOptions, + MagickLogOptions, + MagickMagicOptions, + MagickMethodOptions, + MagickMetricOptions, + MagickMimeOptions, + MagickModeOptions, + MagickModuleOptions, + MagickMorphologyOptions, + MagickNoiseOptions, + MagickOrientationOptions, + MagickPolicyOptions, + MagickPolicyDomainOptions, + MagickPolicyRightsOptions, + MagickPreviewOptions, + MagickPrimitiveOptions, + MagickQuantumFormatOptions, + MagickResolutionOptions, + MagickResourceOptions, + MagickSparseColorOptions,"; + + static if ( MagickLibVersion >= 0x669 ) + { + options ~= "MagickStatisticOptions,"; + } + + options ~= " + MagickStorageOptions, + MagickStretchOptions, + MagickStyleOptions, + MagickThresholdOptions, + MagickTypeOptions, + MagickValidateOptions, + MagickVirtualPixelOptions + }"; + + return options; + }()); + + alias CommandOption MagickOption; enum ValidateType { @@ -119,8 +140,13 @@ extern(C) mnemonic; ssize_t - type, - flags; + type; + + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t + flags; + } MagickBooleanType stealth; @@ -140,11 +166,22 @@ extern(C) MagickBooleanType ListCommandOptions(FILE*, const CommandOption, ExceptionInfo*); MagickBooleanType SetImageOption(ImageInfo*, const(char)*, const(char)*); - ssize_t GetCommandOptionFlags(const CommandOption, const MagickBooleanType, const(char)*); + static if ( MagickLibVersion >= 0x670 ) + { + ssize_t GetCommandOptionFlags(const CommandOption, const MagickBooleanType, const(char)*); + } + ssize_t ParseChannelOption(const(char)*); ssize_t ParseCommandOption(const CommandOption, const MagickBooleanType, const(char)*); void DestroyImageOptions(ImageInfo*); void ResetImageOptions(const(ImageInfo)*); void ResetImageOptionIterator(const(ImageInfo)*); + + //Renamed functions in 6.7.0 + alias GetCommandOptions GetMagickOptions; + alias CommandOptionToMnemonic MagickOptionToMnemonic; + alias IsCommandOption IsMagickOption; + alias ListCommandOptions ListMagickOptions; + alias ParseCommandOption ParseMagickOption; } -- cgit v1.2.3