Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:11:42

0001 /*
0002   Copyright @ 1999 ImageMagick Studio LLC, a non-profit organization
0003   dedicated to making software imaging solutions freely available.
0004   
0005   You may not use this file except in compliance with the License.  You may
0006   obtain a copy of the License at
0007   
0008     https://imagemagick.org/script/license.php
0009   
0010   Unless required by applicable law or agreed to in writing, software
0011   distributed under the License is distributed on an "AS IS" BASIS,
0012   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013   See the License for the specific language governing permissions and
0014   limitations under the License.
0015 
0016   MagickCore magick methods.
0017 */
0018 #ifndef MAGICKCORE_MAGICK_H
0019 #define MAGICKCORE_MAGICK_H
0020 
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024 
0025 #include <stdarg.h>
0026 #include "MagickCore/semaphore.h"
0027 
0028 #if defined(__cplusplus) || defined(c_plusplus)
0029 # define magick_module  _module   /* reserved word in C++(20) */
0030 #else
0031 # define magick_module  module
0032 #endif
0033 
0034 typedef enum
0035 {
0036   UndefinedFormatType,
0037   ImplicitFormatType,
0038   ExplicitFormatType
0039 } MagickFormatType;
0040 
0041 typedef enum
0042 {
0043   CoderNoFlag = 0x0000,
0044   CoderAdjoinFlag = 0x0001,
0045   CoderBlobSupportFlag = 0x0002,
0046   CoderDecoderThreadSupportFlag = 0x0004,
0047   CoderEncoderThreadSupportFlag = 0x0008,
0048   CoderEndianSupportFlag = 0x0010,
0049   CoderRawSupportFlag = 0x0020,
0050   CoderSeekableStreamFlag = 0x0040, /* deprecated */
0051   CoderStealthFlag = 0x0080,
0052   CoderUseExtensionFlag = 0x0100,
0053   CoderDecoderSeekableStreamFlag = 0x0200,
0054   CoderEncoderSeekableStreamFlag = 0x0400
0055 } MagickInfoFlag;
0056 
0057 typedef Image
0058   *DecodeImageHandler(const ImageInfo *,ExceptionInfo *);
0059 
0060 typedef MagickBooleanType
0061   EncodeImageHandler(const ImageInfo *,Image *,ExceptionInfo *);
0062 
0063 typedef MagickBooleanType
0064   IsImageFormatHandler(const unsigned char *,const size_t);
0065 
0066 typedef struct _MagickInfo
0067 {
0068   char
0069     *name,
0070     *description,
0071     *version,
0072     *mime_type,
0073     *note,
0074     *magick_module;
0075 
0076   DecodeImageHandler
0077     *decoder;
0078 
0079   EncodeImageHandler
0080     *encoder;
0081 
0082   ImageInfo
0083     *image_info;
0084 
0085   IsImageFormatHandler
0086     *magick;
0087 
0088   MagickFormatType
0089     format_type;
0090 
0091   MagickStatusType
0092     flags;
0093 
0094   SemaphoreInfo
0095     *semaphore;
0096 
0097   size_t
0098     signature;
0099 
0100   void
0101     *client_data;
0102 } MagickInfo;
0103 
0104 extern MagickExport char
0105   **GetMagickList(const char *,size_t *,ExceptionInfo *);
0106 
0107 extern MagickExport const char
0108   *GetMagickDescription(const MagickInfo *),
0109   *GetMagickMimeType(const MagickInfo *),
0110   *GetMagickModuleName(const MagickInfo *),
0111   *GetMagickName(const MagickInfo *);
0112 
0113 extern MagickExport DecodeImageHandler
0114   *GetImageDecoder(const MagickInfo *) magick_attribute((__pure__));
0115 
0116 extern MagickExport EncodeImageHandler
0117   *GetImageEncoder(const MagickInfo *) magick_attribute((__pure__));
0118 
0119 extern MagickExport int
0120   GetMagickPrecision(void),
0121   SetMagickPrecision(const int);
0122 
0123 extern MagickExport MagickBooleanType
0124   GetImageMagick(const unsigned char *,const size_t,char *),
0125   GetMagickAdjoin(const MagickInfo *) magick_attribute((__pure__)),
0126   GetMagickBlobSupport(const MagickInfo *) magick_attribute((__pure__)),
0127   GetMagickDecoderSeekableStream(const MagickInfo *)
0128     magick_attribute((__pure__)),
0129   GetMagickDecoderThreadSupport(const MagickInfo *)
0130     magick_attribute((__pure__)),
0131   GetMagickEncoderSeekableStream(const MagickInfo *)
0132      magick_attribute((__pure__)),
0133   GetMagickEncoderThreadSupport(const MagickInfo *)
0134     magick_attribute((__pure__)),
0135   GetMagickEndianSupport(const MagickInfo *) magick_attribute((__pure__)),
0136   GetMagickRawSupport(const MagickInfo *) magick_attribute((__pure__)),
0137   GetMagickStealth(const MagickInfo *) magick_attribute((__pure__)),
0138   GetMagickUseExtension(const MagickInfo *) magick_attribute((__pure__)),
0139   IsMagickCoreInstantiated(void) magick_attribute((__pure__)),
0140   RegisterMagickInfo(MagickInfo *),
0141   UnregisterMagickInfo(const char *);
0142 
0143 extern const MagickExport MagickInfo
0144   *GetMagickInfo(const char *,ExceptionInfo *),
0145   **GetMagickInfoList(const char *,size_t *,ExceptionInfo *);
0146 
0147 extern MagickExport MagickInfo
0148   *AcquireMagickInfo(const char *, const char *, const char *);
0149 
0150 extern MagickExport void
0151   MagickCoreGenesis(const char *,const MagickBooleanType),
0152   MagickCoreTerminus(void);
0153 
0154 #if defined(__cplusplus) || defined(c_plusplus)
0155 }
0156 #endif
0157 
0158 #endif