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