summaryrefslogtreecommitdiffstats
path: root/firmware/target/arm/tcc780x/cowond2/button-cowond2.c
diff options
context:
space:
mode:
authorMaurus Cuelenaere <mcuelenaere@gmail.com>2009-02-19 22:15:02 +0000
committerMaurus Cuelenaere <mcuelenaere@gmail.com>2009-02-19 22:15:02 +0000
commit44eba075165f932f6b960e5fc069be22b0c9b929 (patch)
tree674afb2eda2b4ea3f62163232297a9cd898a90d5 /firmware/target/arm/tcc780x/cowond2/button-cowond2.c
parent1cb3ff0ab06cc71eb82b82e36eb22ca1d5eaa61f (diff)
downloadrockbox-44eba075165f932f6b960e5fc069be22b0c9b929.tar.gz
rockbox-44eba075165f932f6b960e5fc069be22b0c9b929.zip
Add generic touchscreen driver which allows calibration (apps/ layer will follow later).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20055 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/tcc780x/cowond2/button-cowond2.c')
-rw-r--r--firmware/target/arm/tcc780x/cowond2/button-cowond2.c37
1 files changed, 4 insertions, 33 deletions
diff --git a/firmware/target/arm/tcc780x/cowond2/button-cowond2.c b/firmware/target/arm/tcc780x/cowond2/button-cowond2.c
index 9449bcdf30..12eb88907a 100644
--- a/firmware/target/arm/tcc780x/cowond2/button-cowond2.c
+++ b/firmware/target/arm/tcc780x/cowond2/button-cowond2.c
@@ -25,31 +25,13 @@
#include "adc.h"
#include "pcf50606.h"
#include "backlight.h"
+#include "touchscreen.h"
#define TOUCH_MARGIN 8
-static enum touchscreen_mode current_mode = TOUCHSCREEN_POINT;
-
static short last_x, last_y;
static bool touch_available = false;
-static int touchscreen_buttons[3][3] =
-{
- {BUTTON_TOPLEFT, BUTTON_TOPMIDDLE, BUTTON_TOPRIGHT},
- {BUTTON_MIDLEFT, BUTTON_CENTER, BUTTON_MIDRIGHT},
- {BUTTON_BOTTOMLEFT, BUTTON_BOTTOMMIDDLE, BUTTON_BOTTOMRIGHT},
-};
-
-void touchscreen_set_mode(enum touchscreen_mode mode)
-{
- current_mode = mode;
-}
-
-enum touchscreen_mode touchscreen_get_mode(void)
-{
- return current_mode;
-}
-
void button_set_touch_available(void)
{
touch_available = true;
@@ -186,20 +168,9 @@ int button_read_device(int *data)
last_x = x;
last_y = y;
*data = touch_to_pixels(x, y);
- switch (current_mode)
- {
- case TOUCHSCREEN_POINT:
- btn |= BUTTON_TOUCHSCREEN;
- break;
- case TOUCHSCREEN_BUTTON:
- {
- int px_x = (*data&0xffff0000)>>16;
- int px_y = (*data&0x0000ffff);
- btn |= touchscreen_buttons[px_y/(LCD_HEIGHT/3)]
- [px_x/(LCD_WIDTH/3)];
- break;
- }
- }
+ btn |= touchscreen_to_pixels((*data&0xffff0000)>>16,
+ (*data&0x0000ffff),
+ data);
}
last_touch = current_tick;
touch_available = false;