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 
277  //=========================================================================================================
283  void changeStateSpinBoxes(int currentIndex);
284 
285  //=========================================================================================================
289  void filterParametersChanged();
290 
291  //=========================================================================================================
297  void onSpinBoxFilterChannelType(const QString &channelType);
298 
299  //=========================================================================================================
303  void onBtnExportFilterPlot();
304 
305  //=========================================================================================================
309  void onBtnExportFilterCoefficients();
310 
311  //=========================================================================================================
315  void onBtnLoadFilter();
316 
317  //=========================================================================================================
323  void updateGuiFromFilter(const RTPROCESSINGLIB::FilterKernel& filter);
324 
325  Ui::FilterDesignViewWidget* m_pUi;
327  QPointer<FilterPlotScene> m_pFilterPlotScene;
331  QString m_sSettingsPath;
334  double m_dSFreq;
336 signals:
337  //=========================================================================================================
343  void filterChanged(const RTPROCESSINGLIB::FilterKernel& activeFilter);
344 
345  //=========================================================================================================
351  void filterChannelTypeChanged(const QString& channelType);
352 
353  //=========================================================================================================
359  void updateFilterFrom(double dFrom);
360 
361  //=========================================================================================================
367  void updateFilterTo(double dTo);
368 };
369 } // NAMESPACE DISPLIB
370 
371 #endif // FILTERDESIGNVIEW_H
The FilterKernel class represents a filter object that generates the FIR filter coefficients using Pa...
The FilterKernel class provides methods to create/design a FIR filter kernel.
Definition: filterkernel.h:132
QPointer< FilterPlotScene > m_pFilterPlotScene
Definition: applytoview.h:58
Ui::FilterDesignViewWidget * m_pUi
QSharedPointer< const FilterDesignView > ConstSPtr
The FilterDesignView class provides the a manager for temporal filtering.
QSharedPointer< FilterDesignView > SPtr
RTPROCESSINGLIB::FilterKernel m_filterKernel
#define DISPSHARED_EXPORT
Definition: disp_global.h:55
The AbstractView class provides the base calss for all Disp viewers.
Definition: abstractview.h:75