Initial dump from Sourceforge website
This commit is contained in:
76
dev/adc_diff
Normal file
76
dev/adc_diff
Normal file
@ -0,0 +1,76 @@
|
||||
Index: adc7843.c
|
||||
===================================================================
|
||||
RCS file: /cvsroot/pgui/pgserver/input/adc7843.c,v
|
||||
retrieving revision 1.6
|
||||
diff -u -r1.6 adc7843.c
|
||||
--- adc7843.c 3 Jul 2002 22:03:29 -0000 1.6
|
||||
+++ adc7843.c 6 Nov 2002 00:25:45 -0000
|
||||
@@ -60,16 +60,16 @@
|
||||
|
||||
int adc7843_fd;
|
||||
|
||||
-struct tpanel_sample {
|
||||
- u16 state;
|
||||
- u16 x;
|
||||
- u16 y;
|
||||
-};
|
||||
-
|
||||
/******************************************** Implementations */
|
||||
|
||||
g_error adc7843_init(void) {
|
||||
adc7843_fd = open("/dev/tpanel",O_NONBLOCK);
|
||||
+
|
||||
+ /* devfs name */
|
||||
+
|
||||
+ if (adc7843_fd <= 0)
|
||||
+ adc7843_fd = open("/dev/misc/adc7843", O_NONBLOCK);
|
||||
+
|
||||
if (adc7843_fd <= 0)
|
||||
return mkerror(PG_ERRT_IO, 74);
|
||||
|
||||
@@ -87,9 +87,10 @@
|
||||
}
|
||||
|
||||
int adc7843_fd_activate(int fd) {
|
||||
- struct tpanel_sample ts;
|
||||
+ int state;
|
||||
char buffer[6];
|
||||
- int trigger, x, y;
|
||||
+ int trigger;
|
||||
+ static int x=0, y=0;
|
||||
|
||||
if (!cal) {
|
||||
if (!vid)
|
||||
@@ -107,17 +108,22 @@
|
||||
return 1;
|
||||
|
||||
/* Convert the bytes to unsigned integers... */
|
||||
- ts.state = ( ( (buffer[0]) << 8 ) + buffer[1] );
|
||||
- ts.x = ( ( (buffer[2]) << 8 ) + buffer[3] );
|
||||
- ts.y = ( ( (buffer[4]) << 8 ) + buffer[5] );
|
||||
- x = ts.x;
|
||||
- y = ts.y;
|
||||
-
|
||||
- /* Converte to screen coordinates... */
|
||||
- x = ( ( ts.x - cal->min_x ) * cal->x_res / ( cal->max_x - cal->min_x ) );
|
||||
- y = ( ( ts.y - cal->min_y ) * cal->y_res / ( cal->max_y - cal->min_y ) );
|
||||
+ state = ( ( (buffer[0]) << 8 ) + buffer[1] );
|
||||
+
|
||||
+ /* save x,y in static variables. when pen up, send the last known
|
||||
+ coordinates */
|
||||
+
|
||||
+ if (state) {
|
||||
+ x = ( ( (buffer[2]) << 8 ) + buffer[3] );
|
||||
+ y = ( ( (buffer[4]) << 8 ) + buffer[5] );
|
||||
+
|
||||
+ /* Convert to screen coordinates... */
|
||||
+ x = ( ( x - cal->min_x ) * cal->x_res / ( cal->max_x - cal->min_x ) );
|
||||
+ y = ( ( y - cal->min_y ) * cal->y_res / ( cal->max_y - cal->min_y ) );
|
||||
+ }
|
||||
|
||||
- infilter_send_pointing(PG_TRIGGER_PNTR_STATUS,x,y,ts.state,NULL);
|
||||
+ infilter_send_pointing(PG_TRIGGER_PNTR_STATUS,x,y,state,NULL);
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
Reference in New Issue
Block a user