]> granicus.if.org Git - imagemagick/blob - magick/option.h
Addition of Flags to CommandOption parse table
[imagemagick] / magick / option.h
1 /*
2   Copyright 1999-2011 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   MagickAlphaOptions,
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 /*  MagickImageListOptions, */
59   MagickIntentOptions,
60   MagickInterlaceOptions,
61   MagickInterpolateOptions,
62   MagickKernelOptions,
63   MagickLayerOptions,
64   MagickLineCapOptions,
65   MagickLineJoinOptions,
66   MagickListOptions,
67   MagickLocaleOptions,
68   MagickLogEventOptions,
69   MagickLogOptions,
70   MagickMagicOptions,
71   MagickMethodOptions,
72   MagickMetricOptions,
73   MagickMimeOptions,
74   MagickModeOptions,
75   MagickModuleOptions,
76   MagickMorphologyOptions,
77   MagickNoiseOptions,
78   MagickOrientationOptions,
79   MagickPolicyOptions,
80   MagickPolicyDomainOptions,
81   MagickPolicyRightsOptions,
82   MagickPreviewOptions,
83   MagickPrimitiveOptions,
84   MagickQuantumFormatOptions,
85   MagickResolutionOptions,
86   MagickResourceOptions,
87   MagickSparseColorOptions,
88   MagickStatisticOptions,
89   MagickStorageOptions,
90   MagickStretchOptions,
91   MagickStyleOptions,
92   MagickThresholdOptions,
93   MagickTypeOptions,
94   MagickValidateOptions,
95   MagickVirtualPixelOptions
96 } MagickOption;
97
98 typedef enum
99 {
100   UndefinedValidate,
101   NoValidate = 0x00000,
102   CompareValidate = 0x00001,
103   CompositeValidate = 0x00002,
104   ConvertValidate = 0x00004,
105   FormatsInMemoryValidate = 0x00008,
106   FormatsOnDiskValidate = 0x00010,
107   IdentifyValidate = 0x00020,
108   ImportExportValidate = 0x00040,
109   MontageValidate = 0x00080,
110   StreamValidate = 0x00100,
111   AllValidate = 0x7fffffff
112 } ValidateType;
113
114 typedef struct _OptionInfo
115 {
116   const char
117     *mnemonic;
118
119   ssize_t
120     type;
121
122   MagickBooleanType
123     stealth;
124 } OptionInfo;
125
126 /* Flags to describe classes of Image Processing Options */
127 typedef enum
128 {
129   NumArgsOption = 0x0007,    /* Number of Arguments which follows the option */
130   FireOption = 0x0008,       /* Option Sequence Firing Point */
131 #if 0
132   ImageInfoOption = 0x0010,  /* Sets ImageInfo only, no image needed */
133   SimpleOption = 0x0020,     /* Simple Image Processing Option */
134   ImageListOption = 0x0040,  /* Multi-Image List Processing Option */
135 #endif
136   DepreciatedOption = 0x1000 /* Depreciated Option - Give Warning */
137 } CommandOptionFlags;
138
139 extern MagickExport char
140   **GetMagickOptions(const MagickOption),
141   *GetNextImageOption(const ImageInfo *),
142   *RemoveImageOption(ImageInfo *,const char *);
143
144 extern MagickExport const char
145   *GetImageOption(const ImageInfo *,const char *),
146   *MagickOptionToMnemonic(const MagickOption,const ssize_t);
147
148 extern MagickExport MagickBooleanType
149   CloneImageOptions(ImageInfo *,const ImageInfo *),
150   DefineImageOption(ImageInfo *,const char *),
151   DeleteImageOption(ImageInfo *,const char *),
152   IsMagickOption(const char *),
153   ListMagickOptions(FILE *,const MagickOption,ExceptionInfo *),
154   SetImageOption(ImageInfo *,const char *,const char *);
155
156 extern MagickExport ssize_t
157   ParseChannelOption(const char *),
158   ParseMagickOption(const MagickOption,const MagickBooleanType,const char *);
159
160 extern MagickExport void
161   DestroyImageOptions(ImageInfo *),
162   ResetImageOptions(const ImageInfo *),
163   ResetImageOptionIterator(const ImageInfo *);
164
165 #if defined(__cplusplus) || defined(c_plusplus)
166 }
167 #endif
168
169 #endif