vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Wiimote.h
Go to the documentation of this file.
1 #ifndef WIIMOTE_H
2 #define WIIMOTE_H
3 
4 #include <stdio.h>
5 #include <stdlib.h>
6 
7 #ifndef WIN32
8  #include <unistd.h>
9 #endif
10 
11 #include <wiiuse.h>
12 
13 
14 #define MAX_WIIMOTES 4
15 
16 #include <vrecko/IOPins.h>
17 #include <vrecko/Device.h>
18 #include <vrecko/EventDispatcher.h>
19 
20 #include <osg/Vec3>
21 #include <osg/Quat>
22 
23 namespace vreckoDP_base {
24 
25 class DP_EXPORT Wiimote : public vrecko::Device {
26  public:
27  Wiimote();
28  ~Wiimote();
29 
30  virtual int openDevice(void);
31  int closeDevice(void);
32 
33  void update(void);
34 
35  virtual bool initialize(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *pParametersNode = NULL);
36  XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *saveXMLParameters(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *);
37 
38  //void sendEvent(int currentWiimoteID, char sid, osg::Vec3 *p, osg::Quat *o);
39 
40  // ---
41  void handle_event(int currentWiimoteID, struct wiimote_t* wm);
42  void handle_read(struct wiimote_t* wm, byte* data, unsigned short len);
43  void handle_ctrl_status(struct wiimote_t* wm);
44  void handle_disconnect(wiimote* wm);
45  void test(struct wiimote_t* wm, byte* data, unsigned short len);
46 
47  protected:
48  static bool is_initialized;
50  unsigned int wiimoteID;
51  static bool disabled;
52  static bool check_failed;
53  static wiimote** pWiimote;
54  bool vibration;
55 
56  //vrecko::EventDispatcher *pEventDispatcher;
57 
58  DECLARE_INPUT(Vibration, vrecko::MessageBool);
60  DECLARE_OUTPUT(Orientation, vrecko::MessageVec3);
61 };
62 
63 }
64 
65 #endif