1/*
2 * Copyright 2004-2008, François Revol, <revol@free.fr>.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "CamColorSpaceTransform.h"
7#include "CamDebug.h"
8
9/* I should replace this by a generic colorspace TranslatorAddOn... */
10
11#undef B_WEBCAM_DECLARE_CSTRANSFORM
12#define B_WEBCAM_DECLARE_CSTRANSFORM(trclass,trname) \
13extern "C" CamColorSpaceTransform *Instantiate##trclass();
14#include "CamInternalColorSpaceTransforms.h"
15#undef B_WEBCAM_DECLARE_CSTRANSFORM
16typedef CamColorSpaceTransform *(*TransformInstFunc)();
17struct { const char *name; TransformInstFunc instfunc; } kTransformTable[] = {
18#define B_WEBCAM_DECLARE_CSTRANSFORM(trclass,trname) \
19{ #trname, &Instantiate##trclass },
20#include "CamInternalColorSpaceTransforms.h"
21{ NULL, NULL },
22};
23#undef B_WEBCAM_DECLARE_CSTRANSFORM
24
25
26CamColorSpaceTransform::CamColorSpaceTransform()
27	: fInitStatus(B_NO_INIT),
28	  fVideoFrame()
29{
30
31}
32
33
34CamColorSpaceTransform::~CamColorSpaceTransform()
35{
36
37}
38
39
40status_t
41CamColorSpaceTransform::InitCheck()
42{
43	return fInitStatus;
44}
45
46
47const char *
48CamColorSpaceTransform::Name()
49{
50	return "<unknown>";
51}
52
53
54color_space
55CamColorSpaceTransform::OutputSpace()
56{
57	return B_RGB32;
58}
59
60
61status_t
62CamColorSpaceTransform::SetVideoFrame(BRect rect)
63{
64	return ENOSYS;
65}
66
67
68CamColorSpaceTransform *
69CamColorSpaceTransform::Create(const char *name)
70{
71	for (int i = 0; kTransformTable[i].name; i++) {
72		if (!strcmp(kTransformTable[i].name, name))
73			return kTransformTable[i].instfunc();
74	}
75	return NULL;
76}
77