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