00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "ControlMapper.hxx"
00023 #include "ProcessingFactory.hxx"
00024
00025 namespace CLAM
00026 {
00027 namespace Hidden
00028 {
00029 static const char * metadata[] = {
00030 "key", "ControlMapper",
00031 "category", "Controls",
00032 "description", "ControlMapper",
00033 0
00034 };
00035 static FactoryRegistrator<ProcessingFactory, ControlMapper> reg = metadata;
00036 }
00037
00038 void ControlMapperConfig::DefaultInit(void)
00039 {
00040 AddName();
00041 AddMapping();
00042 AddArguments();
00043
00044 UpdateData();
00045 }
00046
00047
00048 ControlMapper::ControlMapper()
00049 :mInput("input",this,&ControlMapper::DoMap)
00050 ,mOutput("output",this)
00051 {
00052 mMappingPtr = 0;
00053 ControlMapperConfig cfg;
00054 Configure(cfg);
00055 }
00056
00057 ControlMapper::ControlMapper(const ControlMapperConfig& cfg)
00058 :mInput("input",this,&ControlMapper::DoMap)
00059 ,mOutput("output",this)
00060 {
00061 mMappingPtr = 0;
00062 Configure(cfg);
00063 }
00064
00065 bool ControlMapper::ConcreteConfigure( const ProcessingConfig& c )
00066 {
00067 CopyAsConcreteConfig(mConfig, c);
00068
00069 if (mMappingPtr) delete mMappingPtr;
00070 mMappingPtr = Mapping::Create(mConfig.GetMapping());
00071 if (mMappingPtr)
00072 {
00073 mMappingPtr->Set(mConfig.GetArguments());
00074 }
00075 else
00076 {
00077 AddConfigErrorMessage( "Unknown mapping");
00078 return false;
00079 }
00080
00081 return true;
00082 }
00083
00084
00085
00086
00087 }
00088