]> granicus.if.org Git - imagemagick/blob - MagickCore/option.h
(no commit message)
[imagemagick] / MagickCore / option.h
1 /*
2   Copyright 1999-2014 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   MagickComposeOptions,
41   MagickCompressOptions,
42   MagickConfigureOptions,
43   MagickDataTypeOptions,
44   MagickDebugOptions,
45   MagickDecorateOptions,
46   MagickDelegateOptions,
47   MagickDirectionOptions,
48   MagickDisposeOptions,
49   MagickDistortOptions,
50   MagickDitherOptions,
51   MagickEndianOptions,
52   MagickEvaluateOptions,
53   MagickFillRuleOptions,
54   MagickFilterOptions,
55   MagickFontOptions,
56   MagickFontsOptions,
57   MagickFormatOptions,
58   MagickFunctionOptions,
59   MagickGravityOptions,
60   MagickIntensityOptions,
61   MagickIntentOptions,
62   MagickInterlaceOptions,
63   MagickInterpolateOptions,
64   MagickKernelOptions,
65   MagickLayerOptions,
66   MagickLineCapOptions,
67   MagickLineJoinOptions,
68   MagickListOptions,
69   MagickLocaleOptions,
70   MagickLogEventOptions,
71   MagickLogOptions,
72   MagickMagicOptions,
73   MagickMethodOptions,
74   MagickMetricOptions,
75   MagickMimeOptions,
76   MagickModeOptions,
77   MagickModuleOptions,
78   MagickMorphologyOptions,
79   MagickNoiseOptions,
80   MagickOrientationOptions,
81   MagickPixelChannelOptions,
82   MagickPixelIntensityOptions,
83   MagickPixelMaskOptions,
84   MagickPixelTraitOptions,
85   MagickPolicyOptions,
86   MagickPolicyDomainOptions,
87   MagickPolicyRightsOptions,
88   MagickPreviewOptions,
89   MagickPrimitiveOptions,
90   MagickQuantumFormatOptions,
91   MagickResolutionOptions,
92   MagickResourceOptions,
93   MagickSparseColorOptions,
94   MagickStatisticOptions,
95   MagickStorageOptions,
96   MagickStretchOptions,
97   MagickStyleOptions,
98   MagickThresholdOptions,
99   MagickTypeOptions,
100   MagickValidateOptions,
101   MagickVirtualPixelOptions
102 } CommandOption;
103
104 typedef enum
105 {
106   UndefinedValidate,
107   NoValidate = 0x00000,
108   ColorspaceValidate = 0x00001,
109   CompareValidate = 0x00002,
110   CompositeValidate = 0x00004,
111   ConvertValidate = 0x00008,
112   FormatsDiskValidate = 0x00010,
113   FormatsMapValidate = 0x00020,
114   FormatsMemoryValidate = 0x00040,
115   IdentifyValidate = 0x00080,
116   ImportExportValidate = 0x00100,
117   MontageValidate = 0x00200,
118   StreamValidate = 0x00400,
119   AllValidate = 0x7fffffff
120 } ValidateType;
121
122 /*
123   Flags to describe classes of image processing options.
124   These are used to determine how a option should be processed, and
125   avoid attempting to process all options in every way posible.
126 */
127 typedef enum
128 {
129   UndefinedOptionFlag       = 0x0000,  /* option flag is not in use */
130
131   ImageInfoOptionFlag       = 0x0001,  /* Setting stored in ImageInfo */
132   DrawInfoOptionFlag        = 0x0002,  /* Setting stored in DrawInfo */
133   QuantizeInfoOptionFlag    = 0x0004,  /* Setting stored in QuantizeInfo */
134   GlobalOptionFlag          = 0x0008,  /* Global Setting or Control */
135   SettingOptionFlags        = 0x000F,  /* mask any setting option */
136
137   NoImageOperatorFlag       = 0x0010,  /* Images not required operator */
138   SimpleOperatorFlag        = 0x0020,  /* Simple Image processing operator */
139   ListOperatorFlag          = 0x0040,  /* Multi-Image processing operator */
140   GenesisOptionFlag         = 0x0080,  /* MagickCommandGenesis() Only Option */
141
142   SpecialOptionFlag         = 0x0100,  /* Operator with Special Requirements */
143                                        /* EG: for specific CLI commands */
144
145   AlwaysInterpretArgsFlag   = 0x0400,  /* Always Interpret escapes in Args */
146                                        /* CF: "convert" compatibility mode */
147   NeverInterpretArgsFlag    = 0x0800,  /* Never Interpret escapes in Args */
148                                        /* EG: filename, or delayed escapes */
149
150   NonMagickOptionFlag       = 0x1000,  /* Option not used by Magick Command */
151   FireOptionFlag            = 0x2000,  /* Convert operation seq firing point */
152   DeprecateOptionFlag       = 0x4000,  /* Deprecate option (no code) */
153   ReplacedOptionFlag        = 0x8800   /* Replaced Option (but still works) */
154
155 } CommandOptionFlags;
156
157 typedef struct _OptionInfo
158 {
159   const char
160     *mnemonic;
161
162   ssize_t
163     type,
164     flags;
165
166   MagickBooleanType
167     stealth;
168 } OptionInfo;
169
170
171 extern MagickExport char
172   **GetCommandOptions(const CommandOption),
173   *GetNextImageOption(const ImageInfo *),
174   *RemoveImageOption(ImageInfo *,const char *);
175
176 extern MagickExport const char
177   *CommandOptionToMnemonic(const CommandOption,const ssize_t),
178   *GetImageOption(const ImageInfo *,const char *);
179
180 extern MagickExport MagickBooleanType
181   CloneImageOptions(ImageInfo *,const ImageInfo *),
182   DefineImageOption(ImageInfo *,const char *),
183   DeleteImageOption(ImageInfo *,const char *),
184   IsCommandOption(const char *),
185   ListCommandOptions(FILE *,const CommandOption,ExceptionInfo *),
186   SetImageOption(ImageInfo *,const char *,const char *);
187
188 extern MagickExport ssize_t
189   GetCommandOptionFlags(const CommandOption,const MagickBooleanType,
190     const char *),
191   ParseChannelOption(const char *),
192   ParsePixelChannelOption(const char *),
193   ParseCommandOption(const CommandOption,const MagickBooleanType,const char *);
194
195 extern MagickExport void
196   DestroyImageOptions(ImageInfo *),
197   ResetImageOptions(const ImageInfo *),
198   ResetImageOptionIterator(const ImageInfo *);
199
200 extern MagickExport const OptionInfo
201   *GetCommandOptionInfo(const char *value);
202
203 #if defined(__cplusplus) || defined(c_plusplus)
204 }
205 #endif
206
207 #endif