summaryrefslogtreecommitdiff
path: root/dmagick/c/magickDelegate.d
blob: d194eb2f85ca8ec0efeb71d82a8681b6cf8c5906 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
module dmagick.c.magickDelegate;

import core.stdc.stdio;

import dmagick.c.exception;
import dmagick.c.image;
import dmagick.c.magickType;
import dmagick.c.magickVersion;
import dmagick.c.semaphore;

alias ptrdiff_t ssize_t;

extern(C)
{
	struct DelegateInfo
	{
		char*
			path,
			decode,
			encode,
			commands;

		ssize_t
			mode;

		MagickBooleanType
			thread_support,
			spawn,
			stealth;

		DelegateInfo*
			previous,
			next;

		size_t
			signature;

		static if ( MagickLibVersion >= 0x689 )
		{
			SemaphoreInfo* semaphore;
		}
	}

	char*  GetDelegateCommand(const(ImageInfo)*, Image*, const(char)*, const(char)*, ExceptionInfo*);
	char** GetDelegateList(const(char)*,size_t *,ExceptionInfo *);

	const(char)* GetDelegateCommands(const(DelegateInfo)*);

	const(DelegateInfo)*  GetDelegateInfo(const(char)*, const(char)*, ExceptionInfo* exception);
	const(DelegateInfo)** GetDelegateInfoList(const(char)*, size_t*, ExceptionInfo*);

	ssize_t GetDelegateMode(const(DelegateInfo)*);

	MagickBooleanType DelegateComponentGenesis();
	MagickBooleanType GetDelegateThreadSupport(const(DelegateInfo)*);
	MagickBooleanType InvokeDelegate(ImageInfo*, Image*, const(char)*, const(char)*, ExceptionInfo*);
	MagickBooleanType ListDelegateInfo(FILE*, ExceptionInfo*);

	void DelegateComponentTerminus();
}