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