00001 #ifndef _buttons_trackd_H_ 00002 #define _buttons_trackd_H_ 00003 00004 #include "dev/buttons.H" 00005 #include "dev/polled.H" 00006 #include "trackdAPI.h" 00007 00008 // 00009 // A TRACKD set of buttons 00010 // 00011 class DEVbuttons_TRACKD : public DEVice, public DEVpolled { 00012 protected: 00013 class btn_desc { 00014 public: 00015 btn_desc() { } 00016 btn_desc(DEVice_btn *btn, int id) : _button(btn),_id(id), _state(false) { } 00017 bool operator ==(const btn_desc b) const { return b._button == _button && 00018 b._id == _id; } 00019 DEVice_btn *_button; 00020 int _id; 00021 bool _state; 00022 }; 00023 00024 ControllerReader *_trackd_dev; 00025 ARRAY<btn_desc> _buttons; 00026 int _offset; 00027 00028 /* ------------- DEVpolled methods --------------- */ 00029 void do_poll(); 00030 00031 public: 00032 DEVbuttons_TRACKD(Cstr_ptr &name); 00033 virtual ~DEVbuttons_TRACKD(); 00034 }; 00035 00036 #endif