00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MARSYAS_AIMBOXCUTTER_H
00020 #define MARSYAS_AIMBOXCUTTER_H
00021
00022 #include "MarSystem.h"
00023
00024
00025
00026
00027 #include <vector>
00028
00029 namespace Marsyas
00030 {
00046 class AimBoxes: public MarSystem
00047 {
00048 private:
00049 void myUpdate(MarControlPtr sender);
00050
00051
00052 void ResetInternal();
00053
00054
00055 void InitializeInternal();
00056
00057
00058 bool is_initialized;
00059
00060
00061 mrs_real initialized_israte;
00062 mrs_natural initialized_inobservations;
00063 mrs_natural initialized_insamples;
00064 mrs_natural initialized_box_size_spectral;
00065 mrs_natural initialized_box_size_temporal;
00066
00067
00068 bool is_reset;
00069
00070
00071 mrs_natural reset_inobservations;
00072
00073
00074 MarControlPtr ctrl_box_size_spectral_;
00075 MarControlPtr ctrl_box_size_temporal_;
00076
00077
00078
00079
00080 std::vector<int> box_limits_time_;
00081 std::vector<std::pair<int, int> > box_limits_channels_;
00082 int box_count_;
00083 int feature_size_;
00084
00085 public:
00086 AimBoxes(std::string name);
00087 AimBoxes(const AimBoxes& a);
00088
00089 ~AimBoxes();
00090 MarSystem* clone() const;
00091 void addControls();
00092
00093 void myProcess(realvec& in, realvec& out);
00094 };
00095
00096 }
00097
00098 #endif