MNE-CPP  0.1.9
A Framework for Electrophysiology
filterdesignview.h
Go to the documentation of this file.
1 //=============================================================================================================
36 #ifndef FILTERDESIGNVIEW_H
37 #define FILTERDESIGNVIEW_H
38 
39 //=============================================================================================================
40 // INCLUDES
41 //=============================================================================================================
42 
43 #include "../disp_global.h"
44 #include "abstractview.h"
45 
47 
48 //=============================================================================================================
49 // QT INCLUDES
50 //=============================================================================================================
51 
52 #include <QPointer>
53 
54 //=============================================================================================================
55 // EIGEN INCLUDES
56 //=============================================================================================================
57 
58 //=============================================================================================================
59 // FORWARD DECLARATIONS
60 //=============================================================================================================
61 
62 class QCheckBox;
63 
64 namespace Ui {
65  class FilterDesignViewWidget;
66 }
67 
68 //=============================================================================================================
69 // DEFINE NAMESPACE DISPLIB
70 //=============================================================================================================
71 
72 namespace DISPLIB
73 {
74 
75 //=============================================================================================================
76 // DISPLIB FORWARD DECLARATIONS
77 //=============================================================================================================
78 
79 class FilterPlotScene;
80 
87 {
88  Q_OBJECT
89 
90 public:
91  typedef QSharedPointer<FilterDesignView> SPtr;
92  typedef QSharedPointer<const FilterDesignView> ConstSPtr;
94  //=========================================================================================================
102  FilterDesignView(const QString& sSettingsPath,
103  QWidget *parent = 0,
104  Qt::WindowFlags f = Qt::Widget);
105 
106  //=========================================================================================================
111  ~FilterDesignView();
112 
113  //=========================================================================================================
119  void setMaxAllowedFilterTaps(int iMaxNumberFilterTaps);
120 
121  //=========================================================================================================
127  int getFilterTaps();
128 
129  //=========================================================================================================
135  void setSamplingRate(double dSamplingRate);
136 
137  //=========================================================================================================
143  void setFrom(double dFrom);
144 
145  //=========================================================================================================
151  void setTo(double dTo);
152 
153  //=========================================================================================================
159  double getFrom();
160 
161  //=========================================================================================================
167  double getTo();
168 
169  //=========================================================================================================
175  RTPROCESSINGLIB::FilterKernel getCurrentFilter();
176 
177  //=========================================================================================================
183  QString getChannelType();
184 
185  //=========================================================================================================
191  void setChannelType(const QString& sType);
192 
193  //=========================================================================================================
197  void saveSettings();
198 
199  //=========================================================================================================
203  void loadSettings();
204 
205  //=========================================================================================================
209  void clearView();
210 
211  //=========================================================================================================
215  void updateFilterPlot();
216 
217  //=========================================================================================================
221  void guiStyleChanged(DISPLIB::AbstractView::StyleMode style);
222 
223 protected:
224  //=========================================================================================================
230  void updateGuiMode(GuiMode mode);
231 
232  //=========================================================================================================
238  void updateProcessingMode(ProcessingMode mode);
239 
240  //=========================================================================================================
244  void initSpinBoxes();
245 
246  //=========================================================================================================
250  void initButtons();
251 
252  //=========================================================================================================
256  void initComboBoxes();
257 
258  //=========================================================================================================
262  void initFilterPlot();
263 
264  //=========================================================================================================
268  void resizeEvent(QResizeEvent * event);
269 
270  //=========================================================================================================
274  virtual void keyPressEvent(QKeyEvent * event);
275 
276  //=========================================================================================================
282  void changeStateSpinBoxes(int currentIndex);
283 
284  //=========================================================================================================
288  void filterParametersChanged();
289 
290  //=========================================================================================================
296  void onSpinBoxFilterChannelType(const QString &channelType);
297 
298  //=========================================================================================================
302  void onBtnExportFilterPlot();
303 
304  //=========================================================================================================
308  void onBtnExportFilterCoefficients();
309 
310  //=========================================================================================================
314  void onBtnLoadFilter();
315 
316  //=========================================================================================================
322  void updateGuiFromFilter(const RTPROCESSINGLIB::FilterKernel& filter);
323 
324  Ui::FilterDesignViewWidget* m_pUi;
326  QPointer<FilterPlotScene> m_pFilterPlotScene;
330  QString m_sSettingsPath;
333  double m_dSFreq;
335 signals:
336  //=========================================================================================================
342  void filterChanged(const RTPROCESSINGLIB::FilterKernel& activeFilter);
343 
344  //=========================================================================================================
350  void filterChannelTypeChanged(const QString& channelType);
351 
352  //=========================================================================================================
358  void updateFilterFrom(double dFrom);
359 
360  //=========================================================================================================
366  void updateFilterTo(double dTo);
367 };
368 } // NAMESPACE DISPLIB
369 
370 #endif // FILTERDESIGNVIEW_H
DISPSHARED_EXPORT
#define DISPSHARED_EXPORT
Definition: disp_global.h:55
DISPLIB::AbstractView
The AbstractView class provides the base calss for all Disp viewers.
Definition: abstractview.h:75
DISPLIB::FilterDesignView::SPtr
QSharedPointer< FilterDesignView > SPtr
Definition: filterdesignview.h:91
RTPROCESSINGLIB::FilterKernel
The FilterKernel class provides methods to create/design a FIR filter kernel.
Definition: filterkernel.h:132
DISPLIB::FilterDesignView::m_pUi
Ui::FilterDesignViewWidget * m_pUi
Definition: filterdesignview.h:324
DISPLIB::FilterDesignView::m_iFilterTaps
int m_iFilterTaps
Definition: filterdesignview.h:332
DISPLIB::FilterDesignView::m_filterKernel
RTPROCESSINGLIB::FilterKernel m_filterKernel
Definition: filterdesignview.h:328
DISPLIB::FilterDesignView::ConstSPtr
QSharedPointer< const FilterDesignView > ConstSPtr
Definition: filterdesignview.h:92
DISPLIB::FilterDesignView::m_sSettingsPath
QString m_sSettingsPath
Definition: filterdesignview.h:330
abstractview.h
Declaration of the AbstractView Class.
DISPLIB::FilterDesignView::m_dSFreq
double m_dSFreq
Definition: filterdesignview.h:333
DISPLIB::FilterDesignView::m_pFilterPlotScene
QPointer< FilterPlotScene > m_pFilterPlotScene
Definition: filterdesignview.h:326
DISPLIB::FilterDesignView
The FilterDesignView class provides the a manager for temporal filtering.
Definition: filterdesignview.h:86
filterkernel.h
The FilterKernel class represents a filter object that generates the FIR filter coefficients using Pa...