#ifndef GXDEVICE_H #define GXDEVICE_H class gxDevice{ public: float axis_states[32]; gxDevice(); virtual ~gxDevice(); virtual void update(){} void reset(); void downEvent( int key ); void upEvent( int key ); void setDownState( int key,bool down ); private: enum{ QUE_SIZE=32,QUE_MASK=QUE_SIZE-1 }; int hit_count[256]; //how many hits of key bool down_state[256]; //time key went down int que[QUE_SIZE],put,get; /***** GX INTERFACE *****/ public: void flush(); bool keyDown( int key ); int keyHit( int key ); int getKey(); float getAxisState( int axis ); }; #endif