MNE-CPP  0.1.9
A Framework for Electrophysiology
rtclient.h
Go to the documentation of this file.
1 //=============================================================================================================
37 #ifndef RTCLIENT_H
38 #define RTCLIENT_H
39 
40 //=============================================================================================================
41 // INCLUDES
42 //=============================================================================================================
43 
44 #include "../communication_global.h"
45 
46 #include <fiff/fiff_info.h>
47 
48 //=============================================================================================================
49 // QT INCLUDES
50 //=============================================================================================================
51 
52 #include <QMutex>
53 #include <QSharedPointer>
54 #include <QString>
55 #include <QThread>
56 
57 //=============================================================================================================
58 // EIGEN INCLUDES
59 //=============================================================================================================
60 
61 #include <Eigen/Core>
62 
63 //=============================================================================================================
64 // DEFINE NAMESPACE COMMUNICATIONLIB
65 //=============================================================================================================
66 
67 namespace COMMUNICATIONLIB
68 {
69 
70 //=============================================================================================================
71 // FORWARD DECLARATIONS
72 //=============================================================================================================
73 
74 //=============================================================================================================
80 class COMMUNICATIONSHARED_EXPORT RtClient : public QThread
81 {
82  Q_OBJECT
83 
84 public:
85  typedef QSharedPointer<RtClient> SPtr;
86  typedef QSharedPointer<const RtClient> ConstSPtr;
88  //=========================================================================================================
96  explicit RtClient(QString p_sRtServerHostname, QString p_sClientAlias = "rtclient", QObject *parent = 0);
97 
98  //=========================================================================================================
102  ~RtClient();
103 
104  //=========================================================================================================
108  inline FIFFLIB::FiffInfo::SPtr& getFiffInfo();
109 
110  //=========================================================================================================
116  bool getConnectionStatus();
117 
118  //=========================================================================================================
124  virtual bool stop();
125 
126 protected:
127  //=========================================================================================================
133  virtual void run();
134 
135 private:
136  QMutex mutex;
137  bool m_bIsConnected;
138  bool m_bIsMeasuring;
139  bool m_bIsRunning;
140  QString m_sClientAlias;
141  QString m_sRtServerHostName;
142  FIFFLIB::FiffInfo::SPtr m_pFiffInfo;
143  quint16 m_iDefaultPort;
144 signals:
145  //=========================================================================================================
151  void rawBufferReceived(Eigen::MatrixXf p_rawBuffer);
152 
153  //=========================================================================================================
159  void connectionChanged(bool p_bStatus);
160 };
161 
162 //=============================================================================================================
163 // INLINE DEFINITIONS
164 //=============================================================================================================
165 
167 {
168  return m_pFiffInfo;
169 }
170 } // NAMESPACE
171 
172 #ifndef metatype_matrixxf
173 #define metatype_matrixxf
174 Q_DECLARE_METATYPE(Eigen::MatrixXf);
175 #endif
176 
177 #endif // RTCLIENT_H
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(Eigen::MatrixXf)
FIFFLIB::FiffInfo::SPtr
QSharedPointer< FiffInfo > SPtr
Definition: fiff_info.h:87
COMMUNICATIONLIB::RtClient::getFiffInfo
FIFFLIB::FiffInfo::SPtr & getFiffInfo()
Definition: rtclient.h:166
COMMUNICATIONLIB::RtClient::ConstSPtr
QSharedPointer< const RtClient > ConstSPtr
Definition: rtclient.h:86
COMMUNICATIONLIB::RtClient::SPtr
QSharedPointer< RtClient > SPtr
Definition: rtclient.h:85
COMMUNICATIONLIB::RtClient
Real-time client.
Definition: rtclient.h:80
fiff_info.h
FiffInfo class declaration.
COMMUNICATIONSHARED_EXPORT
#define COMMUNICATIONSHARED_EXPORT
Definition: communication_global.h:56