/dmagick/c/option.d

http://github.com/MikeWey/DMagick · D · 273 lines · 233 code · 40 blank · 0 comment · 14 complexity · 1fa45a044fb3f24537d9a297f0214eff MD5 · raw file

  1. module dmagick.c.option;
  2. import core.stdc.stdio;
  3. import dmagick.c.exception;
  4. import dmagick.c.image;
  5. import dmagick.c.magickType;
  6. import dmagick.c.magickVersion;
  7. alias ptrdiff_t ssize_t;
  8. extern(C)
  9. {
  10. mixin(
  11. {
  12. static if ( MagickLibVersion >= 0x670 )
  13. {
  14. string options = "enum CommandOption";
  15. }
  16. else
  17. {
  18. string options = "enum MagickOption";
  19. }
  20. options ~= "
  21. {
  22. MagickUndefinedOptions = -1,
  23. MagickAlignOptions = 0,
  24. MagickAlphaOptions,
  25. MagickBooleanOptions,";
  26. static if ( MagickLibVersion >= 0x682 )
  27. {
  28. options ~= "MagickCacheOptions,";
  29. }
  30. options ~= "
  31. MagickChannelOptions,
  32. MagickClassOptions,
  33. MagickClipPathOptions,
  34. MagickCoderOptions,
  35. MagickColorOptions,
  36. MagickColorspaceOptions,
  37. MagickCommandOptions,
  38. MagickComposeOptions,
  39. MagickCompressOptions,
  40. MagickConfigureOptions,
  41. MagickDataTypeOptions,
  42. MagickDebugOptions,
  43. MagickDecorateOptions,
  44. MagickDelegateOptions,";
  45. static if ( MagickLibVersion >= 0x661 )
  46. {
  47. options ~= "MagickDirectionOptions,";
  48. }
  49. options ~= "
  50. MagickDisposeOptions,
  51. MagickDistortOptions,
  52. MagickDitherOptions,
  53. MagickEndianOptions,
  54. MagickEvaluateOptions,
  55. MagickFillRuleOptions,
  56. MagickFilterOptions,
  57. MagickFontOptions,
  58. MagickFontsOptions,
  59. MagickFormatOptions,
  60. MagickFunctionOptions,
  61. MagickGravityOptions,";
  62. static if ( MagickLibVersion < 0x670 )
  63. {
  64. options ~= "MagickImageListOptions,";
  65. }
  66. options ~= "
  67. MagickIntentOptions,
  68. MagickInterlaceOptions,
  69. MagickInterpolateOptions,
  70. MagickKernelOptions,
  71. MagickLayerOptions,
  72. MagickLineCapOptions,
  73. MagickLineJoinOptions,
  74. MagickListOptions,
  75. MagickLocaleOptions,
  76. MagickLogEventOptions,
  77. MagickLogOptions,
  78. MagickMagicOptions,
  79. MagickMethodOptions,
  80. MagickMetricOptions,
  81. MagickMimeOptions,
  82. MagickModeOptions,
  83. MagickModuleOptions,
  84. MagickMorphologyOptions,
  85. MagickNoiseOptions,
  86. MagickOrientationOptions,";
  87. static if ( MagickLibVersion >= 0x684 )
  88. {
  89. options ~= "MagickPixelIntensityOptions,";
  90. }
  91. options ~= "
  92. MagickPolicyOptions,
  93. MagickPolicyDomainOptions,
  94. MagickPolicyRightsOptions,
  95. MagickPreviewOptions,
  96. MagickPrimitiveOptions,
  97. MagickQuantumFormatOptions,
  98. MagickResolutionOptions,
  99. MagickResourceOptions,
  100. MagickSparseColorOptions,";
  101. static if ( MagickLibVersion >= 0x669 )
  102. {
  103. options ~= "MagickStatisticOptions,";
  104. }
  105. options ~= "
  106. MagickStorageOptions,
  107. MagickStretchOptions,
  108. MagickStyleOptions,
  109. MagickThresholdOptions,
  110. MagickTypeOptions,
  111. MagickValidateOptions,
  112. MagickVirtualPixelOptions";
  113. static if ( MagickLibVersion >= 0x688 )
  114. {
  115. options ~= "MagickComplexOptions,
  116. MagickIntensityOptions,";
  117. }
  118. static if ( MagickLibVersion >= 0x692 )
  119. {
  120. options ~= "MagickGradientOptions,
  121. MagickWeightOptions,";
  122. }
  123. static if ( MagickLibVersion >= 0x693 )
  124. {
  125. options ~= "MagickComplianceOptions,";
  126. }
  127. static if ( MagickLibVersion >= 0x699 )
  128. {
  129. options ~= "MagickAutoThresholdOptions";
  130. }
  131. options ~= "}";
  132. return options;
  133. }());
  134. static if ( MagickLibVersion >= 0x686 )
  135. {
  136. enum ValidateType
  137. {
  138. UndefinedValidate,
  139. NoValidate = 0x00000,
  140. ColorspaceValidate = 0x00001,
  141. CompareValidate = 0x00002,
  142. CompositeValidate = 0x00004,
  143. ConvertValidate = 0x00008,
  144. FormatsDiskValidate = 0x00010,
  145. FormatsMapValidate = 0x00020,
  146. FormatsMemoryValidate = 0x00040,
  147. IdentifyValidate = 0x00080,
  148. ImportExportValidate = 0x00100,
  149. MontageValidate = 0x00200,
  150. StreamValidate = 0x00400,
  151. AllValidate = 0x7fffffff
  152. }
  153. }
  154. else
  155. {
  156. enum ValidateType
  157. {
  158. UndefinedValidate,
  159. NoValidate = 0x00000,
  160. CompareValidate = 0x00001,
  161. CompositeValidate = 0x00002,
  162. ConvertValidate = 0x00004,
  163. FormatsInMemoryValidate = 0x00008,
  164. FormatsOnDiskValidate = 0x00010,
  165. IdentifyValidate = 0x00020,
  166. ImportExportValidate = 0x00040,
  167. MontageValidate = 0x00080,
  168. StreamValidate = 0x00100,
  169. AllValidate = 0x7fffffff
  170. }
  171. }
  172. enum CommandOptionFlags
  173. {
  174. UndefinedOptionFlag = 0x0000,
  175. FireOptionFlag = 0x0001, /* Option sequence firing point */
  176. ImageInfoOptionFlag = 0x0002, /* Sets ImageInfo, no image needed */
  177. DrawInfoOptionFlag = 0x0004, /* Sets DrawInfo, no image needed */
  178. QuantizeInfoOptionFlag = 0x0008, /* Sets QuantizeInfo, no image needed */
  179. GlobalOptionFlag = 0x0010, /* Sets Global Option, no image needed */
  180. SimpleOperatorOptionFlag = 0x0100, /* Simple Image processing operator */
  181. ListOperatorOptionFlag = 0x0200, /* Multi-Image List processing operator */
  182. SpecialOperatorOptionFlag = 0x0400, /* Specially handled Operator Option */
  183. GenesisOptionFlag = 0x0400, /* Genesis Command Wrapper Option */
  184. NonConvertOptionFlag = 0x4000, /* Option not used by Convert */
  185. DeprecateOptionFlag = 0x8000 /* Deprecate option, give warning */
  186. }
  187. struct OptionInfo
  188. {
  189. const(char)*
  190. mnemonic;
  191. ssize_t
  192. type;
  193. static if ( MagickLibVersion >= 0x670 )
  194. {
  195. ssize_t
  196. flags;
  197. }
  198. MagickBooleanType
  199. stealth;
  200. }
  201. static if ( MagickLibVersion >= 0x670 )
  202. {
  203. char** GetCommandOptions(const CommandOption);
  204. const(char)* CommandOptionToMnemonic(const CommandOption, const ssize_t);
  205. MagickBooleanType IsCommandOption(const(char)*);
  206. MagickBooleanType ListCommandOptions(FILE*, const CommandOption, ExceptionInfo*);
  207. ssize_t GetCommandOptionFlags(const CommandOption, const MagickBooleanType, const(char)*);
  208. ssize_t ParseCommandOption(const CommandOption, const MagickBooleanType, const(char)*);
  209. }
  210. else
  211. {
  212. char** GetMagickOptions(const MagickOption);
  213. const(char)* MagickOptionToMnemonic(const MagickOption, const ssize_t);
  214. MagickBooleanType IsMagickOption(const(char)*);
  215. MagickBooleanType ListMagickOptions(FILE*, const MagickOption, ExceptionInfo*);
  216. ssize_t ParseMagickOption(const MagickOption, const MagickBooleanType,const(char)*);
  217. }
  218. static if ( MagickLibVersion >= 0x690 )
  219. {
  220. MagickBooleanType IsOptionMember(const(char)*, const(char)*);
  221. }
  222. char* GetNextImageOption(const(ImageInfo)*);
  223. char* RemoveImageOption(ImageInfo*, const(char)*);
  224. const(char)* GetImageOption(const(ImageInfo)*, const(char)*);
  225. MagickBooleanType CloneImageOptions(ImageInfo*, const(ImageInfo)*);
  226. MagickBooleanType DefineImageOption(ImageInfo*, const(char)*);
  227. MagickBooleanType DeleteImageOption(ImageInfo*, const(char)*);
  228. MagickBooleanType SetImageOption(ImageInfo*, const(char)*, const(char)*);
  229. ssize_t ParseChannelOption(const(char)*);
  230. void DestroyImageOptions(ImageInfo*);
  231. void ResetImageOptions(const(ImageInfo)*);
  232. void ResetImageOptionIterator(const(ImageInfo)*);
  233. }