-
Notifications
You must be signed in to change notification settings - Fork 0
/
abeotouchscreen.cpp
56 lines (48 loc) · 1.48 KB
/
abeotouchscreen.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "abeotouchscreen.h"
#include "error.h"
#include <linux/input.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
AbeoTouchScreen::AbeoTouchScreen()
{
_is_opened=false;
}
void AbeoTouchScreen::init(char* tsdev){
_ts=open(tsdev,O_RDONLY);
if(_ts==-1){
_err("Failed to open touch screen device",ERRCODE_TS_OPEN);
}
_is_opened=true;
}
void AbeoTouchScreen::release(){
if(_is_opened)close(_ts);
}
void AbeoTouchScreen::draw_calib_point(AbeoFBDirectDraw *afb, int x, int y){
afb->set_color(Green);
afb->line(x-10,y,x+10,y);
afb->line(x,y-10,x,y+10);
afb->set_color(Pink);
afb->line(x-5,y-2,x-5,y-5);
afb->line(x-5,y+2,x-5,y+5);
afb->line(x+5,y-2,x+5,y-5);
afb->line(x+5,y+2,x+5,y+5);
afb->line(x-5,y-5,x-2,y-5);
afb->line(x-5,y+5,x-2,y+5);
afb->line(x+5,y-5,x+2,y-5);
afb->line(x+5,y+5,x+2,y+5);
}
void AbeoTouchScreen::calib(AbeoFBDirectDraw* afb){
afb->set_color(Black);
afb->clear();
afb->set_color(White);
afb->text("--AbeoSystem Touchscreen calibration--",270,160);
afb->text(" Touch the crosshair to calib",270,176);
//point 1
draw_calib_point(afb,CORNER_OFFSET,CORNER_OFFSET);
draw_calib_point(afb,afb->width()-CORNER_OFFSET,CORNER_OFFSET);
draw_calib_point(afb,afb->width()-CORNER_OFFSET,afb->height()-CORNER_OFFSET);
draw_calib_point(afb,CORNER_OFFSET,afb->height()-CORNER_OFFSET);
draw_calib_point(afb,afb->width()/2,afb->height()/2);
}