• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2   Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4 
5   You may not use this file except in compliance with the License.
6   obtain a copy of the License at
7 
8     http://www.imagemagick.org/script/license.php
9 
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15 
16   MagickCore option methods.
17 */
18 #ifndef MAGICKCORE_OPTION_H
19 #define MAGICKCORE_OPTION_H
20 
21 #if defined(__cplusplus) || defined(c_plusplus)
22 extern "C" {
23 #endif
24 
25 typedef enum
26 {
27   MagickUndefinedOptions = -1,
28   MagickAlignOptions = 0,
29   MagickAlphaChannelOptions,
30   MagickBooleanOptions,
31   MagickCacheOptions,
32   MagickChannelOptions,
33   MagickClassOptions,
34   MagickClipPathOptions,
35   MagickCoderOptions,
36   MagickColorOptions,
37   MagickColorspaceOptions,
38   MagickCommandOptions,
39   MagickComplexOptions,
40   MagickComplianceOptions,
41   MagickComposeOptions,
42   MagickCompressOptions,
43   MagickConfigureOptions,
44   MagickDataTypeOptions,
45   MagickDebugOptions,
46   MagickDecorateOptions,
47   MagickDelegateOptions,
48   MagickDirectionOptions,
49   MagickDisposeOptions,
50   MagickDistortOptions,
51   MagickDitherOptions,
52   MagickEndianOptions,
53   MagickEvaluateOptions,
54   MagickFillRuleOptions,
55   MagickFilterOptions,
56   MagickFontOptions,
57   MagickFontsOptions,
58   MagickFormatOptions,
59   MagickFunctionOptions,
60   MagickGradientOptions,
61   MagickGravityOptions,
62   MagickIntensityOptions,
63   MagickIntentOptions,
64   MagickInterlaceOptions,
65   MagickInterpolateOptions,
66   MagickKernelOptions,
67   MagickLayerOptions,
68   MagickLineCapOptions,
69   MagickLineJoinOptions,
70   MagickListOptions,
71   MagickLocaleOptions,
72   MagickLogEventOptions,
73   MagickLogOptions,
74   MagickMagicOptions,
75   MagickMethodOptions,
76   MagickMetricOptions,
77   MagickMimeOptions,
78   MagickModeOptions,
79   MagickModuleOptions,
80   MagickMorphologyOptions,
81   MagickNoiseOptions,
82   MagickOrientationOptions,
83   MagickPixelChannelOptions,
84   MagickPixelIntensityOptions,
85   MagickPixelMaskOptions,
86   MagickPixelTraitOptions,
87   MagickPolicyOptions,
88   MagickPolicyDomainOptions,
89   MagickPolicyRightsOptions,
90   MagickPreviewOptions,
91   MagickPrimitiveOptions,
92   MagickQuantumFormatOptions,
93   MagickResolutionOptions,
94   MagickResourceOptions,
95   MagickSparseColorOptions,
96   MagickStatisticOptions,
97   MagickStorageOptions,
98   MagickStretchOptions,
99   MagickStyleOptions,
100   MagickThresholdOptions,
101   MagickTypeOptions,
102   MagickValidateOptions,
103   MagickVirtualPixelOptions,
104   MagickWeightOptions
105 } CommandOption;
106 
107 typedef enum
108 {
109   UndefinedValidate,
110   NoValidate = 0x00000,
111   ColorspaceValidate = 0x00001,
112   CompareValidate = 0x00002,
113   CompositeValidate = 0x00004,
114   ConvertValidate = 0x00008,
115   FormatsDiskValidate = 0x00010,
116   FormatsMapValidate = 0x00020,
117   FormatsMemoryValidate = 0x00040,
118   IdentifyValidate = 0x00080,
119   ImportExportValidate = 0x00100,
120   MontageValidate = 0x00200,
121   StreamValidate = 0x00400,
122   AllValidate = 0x7fffffff
123 } ValidateType;
124 
125 /*
126   Flags to describe classes of image processing options.
127   These are used to determine how a option should be processed, and
128   avoid attempting to process all options in every way posible.
129 */
130 typedef enum
131 {
132   UndefinedOptionFlag       = 0x0000,  /* option flag is not in use */
133 
134   ImageInfoOptionFlag       = 0x0001,  /* Setting stored in ImageInfo */
135   DrawInfoOptionFlag        = 0x0002,  /* Setting stored in DrawInfo */
136   QuantizeInfoOptionFlag    = 0x0004,  /* Setting stored in QuantizeInfo */
137   GlobalOptionFlag          = 0x0008,  /* Global Setting or Control */
138   SettingOptionFlags        = 0x000F,  /* mask any setting option */
139 
140   NoImageOperatorFlag       = 0x0010,  /* Images not required operator */
141   SimpleOperatorFlag        = 0x0020,  /* Simple Image processing operator */
142   ListOperatorFlag          = 0x0040,  /* Multi-Image processing operator */
143   GenesisOptionFlag         = 0x0080,  /* MagickCommandGenesis() Only Option */
144 
145   SpecialOptionFlag         = 0x0100,  /* Operator with Special Requirements */
146                                        /* EG: for specific CLI commands */
147 
148   AlwaysInterpretArgsFlag   = 0x0400,  /* Always Interpret escapes in Args */
149                                        /* CF: "convert" compatibility mode */
150   NeverInterpretArgsFlag    = 0x0800,  /* Never Interpret escapes in Args */
151                                        /* EG: filename, or delayed escapes */
152 
153   NonMagickOptionFlag       = 0x1000,  /* Option not used by Magick Command */
154   FireOptionFlag            = 0x2000,  /* Convert operation seq firing point */
155   DeprecateOptionFlag       = 0x4000,  /* Deprecate option (no code) */
156   ReplacedOptionFlag        = 0x8800   /* Replaced Option (but still works) */
157 
158 } CommandOptionFlags;
159 
160 typedef struct _OptionInfo
161 {
162   const char
163     *mnemonic;
164 
165   ssize_t
166     type,
167     flags;
168 
169   MagickBooleanType
170     stealth;
171 } OptionInfo;
172 
173 
174 extern MagickExport char
175   **GetCommandOptions(const CommandOption),
176   *GetNextImageOption(const ImageInfo *),
177   *RemoveImageOption(ImageInfo *,const char *);
178 
179 extern MagickExport const char
180   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
181   *GetImageOption(const ImageInfo *,const char *);
182 
183 extern MagickExport MagickBooleanType
184   CloneImageOptions(ImageInfo *,const ImageInfo *),
185   DefineImageOption(ImageInfo *,const char *),
186   DeleteImageOption(ImageInfo *,const char *),
187   IsCommandOption(const char *),
188   IsOptionMember(const char *,const char *),
189   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
190   SetImageOption(ImageInfo *,const char *,const char *);
191 
192 extern MagickExport ssize_t
193   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
194     const char *),
195   ParseChannelOption(const char *),
196   ParsePixelChannelOption(const char *),
197   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
198 
199 extern MagickExport void
200   DestroyImageOptions(ImageInfo *),
201   ResetImageOptions(const ImageInfo *),
202   ResetImageOptionIterator(const ImageInfo *);
203 
204 extern MagickExport const OptionInfo
205   *GetCommandOptionInfo(const char *value);
206 
207 #if defined(__cplusplus) || defined(c_plusplus)
208 }
209 #endif
210 
211 #endif
212