1 module dmagick.c.magickModule;
2 
3 import core.stdc.stdio;
4 import core.stdc.time;
5 
6 import dmagick.c.exception;
7 import dmagick.c.image;
8 import dmagick.c.magickType;
9 import dmagick.c.magickVersion;
10 
11 extern(C)
12 {
13 	enum MagickModuleType
14 	{
15 		MagickImageCoderModule,
16 		MagickImageFilterModule
17 	}
18 
19 	struct MagickModuleInfo
20 	{
21 		char*
22 			path,
23 			tag;
24 
25 		void*
26 			handle;
27 
28 		void
29 			function() unregister_module;
30 
31 		size_t
32 			function() register_module;
33 
34 		time_t
35 			timestamp;
36 
37 		MagickBooleanType
38 			stealth;
39 
40 		MagickModuleInfo*
41 			previous,
42 			next;
43 
44 		size_t
45 			signature;
46 	}
47 
48 	size_t ImageFilterHandler(Image**, const int, const(char)**, ExceptionInfo*);
49 
50 	char** GetModuleList(const(char)*, const MagickModuleType, size_t*, ExceptionInfo*);
51 
52 	const(MagickModuleInfo)** GetModuleInfoList(const(char)*, size_t*, ExceptionInfo*);
53 
54 	static if ( MagickLibVersion < 0x689 )
55 	{
56 		MagickBooleanType InitializeModuleList(ExceptionInfo*);
57 	}
58 
59 	MagickBooleanType InvokeDynamicImageFilter(const(char)*, Image**, const int, const(char)**, ExceptionInfo*);
60 	MagickBooleanType ListModuleInfo(FILE*, ExceptionInfo*);
61 	MagickBooleanType ModuleComponentGenesis();
62 	MagickBooleanType OpenModule(const(char)*, ExceptionInfo*);
63 	MagickBooleanType OpenModules(ExceptionInfo*);
64 
65 	MagickModuleInfo* GetModuleInfo(const(char)*, ExceptionInfo*);
66 
67 	void DestroyModuleList();
68 	void ModuleComponentTerminus();
69 	void RegisterStaticModules();
70 	void UnregisterStaticModules();
71 }