Marsyas  0.6.0-alpha
/usr/src/RPM/BUILD/marsyas-0.6.0/src/marsyas/marsystems/Sidechain.cpp
Go to the documentation of this file.
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