00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef _MAGICKCORE_MODULE_H
00019 #define _MAGICKCORE_MODULE_H
00020 
00021 #if defined(__cplusplus) || defined(c_plusplus)
00022 extern "C" {
00023 #endif
00024 
00025 #include <time.h>
00026 #include "magick/version.h"
00027 
00028 #define MagickImageCoderSignature  ((unsigned long) \
00029   (((MagickLibVersion) << 8) | MAGICKCORE_QUANTUM_DEPTH))
00030 #define MagickImageFilterSignature  ((unsigned long) \
00031   (((MagickLibVersion) << 8) | MAGICKCORE_QUANTUM_DEPTH))
00032 
00033 typedef enum
00034 {
00035   MagickImageCoderModule,
00036   MagickImageFilterModule
00037 } MagickModuleType;
00038 
00039 typedef struct _ModuleInfo
00040 {
00041   char
00042     *path,
00043     *tag;
00044 
00045   void
00046     *handle,
00047     (*unregister_module)(void);
00048 
00049   unsigned long
00050     (*register_module)(void);
00051 
00052   time_t
00053     load_time;
00054 
00055   MagickBooleanType
00056     stealth;
00057 
00058   struct _ModuleInfo
00059     *previous,
00060     *next;  
00061 
00062   unsigned long
00063     signature;
00064 } ModuleInfo;
00065 
00066 typedef ModuleExport unsigned long
00067   ImageFilterHandler(Image **,const int,char **,ExceptionInfo *);
00068 
00069 extern MagickExport char
00070   **GetModuleList(const char *,unsigned long *,ExceptionInfo *);
00071 
00072 extern MagickExport const ModuleInfo
00073   *GetModuleInfo(const char *,ExceptionInfo *),
00074   **GetModuleInfoList(const char *,unsigned long *,ExceptionInfo *);
00075 
00076 extern MagickExport MagickBooleanType
00077   InvokeDynamicImageFilter(const char *,Image **,const int,char **,
00078     ExceptionInfo *),
00079   InvokeStaticImageFilter(const char *,Image **,const int,char **,
00080     ExceptionInfo *),
00081   ListModuleInfo(FILE *,ExceptionInfo *),
00082   OpenModule(const char *,ExceptionInfo *),
00083   OpenModules(ExceptionInfo *);
00084 
00085 extern MagickExport void
00086   DestroyModuleList(void),
00087   RegisterStaticModules(void),
00088   UnregisterStaticModules(void);
00089 
00090 #if defined(__cplusplus) || defined(c_plusplus)
00091 }
00092 #endif
00093 
00094 #endif