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 
Generated by  doxygen 1.6.3