Marsyas
0.6.0-alpha
|
00001 #include "Sidechain.h" 00002 00003 namespace Marsyas { 00004 00005 Sidechain::Sidechain(std::string name): 00006 MarSystem("Sidechain", name) 00007 { 00008 isComposite_ = true; 00009 } 00010 00011 void Sidechain::myUpdate(MarControlPtr cause) 00012 { 00013 MarSystem::myUpdate(cause); 00014 00015 if (!marsystems_.size()) 00016 return; 00017 00018 MarSystem *child = marsystems_[0]; 00019 child->setControl("mrs_natural/inObservations", inObservations_); 00020 child->setControl("mrs_natural/inSamples", inSamples_); 00021 child->setControl("mrs_real/israte", israte_); 00022 child->setControl("mrs_string/inObsNames", inObsNames_); 00023 child->update(); 00024 00025 m_child_out.create( child->getControl("mrs_natural/onObservations")->to<mrs_natural>(), 00026 child->getControl("mrs_natural/onSamples")->to<mrs_natural>() ); 00027 } 00028 00029 void Sidechain::myProcess(realvec& in, realvec& out) 00030 { 00031 out = in; 00032 00033 if (!marsystems_.size()) 00034 return; 00035 00036 MarSystem *child = marsystems_[0]; 00037 child->process(in, m_child_out); 00038 } 00039 00040 } // namespace Marsyas