00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "Product.h"
00020
00021 using std::ostringstream;
00022 using namespace Marsyas;
00023
00024 Product::Product(mrs_string name):MarSystem("Product",name)
00025 {
00026 }
00027
00028
00029 Product::~Product()
00030 {
00031 }
00032
00033 MarSystem*
00034 Product::clone() const
00035 {
00036 return new Product(*this);
00037 }
00038
00039
00040 void
00041 Product::myUpdate(MarControlPtr sender)
00042 {
00043 (void) sender;
00044 MRSDIAG("Product.cpp - Product:myUpdate");
00045
00046 ctrl_onSamples_->setValue(ctrl_inSamples_, NOUPDATE);
00047 ctrl_onObservations_->setValue(1, NOUPDATE);
00048 ctrl_osrate_->setValue(ctrl_israte_, NOUPDATE);
00049 ctrl_onObsNames_->setValue(ctrl_inObsNames_, NOUPDATE);
00050 }
00051
00052
00053 void
00054 Product::myProcess(realvec& in, realvec& out)
00055 {
00056 mrs_natural t,o;
00057
00058 for (t = 0; t < inSamples_; t++)
00059 out(0,t) = 1;
00060 for (o=0; o < inObservations_; o++)
00061 for (t = 0; t < inSamples_; t++)
00062 {
00063 out(0,t) *= in(o,t);
00064 }
00065 }