Frapper  1.0a
WiiTrackerNode.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of FRAPPER
4 research.animationsinstitut.de
5 sourceforge.net/projects/frapper
6 
7 Copyright (c) 2008-2009 Filmakademie Baden-Wuerttemberg, Institute of Animation
8 
9 This program is free software; you can redistribute it and/or modify it under
10 the terms of the GNU Lesser General Public License as published by the Free Software
11 Foundation; version 2.1 of the License.
12 
13 This program is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
16 
17 You should have received a copy of the GNU Lesser General Public License along with
18 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
19 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
20 http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
21 -----------------------------------------------------------------------------
22 */
23 
33 
34 #ifndef WIITRACKERNODE_H
35 #define WIITRACKERNODE_H
36 
37 #include "Node.h"
38 #include <QtCore/QThread>
39 #include <QtCore/QList>
40 #include "wiiuse.h"
41 #include <QVector>
42 
43 namespace WiiTrackerNode {
44 using namespace Frapper;
45 
49 class WiiTrackerNode : public Node //, public QThread
50 {
51 
52  Q_OBJECT
53 
54 public: // constructors and destructors
55 
62  WiiTrackerNode ( QString name, ParameterGroup *parameterRoot );
63 
67  ~WiiTrackerNode ();
68 
69 public: // functions
70 
71  virtual void run ();
72 
73 public slots: //
74 
80  void runChanged ();
81 
85  void timerUpdate ();
86 
90  void triggerMotionSensing();
91 
92 
93 private: // functions
94 
100  bool initialize ();
101 
110  void handleEvent ( struct wiimote_t *wm, int wiimoteID );
111 
120  void handleDisconnect ( wiimote *wm );
121 
122  void onStopThread ();
123 
124 private: // data
125 
126 
130  wiimote **m_wiimotes;
131 
136 
141 
146 
150  QVector<QList<double>> m_rollList;
151 
155  QVector<QList<double>> m_pitchList;
156 
160  QVector<QList<double>> m_yawList;
161 
162 };
163 
164 } // namespace WiiTrackerNode
165 
166 #endif