SpikeStream Application Library
0.2
|
00001 #ifndef ABSTRACTEXPERIMENT_H 00002 #define ABSTRACTEXPERIMENT_H 00003 00004 //SpikeStream includes 00005 #include "ParameterInfo.h" 00006 00007 //Qt includes 00008 #include <QHash> 00009 #include <QPushButton> 00010 #include <QToolBar> 00011 #include <QWidget> 00012 00013 namespace spikestream { 00014 00015 class AbstractExperimentWidget : public QWidget { 00016 Q_OBJECT 00017 00018 public: 00019 AbstractExperimentWidget(QWidget* parent= 0); 00020 virtual ~AbstractExperimentWidget(); 00021 virtual void setWrapper(void* wrapper) = 0; 00022 00023 00024 signals: 00025 void experimentStarted(); 00026 void experimentEnded(); 00027 00028 00029 protected slots: 00030 void parametersButtonClicked(); 00031 virtual void startExperiment() = 0; 00032 virtual void stopExperiment() = 0; 00033 00034 00035 protected: 00036 //===================== VARIABLES ======================= 00038 QAction* playAction; 00039 00041 QAction* stopAction; 00042 00044 QPushButton* parametersButton; 00045 00047 QHash<QString, double> parameterMap; 00048 00050 QHash<QString, double> defaultParameterMap; 00051 00053 QList<ParameterInfo> parameterInfoList; 00054 00055 00056 //====================== METHODS ======================== 00057 virtual void buildParameters() = 0; 00058 QToolBar* getToolBar(); 00059 00060 private: 00062 bool parametersBuilt; 00063 00064 }; 00065 00066 } 00067 #endif//ABSTRACTEXPERIMENT_H 00068