1/*
2 * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _CAM_COLOR_SPACE_TRANSFORM_H
6#define _CAM_COLOR_SPACE_TRANSFORM_H
7
8#include "CamDevice.h"
9#include <Rect.h>
10
11// This class represents the camera's (cmos or whatever) sensor chip
12class CamColorSpaceTransform {
13	public:
14						CamColorSpaceTransform();
15	virtual				~CamColorSpaceTransform();
16
17	virtual status_t	InitCheck();
18
19	virtual const char*	Name();
20	virtual color_space	OutputSpace();
21
22	virtual status_t	SetVideoFrame(BRect rect);
23	virtual BRect		VideoFrame() const { return fVideoFrame; };
24
25	static CamColorSpaceTransform *Create(const char *name);
26
27	protected:
28		status_t		fInitStatus;
29		BRect			fVideoFrame;
30	private:
31};
32
33// internal modules
34#define B_WEBCAM_DECLARE_CSTRANSFORM(trclass,trname) \
35extern "C" CamColorSpaceTransform *Instantiate##trclass(); \
36CamColorSpaceTransform *Instantiate##trclass() \
37{ return new trclass(); };
38
39
40#endif /* _CAM_COLOR_SPACE_TRANSFORM_H */
41