1/*
2 * Copyright 2013, Gerasim Troeglazov, 3dEyes@gmail.com. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#ifndef PSD_TRANSLATOR_H
8#define PSD_TRANSLATOR_H
9
10#include "BaseTranslator.h"
11
12#include <Translator.h>
13#include <TranslatorFormats.h>
14#include <TranslationDefs.h>
15#include <GraphicsDefs.h>
16#include <InterfaceDefs.h>
17#include <DataIO.h>
18#include <File.h>
19#include <ByteOrder.h>
20
21#define DOCUMENT_COUNT "/documentCount"
22#define DOCUMENT_INDEX "/documentIndex"
23
24#define PSD_SETTING_COMPRESSION "psd /compression"
25#define PSD_SETTING_VERSION 	"psd /psdversion"
26
27#define PSD_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VERSION(1, 3, 0)
28#define PSD_IMAGE_FORMAT	'PSD '
29
30#define PSD_IN_QUALITY		0.7
31#define PSD_IN_CAPABILITY	0.6
32#define PSD_OUT_QUALITY		0.5
33#define PSD_OUT_CAPABILITY	0.6
34
35#define BITS_IN_QUALITY		0.7
36#define BITS_IN_CAPABILITY	0.6
37#define BITS_OUT_QUALITY	0.7
38#define BITS_OUT_CAPABILITY	0.6
39
40class PSDTranslator : public BaseTranslator {
41	public:
42		PSDTranslator();
43
44		virtual status_t DerivedIdentify(BPositionIO *inSource,
45			const translation_format *inFormat, BMessage *ioExtension,
46			translator_info *outInfo, uint32 outType);
47
48		virtual status_t DerivedTranslate(BPositionIO *inSource,
49			const translator_info *inInfo, BMessage *ioExtension,
50			uint32 outType, BPositionIO *outDestination, int32 baseType);
51
52		virtual status_t DerivedCanHandleImageSize(float width,
53			float height) const;
54
55		virtual BView *NewConfigView(TranslatorSettings *settings);
56
57	protected:
58		virtual ~PSDTranslator();
59};
60
61extern const char *kDocumentCount;
62extern const char *kDocumentIndex;
63
64#endif	/* PSD_TRANSLATOR_H */
65