00001 #include "qsedataflow.h"
00002
00003 #include "qsefilereader.h"
00004 #include "qseaveragerrole.h"
00005 #include "qseaverager.h"
00006 #include "qsedataset.h"
00007 #include "qseinputfile.h"
00008 #include "qsedatadeglitcher.h"
00009 #include "qsenormalizer.h"
00010 #include "qseedgealigner.h"
00011 #include "qsescanaverager.h"
00012
00013 QseDataFlow::QseDataFlow(QObject *parent)
00014 : QThread(parent),
00015 m_InputReader(NULL),
00016 m_InputData(NULL),
00017 m_Deglitcher(NULL),
00018 m_DeglitchedData(NULL),
00019 m_Normalizer(NULL),
00020 m_NormalizedData(NULL),
00021 m_EdgeAligner(NULL),
00022 m_AlignedData(NULL),
00023 m_ScanAverager(NULL),
00024 m_AveragedData(NULL),
00025
00026 m_TotalDataSet(NULL),
00027 m_Averager(NULL),
00028 m_AveragerRole(NULL),
00029 m_NormalizedDataSet(NULL),
00030 m_AveragedDataSet(NULL)
00031 {
00032 m_Mutex.lock();
00033
00034
00035
00036 start();
00037
00038
00039
00040 m_Wait.wait(&m_Mutex);
00041
00042
00043
00044 m_Mutex.unlock();
00045 }
00046
00047 QseDataFlow::~QseDataFlow()
00048 {
00049 delete m_InputReader;
00050 delete m_TotalDataSet;
00051 delete m_NormalizedDataSet;
00052 delete m_AveragedDataSet;
00053 delete m_AveragerRole;
00054 delete m_Averager;
00055 }
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092 void QseDataFlow::run()
00093 {
00094 m_Mutex.lock();
00095
00096 m_InputReader = new QseFileReader("input", NULL);
00097 m_InputData = m_InputReader->inputFile();
00098
00099 m_DeglitchedData = new QseDataSet("deglitched", NULL);
00100 m_NormalizedData = new QseDataSet("norm", NULL);
00101 m_AlignedData = new QseDataSet("aligned", NULL);
00102 m_AveragedData = new QseDataSet("avg", NULL);
00103
00104 m_Deglitcher = new QseDataDeglitcher(m_InputData,
00105 m_DeglitchedData,
00106 "deglitcher",
00107 NULL);
00108
00109 m_Normalizer = new QseNormalizer(m_DeglitchedData,
00110 m_NormalizedData,
00111 "normalizer",
00112 NULL);
00113
00114 m_EdgeAligner = new QseEdgeAligner(m_NormalizedData,
00115 m_AlignedData,
00116 "aligner",
00117 NULL);
00118
00119 m_ScanAverager = new QseScanAverager(m_AlignedData,
00120 m_AveragedData,
00121 "averager",
00122 NULL);
00123
00124 m_AveragerRole = new QseAveragerRole();
00125 m_Averager = new QseAverager();
00126
00127 m_TotalDataSet = new QseDataSet("total");
00128 m_NormalizedDataSet = new QseDataSet("norm");
00129 m_AveragedDataSet = new QseDataSet("avg");
00130
00131 m_Mutex.unlock();
00132
00133 m_Wait.wakeOne();
00134
00135 exec();
00136 }