diff options
Diffstat (limited to 'meta-oe/recipes-graphics')
5 files changed, 712 insertions, 0 deletions
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh new file mode 100644 index 000000000..fa43617bd --- /dev/null +++ b/meta-oe/recipes-graphics/xtscal/xtscal/30xTs_Calibrate.sh | |||
@@ -0,0 +1,13 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | . /etc/formfactor/config | ||
4 | |||
5 | if [ "$HAVE_TOUCHSCREEN" = "1" ]; then | ||
6 | n=1 | ||
7 | while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ] && [ $n -le 5 ] | ||
8 | do | ||
9 | /usr/bin/xtscal | ||
10 | sleep 1 | ||
11 | n=$(($n+1)) | ||
12 | done | ||
13 | fi | ||
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch new file mode 100644 index 000000000..1da771786 --- /dev/null +++ b/meta-oe/recipes-graphics/xtscal/xtscal/change-cross.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | Upstream-Status: Pending | ||
2 | |||
3 | --- tmp/main.c.orig 2007-01-02 15:39:54.000000000 +0000 | ||
4 | +++ tmp/main.c 2007-01-02 15:39:54.000000000 +0000 | ||
5 | @@ -131,9 +131,10 @@ | ||
6 | { | ||
7 | XRenderFillRectangles (dpy, PictOpSrc, pict, &rect_color, rectangles, 2); | ||
8 | |||
9 | - XFillArc (dpy, crosshair_w, crosshair_gc, (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, | ||
10 | - (CROSSHAIR_SIZE / 2) - (WIDTH / 2) - 1, | ||
11 | - WIDTH + 1, WIDTH + 1, 0, 360 * 64); | ||
12 | + XFillRectangle (dpy, crosshair_w, crosshair_gc, | ||
13 | + (CROSSHAIR_SIZE / 2) - (WIDTH / 2), | ||
14 | + (CROSSHAIR_SIZE / 2) - (WIDTH / 2), | ||
15 | + WIDTH, WIDTH); | ||
16 | } | ||
17 | |||
18 | void | ||
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch new file mode 100644 index 000000000..f7b0854c3 --- /dev/null +++ b/meta-oe/recipes-graphics/xtscal/xtscal/cleanup.patch | |||
@@ -0,0 +1,621 @@ | |||
1 | --- | ||
2 | Makefile.am | 9 -- | ||
3 | configure.ac | 3 | ||
4 | gpe-dist.am | 12 --- | ||
5 | h3600_ts.h | 216 ----------------------------------------------------------- | ||
6 | main.c | 210 ++------------------------------------------------------- | ||
7 | xtscal.in | 19 ----- | ||
8 | 6 files changed, 14 insertions(+), 455 deletions(-) | ||
9 | |||
10 | Upstream-Status: Pending | ||
11 | |||
12 | Index: xtscal-0.6.3/xtscal.in | ||
13 | =================================================================== | ||
14 | --- xtscal-0.6.3.orig/xtscal.in 2004-09-10 20:10:36.000000000 +0100 | ||
15 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
16 | @@ -1,19 +0,0 @@ | ||
17 | -#!/bin/sh | ||
18 | - | ||
19 | -module_id() { | ||
20 | - # Get model name | ||
21 | - echo `grep "^Hardware" /proc/cpuinfo | sed -e "s/.*: *//" | tr a-z A-Z` | ||
22 | -} | ||
23 | - | ||
24 | -case `module_id` in | ||
25 | - "HP IPAQ H3100" | "HP IPAQ H3800" ) | ||
26 | - ARGS="-rotate 90" ;; | ||
27 | - "HP IPAQ H3600" | "HP IPAQ H3700" | "HP IPAQ H3900" | *COLLIE | *POODLE) | ||
28 | - ARGS="-rotate 270" ;; | ||
29 | - # H2200: works without rotation | ||
30 | -esac | ||
31 | - | ||
32 | -# the things we do for autoconf | ||
33 | -prefix=@prefix@ | ||
34 | -exec_prefix=@exec_prefix@ | ||
35 | -exec @libexecdir@/xtscal.bin $ARGS $* | ||
36 | Index: xtscal-0.6.3/main.c | ||
37 | =================================================================== | ||
38 | --- xtscal-0.6.3.orig/main.c 2007-07-01 01:12:52.000000000 +0100 | ||
39 | +++ xtscal-0.6.3/main.c 2007-07-01 01:12:55.000000000 +0100 | ||
40 | @@ -22,12 +22,10 @@ | ||
41 | #include <X11/Xlib.h> | ||
42 | |||
43 | #include <X11/extensions/Xrender.h> | ||
44 | -#include <X11/extensions/Xrandr.h> | ||
45 | #include <X11/Xft/Xft.h> | ||
46 | #include <X11/extensions/xcalibrate.h> | ||
47 | #include <X11/keysym.h> | ||
48 | |||
49 | -#include "h3600_ts.h" | ||
50 | #include "calibrate.h" | ||
51 | |||
52 | Display *dpy; | ||
53 | @@ -45,15 +43,11 @@ XftColor xftcol; | ||
54 | XftDraw *xftdraw; | ||
55 | XftFont *xftfont; | ||
56 | int screen_x, screen_y; | ||
57 | -int ts_fd; | ||
58 | int samples; | ||
59 | Pixmap bg_pixmap; | ||
60 | int flag_debug; | ||
61 | -int rotation = 0; | ||
62 | int error_base, event_base; | ||
63 | |||
64 | -int using_xcalibrate; | ||
65 | - | ||
66 | int moving; | ||
67 | |||
68 | #define CROSSHAIR_SIZE 25 | ||
69 | @@ -63,7 +57,6 @@ int moving; | ||
70 | #define ENOUGH 5 | ||
71 | #define MAX_SAMPLES 40 | ||
72 | |||
73 | -#define RAW_DEVICE "/dev/h3600_tsraw" | ||
74 | #define FONTNAME "sans-10" | ||
75 | |||
76 | struct point | ||
77 | @@ -287,12 +280,8 @@ sort_by_y (const void* a, const void *b) | ||
78 | void | ||
79 | set_calibration (calibration *cal) | ||
80 | { | ||
81 | - TS_CAL tc; | ||
82 | - int xtrans, ytrans, xscale, yscale, xyscale, yxscale; | ||
83 | calibration ocal = *cal; | ||
84 | |||
85 | - if (using_xcalibrate) | ||
86 | - { | ||
87 | FILE *fp; | ||
88 | if (flag_debug) | ||
89 | printf ("constants are: %d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); | ||
90 | @@ -304,29 +293,6 @@ set_calibration (calibration *cal) | ||
91 | } | ||
92 | fprintf (fp, "%d %d %d %d %d %d %d\n", cal->a[1], cal->a[2], cal->a[0], cal->a[4], cal->a[5], cal->a[3], cal->a[6]); | ||
93 | fclose (fp); | ||
94 | - return; | ||
95 | - } | ||
96 | - | ||
97 | - xtrans = cal->a[0] / cal->a[6]; | ||
98 | - ytrans = cal->a[3] / cal->a[6]; | ||
99 | - xscale = cal->a[1] * 256 / cal->a[6]; | ||
100 | - yscale = cal->a[5] * 256 / cal->a[6]; | ||
101 | - xyscale = cal->a[2] * 256 / cal->a[6]; | ||
102 | - yxscale = cal->a[4] * 256 / cal->a[6]; | ||
103 | - | ||
104 | - tc.xtrans = xtrans; | ||
105 | - tc.ytrans = ytrans; | ||
106 | - tc.xscale = xscale; | ||
107 | - tc.yscale = yscale; | ||
108 | - tc.xyswap = 0; | ||
109 | - | ||
110 | - printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); | ||
111 | - | ||
112 | - if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) | ||
113 | - { | ||
114 | - perror ("TS_SET_CAL"); | ||
115 | - exit (1); | ||
116 | - } | ||
117 | } | ||
118 | |||
119 | void | ||
120 | @@ -398,80 +364,13 @@ handle_ts_event (int x, int y, int press | ||
121 | } | ||
122 | |||
123 | void | ||
124 | -read_ts (void) | ||
125 | -{ | ||
126 | - TS_EVENT ts_ev; | ||
127 | - int r; | ||
128 | - | ||
129 | - r = read (ts_fd, &ts_ev, sizeof (ts_ev)); | ||
130 | - if (r == sizeof (ts_ev)) | ||
131 | - handle_ts_event (ts_ev.x, ts_ev.y, ts_ev.pressure); | ||
132 | -} | ||
133 | - | ||
134 | -void | ||
135 | -do_cal (char **args) | ||
136 | -{ | ||
137 | - TS_CAL tc; | ||
138 | - | ||
139 | - tc.xscale = atoi (args[0]); | ||
140 | - tc.xtrans = atoi (args[1]); | ||
141 | - tc.yscale = atoi (args[2]); | ||
142 | - tc.ytrans = atoi (args[3]); | ||
143 | - tc.xyswap = atoi (args[4]); | ||
144 | - | ||
145 | - if (flag_debug) | ||
146 | - fprintf (stderr, "setting: %d %d %d %d %d\n", | ||
147 | - tc.xtrans, tc.ytrans, tc.xscale, tc.yscale, tc.xyswap); | ||
148 | - | ||
149 | - if (ioctl (ts_fd, TS_SET_CAL, (void *)&tc) != 0) | ||
150 | - { | ||
151 | - perror ("TS_SET_CAL"); | ||
152 | - exit (1); | ||
153 | - } | ||
154 | - | ||
155 | - exit (0); | ||
156 | -} | ||
157 | - | ||
158 | -void | ||
159 | -show_cal (void) | ||
160 | -{ | ||
161 | - TS_CAL tc; | ||
162 | - | ||
163 | - if (ioctl (ts_fd, TS_GET_CAL, (void *)&tc) != 0) | ||
164 | - { | ||
165 | - perror ("TS_GET_CAL"); | ||
166 | - exit (1); | ||
167 | - } | ||
168 | - | ||
169 | - printf ("%d %d %d %d %d\n", tc.xscale, tc.xtrans, tc.yscale, tc.ytrans, tc.xyswap); | ||
170 | -} | ||
171 | - | ||
172 | -void | ||
173 | usage (const char *name) | ||
174 | { | ||
175 | - fprintf (stderr, "usage: %s -view\n", name); | ||
176 | - fprintf (stderr, " %s [-rotate <0 | 90 | 180 | 270>]\n", name); | ||
177 | - fprintf (stderr, " %s -cal <xs> <xt> <ys> <yt> <xyswap>\n", name); | ||
178 | - | ||
179 | + fprintf (stderr, "usage: %s [-debug]\n", name); | ||
180 | exit (1); | ||
181 | } | ||
182 | |||
183 | int | ||
184 | -xrr_supported (void) | ||
185 | -{ | ||
186 | - int xrr_event_base, xrr_error_base; | ||
187 | - int xrr_major, xrr_minor; | ||
188 | - | ||
189 | - if (XRRQueryExtension (dpy, &xrr_event_base, &xrr_error_base) == False | ||
190 | - || XRRQueryVersion (dpy, &xrr_major, &xrr_minor) == 0 | ||
191 | - || xrr_major != 1 | ||
192 | - || xrr_minor < 1) | ||
193 | - return 0; | ||
194 | - | ||
195 | - return 1; | ||
196 | -} | ||
197 | - | ||
198 | -int | ||
199 | main (int argc, char *argv[]) | ||
200 | { | ||
201 | XSetWindowAttributes attributes; | ||
202 | @@ -480,31 +379,11 @@ main (int argc, char *argv[]) | ||
203 | int max_fd; | ||
204 | GC bg_gc; | ||
205 | int i; | ||
206 | - int have_xrandr; | ||
207 | |||
208 | for (i = 1; i < argc; i++) | ||
209 | { | ||
210 | - if (!strcmp (argv[i], "-view")) | ||
211 | - { | ||
212 | - show_cal (); | ||
213 | - exit (0); | ||
214 | - } | ||
215 | - else if (!strcmp (argv[i], "-debug")) | ||
216 | + if (!strcmp (argv[i], "-debug")) | ||
217 | flag_debug = 1; | ||
218 | - else if (!strcmp (argv[i], "-cal")) | ||
219 | - { | ||
220 | - if (argc > (i + 5)) | ||
221 | - do_cal (argv + i + 1); | ||
222 | - else | ||
223 | - usage (argv[0]); | ||
224 | - } | ||
225 | - else if (!strcmp (argv[i], "-rotate")) | ||
226 | - { | ||
227 | - if (argc > (i + 1)) | ||
228 | - rotation = atoi (argv[++i]); | ||
229 | - else | ||
230 | - usage (argv[0]); | ||
231 | - } | ||
232 | else | ||
233 | usage (argv[0]); | ||
234 | } | ||
235 | @@ -531,48 +410,11 @@ main (int argc, char *argv[]) | ||
236 | fprintf (stderr, "failed to set raw mode: error %d\n", r); | ||
237 | exit (1); | ||
238 | } | ||
239 | - | ||
240 | - using_xcalibrate = 1; | ||
241 | - } | ||
242 | - | ||
243 | - have_xrandr = xrr_supported (); | ||
244 | - if (have_xrandr) | ||
245 | - { | ||
246 | - XRRScreenConfiguration *rr_screen; | ||
247 | - Rotation current_rotation; | ||
248 | - | ||
249 | - if (flag_debug) | ||
250 | - fprintf (stderr, "XRANDR is supported\n"); | ||
251 | - | ||
252 | - rr_screen = XRRGetScreenInfo (dpy, RootWindow (dpy, screen)); | ||
253 | - | ||
254 | - XRRRotations (dpy, screen, ¤t_rotation); | ||
255 | - | ||
256 | - XRRFreeScreenConfigInfo (rr_screen); | ||
257 | - | ||
258 | - if (flag_debug) | ||
259 | - fprintf (stderr, "Current RANDR rotation is %d\n", current_rotation); | ||
260 | - | ||
261 | - switch (current_rotation) | ||
262 | - { | ||
263 | - case RR_Rotate_270: | ||
264 | - rotation += 90; | ||
265 | - case RR_Rotate_180: | ||
266 | - rotation += 90; | ||
267 | - case RR_Rotate_90: | ||
268 | - rotation += 90; | ||
269 | - rotation %= 360; | ||
270 | - case RR_Rotate_0: | ||
271 | - break; | ||
272 | - default: | ||
273 | - fprintf (stderr, "Unknown RANDR rotation: %d\n", current_rotation); | ||
274 | - break; | ||
275 | - } | ||
276 | } | ||
277 | else | ||
278 | { | ||
279 | - if (flag_debug) | ||
280 | - fprintf (stderr, "XRANDR not supported\n"); | ||
281 | + perror ("XCALIBRATE extension missing"); | ||
282 | + exit (1); | ||
283 | } | ||
284 | |||
285 | attributes.override_redirect = flag_debug ? False : True; | ||
286 | @@ -666,45 +508,17 @@ main (int argc, char *argv[]) | ||
287 | |||
288 | for (i = 0; i < NR_POINTS; i++) | ||
289 | { | ||
290 | - switch (rotation) | ||
291 | - { | ||
292 | - case 0: | ||
293 | - cal.xfb[i] = cal.xscr[i]; | ||
294 | - cal.yfb[i] = cal.yscr[i]; | ||
295 | - break; | ||
296 | - case 90: | ||
297 | - cal.xfb[i] = cal.yscr[i]; | ||
298 | - cal.yfb[i] = screen_x - cal.xscr[i]; | ||
299 | - break; | ||
300 | - case 180: | ||
301 | - cal.xfb[i] = screen_x - cal.xscr[i]; | ||
302 | - cal.yfb[i] = screen_y - cal.yscr[i]; | ||
303 | - break; | ||
304 | - case 270: | ||
305 | - cal.xfb[i] = screen_y - cal.yscr[i]; | ||
306 | - cal.yfb[i] = cal.xscr[i]; | ||
307 | - break; | ||
308 | - } | ||
309 | + cal.xfb[i] = cal.xscr[i]; | ||
310 | + cal.yfb[i] = cal.yscr[i]; | ||
311 | + XCalibrateScreenToCoord (dpy, &cal.xfb[i], &cal.yfb[i]); | ||
312 | |||
313 | if (flag_debug) | ||
314 | - printf ("rotation %d: (%d,%d) -> (%d,%d)\n", rotation, | ||
315 | + printf ("rotation conversion: (%d,%d) -> (%d,%d)\n", | ||
316 | cal.xscr[i], cal.yscr[i], cal.xfb[i], cal.yfb[i]); | ||
317 | } | ||
318 | |||
319 | next_event (); | ||
320 | |||
321 | - if (!using_xcalibrate) | ||
322 | - { | ||
323 | - ts_fd = open (RAW_DEVICE, O_RDONLY); | ||
324 | - if (ts_fd < 0) | ||
325 | - { | ||
326 | - perror (RAW_DEVICE); | ||
327 | - exit (1); | ||
328 | - } | ||
329 | - } | ||
330 | - | ||
331 | - max_fd = (xfd > ts_fd) ? xfd : ts_fd; | ||
332 | - | ||
333 | for (;;) | ||
334 | { | ||
335 | fd_set fds; | ||
336 | @@ -713,12 +527,8 @@ main (int argc, char *argv[]) | ||
337 | |||
338 | FD_ZERO (&fds); | ||
339 | FD_SET (xfd, &fds); | ||
340 | - if (ts_fd != -1) | ||
341 | - FD_SET (ts_fd, &fds); | ||
342 | |||
343 | - select (max_fd + 1, &fds, NULL, NULL, NULL); | ||
344 | - | ||
345 | - if (ts_fd != -1 && FD_ISSET (ts_fd, &fds)) | ||
346 | - read_ts (); | ||
347 | + select (xfd + 1, &fds, NULL, NULL, NULL); | ||
348 | } | ||
349 | } | ||
350 | + | ||
351 | Index: xtscal-0.6.3/configure.ac | ||
352 | =================================================================== | ||
353 | --- xtscal-0.6.3.orig/configure.ac 2004-09-10 20:11:12.000000000 +0100 | ||
354 | +++ xtscal-0.6.3/configure.ac 2007-07-01 01:12:55.000000000 +0100 | ||
355 | @@ -9,8 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) | ||
356 | # Checks for programs. | ||
357 | AC_PROG_CC | ||
358 | |||
359 | -PKG_CHECK_MODULES(XTSCAL, x11 xft xext xrandr xcalibrate) | ||
360 | +PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate) | ||
361 | |||
362 | AC_CONFIG_FILES([Makefile]) | ||
363 | -AC_CONFIG_FILES([xtscal]) | ||
364 | AC_OUTPUT | ||
365 | Index: xtscal-0.6.3/gpe-dist.am | ||
366 | =================================================================== | ||
367 | --- xtscal-0.6.3.orig/gpe-dist.am 2004-06-02 23:07:13.000000000 +0100 | ||
368 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
369 | @@ -1,12 +0,0 @@ | ||
370 | -CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_]) | ||
371 | - | ||
372 | -dist-upload: dist | ||
373 | - scp $(PACKAGE)-$(VERSION).tar.bz2 $(USER)@handhelds.org:/home/ftp/pub/projects/gpe/source/ | ||
374 | - | ||
375 | -tag: | ||
376 | - cvs tag $(CVSTAG) | ||
377 | - | ||
378 | -retag: | ||
379 | - cvs tag -F $(CVSTAG) | ||
380 | - | ||
381 | -source: tag dist-upload | ||
382 | Index: xtscal-0.6.3/h3600_ts.h | ||
383 | =================================================================== | ||
384 | --- xtscal-0.6.3.orig/h3600_ts.h 2003-07-05 17:27:10.000000000 +0100 | ||
385 | +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
386 | @@ -1,216 +0,0 @@ | ||
387 | -/* | ||
388 | -* | ||
389 | -* Driver for the H3600 Touch Screen and other Atmel controlled devices. | ||
390 | -* | ||
391 | -* Copyright 2000 Compaq Computer Corporation. | ||
392 | -* | ||
393 | -* Use consistent with the GNU GPL is permitted, | ||
394 | -* provided that this copyright notice is | ||
395 | -* preserved in its entirety in all copies and derived works. | ||
396 | -* | ||
397 | -* COMPAQ COMPUTER CORPORATION MAKES NO WARRANTIES, EXPRESSED OR IMPLIED, | ||
398 | -* AS TO THE USEFULNESS OR CORRECTNESS OF THIS CODE OR ITS | ||
399 | -* FITNESS FOR ANY PARTICULAR PURPOSE. | ||
400 | -* | ||
401 | -* Author: Charles Flynn. | ||
402 | -* | ||
403 | -*/ | ||
404 | - | ||
405 | - | ||
406 | -#ifndef __H3600_TS_H__ | ||
407 | -#define __H3600_TS_H__ | ||
408 | - | ||
409 | -#include <linux/ioctl.h> | ||
410 | - | ||
411 | -enum h3600_ts_minor_devices { | ||
412 | - TS_MINOR = 0, | ||
413 | - TSRAW_MINOR = 1, | ||
414 | - KEY_MINOR = 2 | ||
415 | -}; | ||
416 | - | ||
417 | -typedef struct h3600_ts_calibration { | ||
418 | - int xscale; | ||
419 | - int xtrans; | ||
420 | - int yscale; | ||
421 | - int ytrans; | ||
422 | - int xyswap; | ||
423 | -} TS_CAL; | ||
424 | - | ||
425 | -typedef struct h3600_ts_event { | ||
426 | - unsigned short pressure; | ||
427 | - unsigned short x; | ||
428 | - unsigned short y; | ||
429 | - unsigned short pad; | ||
430 | -} TS_EVENT; | ||
431 | - | ||
432 | -/* Deprecated - do not use */ | ||
433 | -typedef struct h3600_ts_return { | ||
434 | - unsigned short pressure; | ||
435 | - unsigned short x; | ||
436 | - unsigned short y; | ||
437 | - unsigned short pad; | ||
438 | -} TS_RET; | ||
439 | - | ||
440 | -enum power_button_mode { | ||
441 | - PBM_SUSPEND = 0, | ||
442 | - PBM_GENERATE_KEYPRESS = 1 | ||
443 | -}; | ||
444 | - | ||
445 | - | ||
446 | -/* ++++++++++++++ +++++++++++++++++++++++++++++++++++++ */ | ||
447 | - | ||
448 | -typedef struct therm_dev { | ||
449 | - short data; | ||
450 | -} THERM_DEV; | ||
451 | - | ||
452 | -#define H3600_BATT_CHEM_ALKALINE 0x01 | ||
453 | -#define H3600_BATT_CHEM_NICD 0x02 | ||
454 | -#define H3600_BATT_CHEM_NIMH 0x03 | ||
455 | -#define H3600_BATT_CHEM_LION 0x04 | ||
456 | -#define H3600_BATT_CHEM_LIPOLY 0x05 | ||
457 | -#define H3600_BATT_CHEM_NOT_INSTALLED 0x06 | ||
458 | -#define H3600_BATT_CHEM_UNKNOWN 0xff | ||
459 | - | ||
460 | -/* These should match the apm_bios.h definitions */ | ||
461 | -#define H3600_AC_STATUS_AC_OFFLINE 0x00 | ||
462 | -#define H3600_AC_STATUS_AC_ONLINE 0x01 | ||
463 | -#define H3600_AC_STATUS_AC_BACKUP 0x02 /* What does this mean? */ | ||
464 | -#define H3600_AC_STATUS_AC_UNKNOWN 0xff | ||
465 | - | ||
466 | -/* These bitfields are rarely "or'd" together */ | ||
467 | -#define H3600_BATT_STATUS_HIGH 0x01 | ||
468 | -#define H3600_BATT_STATUS_LOW 0x02 | ||
469 | -#define H3600_BATT_STATUS_CRITICAL 0x04 | ||
470 | -#define H3600_BATT_STATUS_CHARGING 0x08 | ||
471 | -#define H3600_BATT_STATUS_CHARGE_MAIN 0x10 | ||
472 | -#define H3600_BATT_STATUS_DEAD 0x20 /* Battery will not charge */ | ||
473 | -#define H3600_BATT_NOT_INSTALLED 0x20 /* For expansion pack batteries */ | ||
474 | -#define H3600_BATT_STATUS_FULL 0x40 /* Battery fully charged (and connected to AC) */ | ||
475 | -#define H3600_BATT_STATUS_NOBATT 0x80 | ||
476 | -#define H3600_BATT_STATUS_UNKNOWN 0xff | ||
477 | - | ||
478 | -struct battery_data { | ||
479 | - unsigned char chemistry; | ||
480 | - unsigned char status; | ||
481 | - unsigned short voltage; /* Voltage for battery #0; unknown for battery #1 */ | ||
482 | - unsigned short percentage; /* Percentage of full charge */ | ||
483 | - unsigned short life; /* Life remaining in minutes */ | ||
484 | -}; | ||
485 | - | ||
486 | -struct h3600_battery { | ||
487 | - unsigned char ac_status; | ||
488 | - unsigned char battery_count; /* How many batteries we have */ | ||
489 | - struct battery_data battery[2]; | ||
490 | -}; | ||
491 | - | ||
492 | -/* -------- EEPROM and SPI Interfaces ---------------*/ | ||
493 | - | ||
494 | -#define EEPROM_RD_BUFSIZ 6 /* EEPROM reads are 16 bits */ | ||
495 | -#define EEPROM_WR_BUFSIZ 5 /* Allow room for 8bit 'addr' field in buffer*/ | ||
496 | -#define SPI_RD_BUFSIZ 16 /* SPI reads are 8 bits */ | ||
497 | -#define SPI_WR_BUFSIZ 7 | ||
498 | - | ||
499 | -/* The EEPROM is where internal programs are stored on the Amtel. | ||
500 | - You probably don't want to read or write these values */ | ||
501 | - | ||
502 | -typedef struct h3600_eeprom_read_request { | ||
503 | - unsigned char addr; /* 8bit Address Offset 0-255 */ | ||
504 | - unsigned char len; /* Number of 16bit words to read 0-128 */ | ||
505 | - unsigned short buff[EEPROM_RD_BUFSIZ]; | ||
506 | -} EEPROM_READ; | ||
507 | - | ||
508 | -typedef struct h3600_eeprom_write_request { | ||
509 | - unsigned char len; /* used only to compute the number of bytes to send */ | ||
510 | - unsigned char addr; /* 0-128 */ | ||
511 | - unsigned short buff[EEPROM_WR_BUFSIZ]; | ||
512 | -} EEPROM_WRITE; | ||
513 | - | ||
514 | -/* The SPI bus connects to EEPROMs located on sleeves plugged into | ||
515 | - the iPAQ. You may want to read these values */ | ||
516 | - | ||
517 | -typedef struct h3600_spi_read_request { | ||
518 | - unsigned short addr; /* 16bit Address Offset 0-128 */ | ||
519 | - unsigned char len; /* Number of bytes to read */ | ||
520 | - unsigned char buff[SPI_RD_BUFSIZ]; | ||
521 | -} SPI_READ; | ||
522 | - | ||
523 | -#define SPI_READ_STATUS_BYTE 0xffff /* Use this address to read the status byte */ | ||
524 | - | ||
525 | -typedef struct h3600_spi_write_request { | ||
526 | - unsigned short len; /* used only to compute the number of bytes to send */ | ||
527 | - unsigned short addr; /* this 16bit address accesses a single byte */ | ||
528 | - unsigned char buff[SPI_WR_BUFSIZ]; | ||
529 | -} SPI_WRITE; | ||
530 | - | ||
531 | - | ||
532 | -/* -------- end of EEPROM and SPI Interfaces ---------------*/ | ||
533 | - | ||
534 | -/* User space structures for IOCTL calls */ | ||
535 | - | ||
536 | -typedef struct h3600_ts_version { | ||
537 | - unsigned char host_version[8]; /* ascii "x.yy" */ | ||
538 | - unsigned char pack_version[8]; /* ascii "x.yy" */ | ||
539 | - unsigned char boot_type; /* TODO ?? */ | ||
540 | -} VER_RET; | ||
541 | - | ||
542 | -typedef struct h3600_ts_led { | ||
543 | - unsigned char OffOnBlink; /* 0=off 1=on 2=Blink */ | ||
544 | - unsigned char TotalTime; /* Units of 5 seconds */ | ||
545 | - unsigned char OnTime; /* units of 100m/s */ | ||
546 | - unsigned char OffTime; /* units of 100m/s */ | ||
547 | -} LED_IN; | ||
548 | - | ||
549 | -enum flite_mode { | ||
550 | - FLITE_MODE1 = 1, | ||
551 | - FLITE_AUTO_MODE = 1, /* for reference only */ | ||
552 | - FLITE_MANUAL_MODE = 2, /* Use this normally? */ | ||
553 | - FLITE_GET_LIGHT_SENSOR = 3 /* Returns light reading in "brightness" field */ | ||
554 | -}; | ||
555 | -enum flite_pwr { | ||
556 | - FLITE_PWR_OFF = 0, | ||
557 | - FLITE_PWR_ON = 1 | ||
558 | -}; | ||
559 | - | ||
560 | -typedef struct h3600_ts_flite { | ||
561 | - unsigned char mode; | ||
562 | - unsigned char pwr; | ||
563 | - unsigned char brightness; | ||
564 | -} FLITE_IN; | ||
565 | - | ||
566 | -/*************************** Updated "universal" structures *******************/ | ||
567 | - | ||
568 | -/* Sets backlight for both H3100 and H3600 models - technically "frontlight" for H3600 */ | ||
569 | -struct h3600_ts_backlight { | ||
570 | - enum flite_pwr power; /* 0 = off, 1 = on */ | ||
571 | - unsigned char brightness; /* 0 - 255 */ | ||
572 | -}; | ||
573 | - | ||
574 | -struct h3600_ts_contrast { /* Only useful on H3100 model */ | ||
575 | - unsigned char contrast; /* 0 - 255 */ | ||
576 | -}; | ||
577 | - | ||
578 | -/* IOCTL cmds user or kernel space */ | ||
579 | - | ||
580 | -/* Use 'f' as magic number */ | ||
581 | -#define IOC_H3600_TS_MAGIC 'f' | ||
582 | - | ||
583 | -/* TODO: Some of these IOWR values are just plain wrong */ | ||
584 | -#define GET_VERSION _IOR(IOC_H3600_TS_MAGIC, 1, struct h3600_ts_version ) | ||
585 | -#define READ_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 2, struct h3600_eeprom_read_request) | ||
586 | -#define WRITE_EEPROM _IOWR(IOC_H3600_TS_MAGIC, 3, struct h3600_eeprom_write_request) | ||
587 | -#define GET_THERMAL _IOR(IOC_H3600_TS_MAGIC, 4, struct therm_dev) | ||
588 | -#define LED_ON _IOW(IOC_H3600_TS_MAGIC, 5, struct h3600_ts_led) | ||
589 | -#define GET_BATTERY_STATUS _IOR(IOC_H3600_TS_MAGIC, 6, struct h3600_battery) | ||
590 | -#define FLITE_ON _IOW(IOC_H3600_TS_MAGIC, 7, struct h3600_ts_flite) | ||
591 | -#define READ_SPI _IOWR(IOC_H3600_TS_MAGIC, 8, struct h3600_spi_read_request) | ||
592 | -#define WRITE_SPI _IOWR(IOC_H3600_TS_MAGIC, 9, struct h3600_spi_write_request) | ||
593 | -#define TS_GET_CAL _IOR(IOC_H3600_TS_MAGIC, 10, struct h3600_ts_calibration) | ||
594 | -#define TS_SET_CAL _IOW(IOC_H3600_TS_MAGIC, 11, struct h3600_ts_calibration) | ||
595 | - | ||
596 | -/* New IOCTL interfaces - defined to be more user friendly */ | ||
597 | -#define TS_GET_BACKLIGHT _IOR(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) | ||
598 | -#define TS_SET_BACKLIGHT _IOW(IOC_H3600_TS_MAGIC, 20, struct h3600_ts_backlight) | ||
599 | -#define TS_GET_CONTRAST _IOR(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) | ||
600 | -#define TS_SET_CONTRAST _IOW(IOC_H3600_TS_MAGIC, 21, struct h3600_ts_contrast) | ||
601 | - | ||
602 | -#endif | ||
603 | Index: xtscal-0.6.3/Makefile.am | ||
604 | =================================================================== | ||
605 | --- xtscal-0.6.3.orig/Makefile.am 2004-06-02 23:07:13.000000000 +0100 | ||
606 | +++ xtscal-0.6.3/Makefile.am 2007-07-02 12:51:02.000000000 +0100 | ||
607 | @@ -1,11 +1,8 @@ | ||
608 | -libexec_PROGRAMS = xtscal.bin | ||
609 | -bin_SCRIPTS = xtscal | ||
610 | +bin_PROGRAMS = xtscal | ||
611 | |||
612 | -xtscal_bin_SOURCES = main.c calibrate.c calibrate.h h3600_ts.h | ||
613 | +xtscal_SOURCES = main.c calibrate.c calibrate.h | ||
614 | |||
615 | -xtscal_bin_LDADD = @XTSCAL_LIBS@ | ||
616 | +xtscal_LDADD = @XTSCAL_LIBS@ | ||
617 | |||
618 | INCLUDES = @XTSCAL_CFLAGS@ -DNR_POINTS=5 | ||
619 | |||
620 | -include gpe-dist.am | ||
621 | - | ||
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch new file mode 100644 index 000000000..3e4533f78 --- /dev/null +++ b/meta-oe/recipes-graphics/xtscal/xtscal/dso_linking_change_build_fix.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | after gcc linking has changed, all the libraries must be explicitely specified | ||
2 | This patch avoids this linking error: | ||
3 | |||
4 | | ccache i586-poky-linux-gcc -march=i586 --sysroot=/disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux -fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o xtscal main.o calibrate.o -lX11 -lXft -lXext -lXcalibrate^M | ||
5 | | /disk0/pokybuild/build1/tmp/sysroots/x86_64-linux/usr/libexec/i586-poky-linux/gcc/i586-poky-linux/4.5.1/ld: ^?: invalid DSO for symbol `XRenderChangePicture' definition^M | ||
6 | | /disk0/pokybuild/build1/tmp/sysroots/i586-poky-linux/usr/lib/libXrender.so.1: could not read symbols: Bad value^M | ||
7 | | collect2: ld returned 1 exit status^M | ||
8 | | make: *** [xtscal] Error 1 | ||
9 | |||
10 | Nitin A Kamble <nitin.a.kamble@intel.com> | ||
11 | Date: 2011/01/11 | ||
12 | |||
13 | Upstream-Status: Pending | ||
14 | |||
15 | Index: xtscal-0.6.3/configure.ac | ||
16 | =================================================================== | ||
17 | --- xtscal-0.6.3.orig/configure.ac | ||
18 | +++ xtscal-0.6.3/configure.ac | ||
19 | @@ -9,7 +9,7 @@ AM_INIT_AUTOMAKE([foreign dist-bzip2]) | ||
20 | # Checks for programs. | ||
21 | AC_PROG_CC | ||
22 | |||
23 | -PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate) | ||
24 | +PKG_CHECK_MODULES(XTSCAL, x11 xft xext xcalibrate xrender) | ||
25 | |||
26 | AC_CONFIG_FILES([Makefile]) | ||
27 | AC_OUTPUT | ||
diff --git a/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb new file mode 100644 index 000000000..4bfddf06b --- /dev/null +++ b/meta-oe/recipes-graphics/xtscal/xtscal_0.6.3.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "Touchscreen calibration utility" | ||
2 | |||
3 | DESCRIPTION = "Basic touchscreen calibration utility" | ||
4 | |||
5 | HOMEPAGE = "http://gpe.linuxtogo.org" | ||
6 | BUGTRACKER = "http://bugs.linuxtogo.org" | ||
7 | LICENSE = "GPLv2 & GPLv2+" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
9 | file://main.c;endline=10;md5=8721bcb08ae9f24e5fe4c82941873c87" | ||
10 | |||
11 | SECTION = "x11/base" | ||
12 | |||
13 | DEPENDS = "virtual/libx11 libxft libxcalibrate" | ||
14 | |||
15 | PR = "r13" | ||
16 | |||
17 | SRC_URI = "${GPE_MIRROR}/xtscal-${PV}.tar.bz2 \ | ||
18 | file://change-cross.patch \ | ||
19 | file://cleanup.patch \ | ||
20 | file://dso_linking_change_build_fix.patch \ | ||
21 | file://30xTs_Calibrate.sh" | ||
22 | |||
23 | SRC_URI[md5sum] = "9bcab80b474d5454477d1ca166a68c34" | ||
24 | SRC_URI[sha256sum] = "27b9dc2203de9b1706ca39fa6ca80ecab8807909ec901c4a345b8e41178800a1" | ||
25 | |||
26 | inherit autotools pkgconfig distro_features_check | ||
27 | # depends on virtual/libx11 | ||
28 | REQUIRED_DISTRO_FEATURES = "x11" | ||
29 | |||
30 | do_install_append() { | ||
31 | install -d ${D}${sysconfdir}/X11/Xsession.d/ | ||
32 | install -m 0755 ${WORKDIR}/30xTs_Calibrate.sh ${D}${sysconfdir}/X11/Xsession.d/ | ||
33 | } | ||