#define BUTTONS_H
/* includes */
-#include "betty.h"
+#include "lpc2xxx.h"
+#include "types.h"
+
+/* defines */
+#define BUTTON_MAX 8
+#define BUTTON_INT (1<<0)
+#define BUTTON_POLL (1<<1)
+
+/* typedefs */
+typedef struct s_button {
+ unsigned char mode; // mode of the button api
+ int retries; // amount of retries per event capture
+ unsigned char cnt; // amount of recognized key presses
+ unsigned char key[BUTTON_MAX]; // pressed keys
+} t_button;
/* function prototypes */
-void button_init(void);
-unsigned char button_get_event(unsigned long long int *keys,int retries);
+void button_init(t_button *button);
+void button_set_retries(t_button *button,int retries);
+unsigned char button_get_event(t_button *button);
+
+/* button definitions */
+#define BUTTON_A 0x04
+#define BUTTON_B 0x03
+#define BUTTON_C 0x02
+#define BUTTON_D 0x08
+#define BUTTON_BETTY 0x0a
+#define BUTTON_EXIT 0x14
+#define BUTTON_UP 0x09
+#define BUTTON_DOWN 0x1b
+#define BUTTON_RIGHT 0x0e
+#define BUTTON_LEFT 0x0f
+#define BUTTON_OK 0x15
+#define BUTTON_VOL_UP 0x10
+#define BUTTON_VOL_DOWN 0x16
+#define BUTTON_PRG_UP 0x1a
+#define BUTTON_PRG_DOWN 0x20
+#define BUTTON_MUTE 0x21
+#define BUTTON_1 0x05
+#define BUTTON_2 0x27
+#define BUTTON_3 0x26
+#define BUTTON_4 0x0b
+#define BUTTON_5 0x00
+#define BUTTON_6 0x01
+#define BUTTON_7 0x11
+#define BUTTON_8 0x06
+#define BUTTON_9 0x07
+#define BUTTON_SHIFT 0x17
+#define BUTTON_0 0x0c
+#define BUTTON_AV 0x0d
+#define BUTTON_MENU 0x1c
+#define BUTTON_PIP 0x1d
+#define BUTTON_A_B 0x12
+#define BUTTON_16_9 0x13
+#define BUTTON_INFO 0x22
+#define BUTTON_TV1 0x23
+#define BUTTON_TV2 0x18
+#define BUTTON_TV3 0x19
+#define BUTTON_RED 0x28
+#define BUTTON_GREEN 0x29
+#define BUTTON_YELLOW 0x1e
+#define BUTTON_BLUE 0x1f
+#define BUTTON_TV 0x24
+#define BUTTON_POWER 0x25
#endif