ControlScaler.cxx
Go to the documentation of this file.00001 #include "ControlScaler.hxx"
00002 #include "ProcessingFactory.hxx"
00003
00004 namespace CLAM
00005 {
00006 namespace Hidden
00007 {
00008 static const char * metadata[] = {
00009 "key", "ControlScaler",
00010 "category", "Controls",
00011 "description", "ControlScaler",
00012 0
00013 };
00014 static FactoryRegistrator<ProcessingFactory, ControlScaler> reg = metadata;
00015 }
00016
00017 void ControlScalerConfig::DefaultInit()
00018 {
00019 AddAll();
00020 UpdateData();
00021 SetAmount( 1.0 );
00022 }
00023
00024 ControlScaler::ControlScaler()
00025 : mInControl( "Control In", this , &ControlScaler::InControlCallback )
00026 , mGainControl( "Gain Amount", this , &ControlScaler::InControlCallback )
00027 , mOutControl( "Control Out", this )
00028 {
00029 Configure( mConfig );
00030 }
00031
00032 ControlScaler::ControlScaler( const ControlScalerConfig& cfg )
00033 : mInControl( "Control In", this , &ControlScaler::InControlCallback )
00034 , mGainControl( "Gain Amount", this , &ControlScaler::InControlCallback )
00035 , mOutControl( "Control Out", this )
00036 {
00037 Configure( cfg );
00038 }
00039
00040 bool ControlScaler::ConcreteConfigure( const ProcessingConfig& cfg )
00041 {
00042 CopyAsConcreteConfig( mConfig, cfg );
00043 mGainControl.DoControl(mConfig.GetAmount());
00044 return true;
00045 }
00046 void ControlScaler::InControlCallback(const TControlData & value)
00047 {
00048 TControlData in = mInControl.GetLastValue();
00049 TControlData gain = mGainControl.GetLastValue();
00050 mOutControl.SendControl(in * gain);
00051 }
00052 bool ControlScaler::Do()
00053 {
00054 return true;
00055 }
00056 }
00057