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