button.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. * button - driver for keypad buttons
  3. *
  4. * Copyright (c) 2009 Openmoko Inc.
  5. *
  6. * Authors Christopher Hall <hsw@openmoko.com>
  7. *
  8. * This program is free software: you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation, either version 3 of the License, or
  11. * (at your option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful,
  14. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. * GNU General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License
  19. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  20. */
  21. #if !defined(_BUTTON_H_)
  22. #define _BUTTON_H_ 1
  23. #include <stdbool.h>
  24. typedef enum {
  25. Button_KeyRight,
  26. Button_KeyLeft,
  27. Button_KeyCentre,
  28. Button_PowerKey,
  29. } ButtonType;
  30. void Button_initialise(void);
  31. bool Button_available(void);
  32. bool Button_get(ButtonType *button, bool *pressed);
  33. void Button_KeyInterrupt(void) __attribute__((interrupt_handler));
  34. void Button_PowerInterrupt(void) __attribute__((interrupt_handler));
  35. #endif