Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

vrjGA::JoystickDevice Class Reference

#include <JoystickDevice.h>

Inheritance diagram for vrjGA::JoystickDevice:

vrjGA::Referenced List of all members.

Public Types

typedef Referenced BaseClass
typedef gadget::AnalogInterface AI

Public Member Functions

 VRJGA_DECLARE_POINTER (JoystickDevice)
 Smart-pointer definitions.

 JoystickDevice (const std::string &h, const std::string &v)
void callback (Message m, Callback::Ptr c)
Callbackcallback (Message m)
float horizontal () const
float vertical () const
void notify ()
void update ()

Protected Member Functions

virtual ~JoystickDevice ()

Member Typedef Documentation

typedef gadget::AnalogInterface vrjGA::JoystickDevice::AI
 

Definition at line 38 of file JoystickDevice.h.

typedef Referenced vrjGA::JoystickDevice::BaseClass
 

Definition at line 37 of file JoystickDevice.h.

Referenced by JoystickDevice().


Constructor & Destructor Documentation

JoystickDevice::JoystickDevice const std::string &  h,
const std::string &  v
 

Definition at line 28 of file JoystickDevice.cpp.

References BaseClass, vrjGA::JOYSTICK_AT_CENTER, vrjGA::JOYSTICK_AT_DOWN, vrjGA::JOYSTICK_AT_LEFT, vrjGA::JOYSTICK_AT_RIGHT, vrjGA::JOYSTICK_AT_UP, vrjGA::JOYSTICK_ENTERING_CENTER, vrjGA::JOYSTICK_ENTERING_DOWN, vrjGA::JOYSTICK_ENTERING_LEFT, vrjGA::JOYSTICK_ENTERING_RIGHT, vrjGA::JOYSTICK_ENTERING_UP, vrjGA::JOYSTICK_LEAVING_CENTER, vrjGA::JOYSTICK_LEAVING_DOWN, vrjGA::JOYSTICK_LEAVING_LEFT, vrjGA::JOYSTICK_LEAVING_RIGHT, and vrjGA::JOYSTICK_LEAVING_UP.

00028                                                                         : 
00029   BaseClass(),
00030   _cbm(),
00031   _tm(),
00032   _hai(),
00033   _vai(),
00034   _h ( 0 ),
00035   _v ( 0 ),
00036   _hs ( JOYSTICK_AT_CENTER ),
00037   _vs ( JOYSTICK_AT_CENTER )
00038 {
00039   // Initialize.
00040   _hai.init ( h );
00041   _vai.init ( v );
00042 
00043   // Fill up the transition map.
00044   _tm[MessagePair(JOYSTICK_AT_CENTER,JOYSTICK_AT_RIGHT) ] = MessagePair(JOYSTICK_LEAVING_CENTER,JOYSTICK_ENTERING_RIGHT );
00045   _tm[MessagePair(JOYSTICK_AT_CENTER,JOYSTICK_AT_LEFT)  ] = MessagePair(JOYSTICK_LEAVING_CENTER,JOYSTICK_ENTERING_LEFT  );
00046   _tm[MessagePair(JOYSTICK_AT_CENTER,JOYSTICK_AT_UP)    ] = MessagePair(JOYSTICK_LEAVING_CENTER,JOYSTICK_ENTERING_UP    );
00047   _tm[MessagePair(JOYSTICK_AT_CENTER,JOYSTICK_AT_DOWN)  ] = MessagePair(JOYSTICK_LEAVING_CENTER,JOYSTICK_ENTERING_DOWN  );
00048 
00049   // The other way...
00050   _tm[MessagePair(JOYSTICK_AT_RIGHT, JOYSTICK_AT_CENTER)] = MessagePair(JOYSTICK_LEAVING_RIGHT, JOYSTICK_ENTERING_CENTER);
00051   _tm[MessagePair(JOYSTICK_AT_LEFT,  JOYSTICK_AT_CENTER)] = MessagePair(JOYSTICK_LEAVING_LEFT,  JOYSTICK_ENTERING_CENTER);
00052   _tm[MessagePair(JOYSTICK_AT_UP,    JOYSTICK_AT_CENTER)] = MessagePair(JOYSTICK_LEAVING_UP,    JOYSTICK_ENTERING_CENTER);
00053   _tm[MessagePair(JOYSTICK_AT_DOWN,  JOYSTICK_AT_CENTER)] = MessagePair(JOYSTICK_LEAVING_DOWN,  JOYSTICK_ENTERING_CENTER);
00054 
00055   // Skipping center (if update-rate is slow)...
00056   _tm[MessagePair(JOYSTICK_AT_LEFT,  JOYSTICK_AT_RIGHT) ] = MessagePair(JOYSTICK_LEAVING_LEFT,  JOYSTICK_ENTERING_RIGHT );
00057   _tm[MessagePair(JOYSTICK_AT_RIGHT, JOYSTICK_AT_LEFT)  ] = MessagePair(JOYSTICK_LEAVING_RIGHT, JOYSTICK_ENTERING_LEFT  );
00058   _tm[MessagePair(JOYSTICK_AT_UP,    JOYSTICK_AT_DOWN)  ] = MessagePair(JOYSTICK_LEAVING_UP,    JOYSTICK_ENTERING_DOWN  );
00059   _tm[MessagePair(JOYSTICK_AT_DOWN,  JOYSTICK_AT_UP)    ] = MessagePair(JOYSTICK_LEAVING_DOWN,  JOYSTICK_ENTERING_UP    );
00060 }

JoystickDevice::~JoystickDevice  )  [protected, virtual]
 

Definition at line 69 of file JoystickDevice.cpp.

00070 {
00071 }


Member Function Documentation

Callback * JoystickDevice::callback Message  m  ) 
 

Definition at line 168 of file JoystickDevice.cpp.

00169 {
00170   Callbacks::iterator i = _cbm.find ( m );
00171   return ( _cbm.end() == i ) ? 0x0 : i->second.get();
00172 }

void JoystickDevice::callback Message  m,
Callback::Ptr  c
 

Definition at line 156 of file JoystickDevice.cpp.

00157 {
00158   _cbm[m] = c;
00159 }

float vrjGA::JoystickDevice::horizontal  )  const [inline]
 

Definition at line 51 of file JoystickDevice.h.

00051 { return _h; }

void JoystickDevice::notify  ) 
 

Definition at line 93 of file JoystickDevice.cpp.

References vrjGA::Message.

00094 {
00095   // Grab current state.
00096   Message hs ( _hs ), vs ( _vs );
00097 
00098   // Update the state.
00099   this->_updateState();
00100 
00101   // Notify for both directions.
00102   this->_notify ( hs, _hs );
00103   this->_notify ( vs, _vs );
00104 }

void JoystickDevice::update  ) 
 

Definition at line 80 of file JoystickDevice.cpp.

00081 {
00082   _h = _hai->getData();
00083   _v = _vai->getData();
00084 }

float vrjGA::JoystickDevice::vertical  )  const [inline]
 

Definition at line 52 of file JoystickDevice.h.

00052 { return _v; }

vrjGA::JoystickDevice::VRJGA_DECLARE_POINTER JoystickDevice   ) 
 

Smart-pointer definitions.


The documentation for this class was generated from the following files:
Generated on Thu Aug 12 16:42:14 2004 for vrjGA by doxygen 1.3.5