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