forked from len0rd/rockbox
Commit FS#9308: differentiate between TOUCHPAD & TOUCHSCREEN
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18338 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
965d2af61f
commit
1392dc2144
81 changed files with 233 additions and 231 deletions
|
|
@ -28,24 +28,24 @@
|
|||
|
||||
#define TOUCH_MARGIN 8
|
||||
|
||||
static enum touchpad_mode current_mode = TOUCHPAD_POINT;
|
||||
static enum touchscreen_mode current_mode = TOUCHSCREEN_POINT;
|
||||
|
||||
static short last_x, last_y;
|
||||
static bool touch_available = false;
|
||||
|
||||
static int touchpad_buttons[3][3] =
|
||||
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 touchpad_set_mode(enum touchpad_mode mode)
|
||||
void touchscreen_set_mode(enum touchscreen_mode mode)
|
||||
{
|
||||
current_mode = mode;
|
||||
}
|
||||
|
||||
enum touchpad_mode touchpad_get_mode(void)
|
||||
enum touchscreen_mode touchscreen_get_mode(void)
|
||||
{
|
||||
return current_mode;
|
||||
}
|
||||
|
|
@ -58,7 +58,7 @@ void button_set_touch_available(void)
|
|||
struct touch_calibration_point {
|
||||
short px_x; /* known pixel value */
|
||||
short px_y;
|
||||
short val_x; /* touchpad value at the known pixel */
|
||||
short val_x; /* touchscreen value at the known pixel */
|
||||
short val_y;
|
||||
};
|
||||
|
||||
|
|
@ -188,15 +188,15 @@ int button_read_device(int *data)
|
|||
*data = touch_to_pixels(x, y);
|
||||
switch (current_mode)
|
||||
{
|
||||
case TOUCHPAD_POINT:
|
||||
btn |= BUTTON_TOUCHPAD;
|
||||
case TOUCHSCREEN_POINT:
|
||||
btn |= BUTTON_TOUCHSCREEN;
|
||||
break;
|
||||
case TOUCHPAD_BUTTON:
|
||||
case TOUCHSCREEN_BUTTON:
|
||||
{
|
||||
int px_x = (*data&0xffff0000)>>16;
|
||||
int px_y = (*data&0x0000ffff);
|
||||
btn |= touchpad_buttons[px_y/(LCD_HEIGHT/3)]
|
||||
[px_x/(LCD_WIDTH/3)];
|
||||
btn |= touchscreen_buttons[px_y/(LCD_HEIGHT/3)]
|
||||
[px_x/(LCD_WIDTH/3)];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -208,7 +208,7 @@ int button_read_device(int *data)
|
|||
if (!(GPIOA & 0x4))
|
||||
btn |= BUTTON_POWER;
|
||||
|
||||
if(btn & BUTTON_TOUCHPAD && !is_backlight_on(true))
|
||||
if(btn & BUTTON_TOUCHSCREEN && !is_backlight_on(true))
|
||||
*data = 0;
|
||||
|
||||
return btn;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ void button_set_touch_available(void);
|
|||
#define BUTTON_UP BUTTON_TOPMIDDLE
|
||||
#define BUTTON_DOWN BUTTON_BOTTOMMIDDLE
|
||||
|
||||
/* Touchpad Screen Area Buttons */
|
||||
/* Touch Screen Area Buttons */
|
||||
#define BUTTON_TOPLEFT 0x00000010
|
||||
#define BUTTON_TOPMIDDLE 0x00000020
|
||||
#define BUTTON_TOPRIGHT 0x00000040
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue