mod_base_keyboard.hh

Go to the documentation of this file.
00001 /*
00008  * LEGAL:   COPYRIGHT (C) 2007 JIM E. BROOKS
00009  *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
00010  *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
00011  *****************************************************************************/
00012 
00013 #if COMPILING_MODULE
00014 #ifndef MOD_BASE_KEYBOARD_HH
00015 #define MOD_BASE_KEYBOARD_HH 1
00016 
00017 #include "eng_timer.hh"
00018 using namespace eng;
00019 
00020 namespace mod_base {
00021 
00033 class Keyboard
00034 {
00035 
00036 friend class TimerFunctor;
00037 private:
00038     Keyboard( void );  // Singleton
00039     ~Keyboard();
00040 
00041 public:
00043     class Functor : public Shared
00044     {
00045     public:
00046                         Functor( void ) { }
00047         virtual         ~Functor() { }
00048         virtual void    operator()( const inp::Keyboard::Event& keyEvent ) { }
00049     };
00050 
00051 private:
00053     class TimerFunctor : public Timer::Functor
00054     {
00055     public:
00056         TimerFunctor( Keyboard& keyboard ) : mKeyboard(keyboard) { }
00057         ~TimerFunctor() { }
00058         void operator()( const Milliseconds millisecElapsed );
00059     private:
00060         Keyboard&   mKeyboard;
00061     };
00062 
00063 public:
00064     CLASS_METHOD Keyboard&  GetInstance( void );
00065     void                    Register( SharedPtr<Functor> functor );
00066 
00067     // Counterparts of Joystick.
00068     Percent                 GetResponsePercent( void );
00069     void                    AdjustResponse( const Percent percent );
00070 
00071 private:
00072     void                    Enable( void );
00073     void                    Tick( void );
00074 
00075 private:
00076     CLASS_VAR Keyboard*     msInstance;         
00077     bool                    mInit;              
00078     shptr<Functor>          mFunctor;           
00079     Percent                 mResponsePercent;   
00080 };
00081 
00082 } // namespace mod_base
00083 
00084 #endif // MOD_BASE_KEYBOARD_HH
00085 #endif // COMPILING_MOD
Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:12 2007