* [meta-oe-meta-systemd 0/5] xinput-calibrator rework
@ 2013-02-05 22:18 Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 1/5] xinput-calibrator: update to latest git commit Andreas Müller
` (5 more replies)
0 siblings, 6 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
* Implemented are 3 modes of invocation:
1. udev/systemd
2. /etc/xdg/autostart
3. manual
1/2 are selected upon DISTRO_FEATURES containing systemd or not
* The calibration is stored in /etc/X11/xorg.conf.d/99-<name-of-touchscreen>.conf
Herby support for multiple touchsceen devices is prepared.
* The script detects upon parameter information how it was called and waits for
xserver to come up / detect connected touchsceen devices. If no matching
calibration file is found, the xinput_calibrator is called for this device.
For systemd invocation the default display is choosen.
* For manual invocation and multiple touchscreen devices attached, the operator
can select which device to calibrate interactively.
* Multiple touchscreen support is prepared - the following open issues are known:
* Multiple touchscreens with same device name will get same calibration values.
An unique device identifier could not be found yet.
* systemd startup with multiple device cause multiple instances of
xinput_calibrator being started without information for which device
the calibration is performed.
* Many many tests were performed:
2 automatic invocation types * (1st + 2nd startup) * (0, 1, 2 touchscreens)
* Other layers need alignment for pointercal removement. If accepted I can take
care (this is NOT an extortion :)
The following changes since commit 4128325a4c87bcde6ac6ffe5dbf5d6d057ee4804:
nodejs: export DESTDIR to fix build with dash (2013-02-05 11:05:51 +0100)
are available in the git repository at:
git://gitorious.org/schnitzeltony-oe-meta/meta-openembedded.git xinput-calibrator
Andreas Müller (5):
xinput-calibrator: update to latest git commit
xinput-calibrator: Add --output-filename to store calibration to file
xinput-calibrator: rework
pointercal-xinput: remove
xinput-calibrator: do not RDEPEND xterm
.../pointercal-xinput/pointercal.xinput | 1 -
.../xinput-calibrator/pointercal-xinput_0.0.bb | 19 --
...er-output-filename-and-store-in-output_fi.patch | 248 ++++++++++++++++++++
...vent-timeout-exit-when-no-timeout-is-used.patch | 82 +++++++
...vdev-do-write-calibration-results-if-outp.patch | 164 +++++++++++++
...orgPrint-do-write-calibration-results-if-.patch | 156 ++++++++++++
...sbtouchscreen-overridde-default-file-name.patch | 50 ++++
...librator-destructors-virtual-to-fix-warni.patch | 64 +++++
...er-size-for-max-line-length-only-once-in-.patch | 77 ++++++
.../99-xf86-xinput-calibrator.rules | 6 +
.../xinput-calibrator/xinput-calibrator@.service | 8 +
.../xinput_calibrator_pointercal2.sh | 151 ++++++++++++
.../xinput-calibrator/xinput-calibrator_git.bb | 52 ++++-
.../xinput-calibrator/xinput-calibrator.service | 11 -
.../xinput-calibrator_git.bbappend | 10 -
15 files changed, 1046 insertions(+), 53 deletions(-)
delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Add-parameter-output-filename-and-store-in-output_fi.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Prevent-timeout-exit-when-no-timeout-is-used.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/99-xf86-xinput-calibrator.rules
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator@.service
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput_calibrator_pointercal2.sh
delete mode 100644 meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator.service
delete mode 100644 meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bbappend
--
1.7.6.5
^ permalink raw reply [flat|nested] 16+ messages in thread
* [meta-oe-meta-systemd 1/5] xinput-calibrator: update to latest git commit
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
@ 2013-02-05 22:18 ` Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 2/5] xinput-calibrator: Add --output-filename to store calibration to file Andreas Müller
` (4 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
A new option --no-timeout was introduced. Unfortunately it is not working as
expected and has to be fixed.
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
...vent-timeout-exit-when-no-timeout-is-used.patch | 82 ++++++++++++++++++++
.../xinput-calibrator/xinput-calibrator_git.bb | 7 +-
2 files changed, 87 insertions(+), 2 deletions(-)
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Prevent-timeout-exit-when-no-timeout-is-used.patch
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Prevent-timeout-exit-when-no-timeout-is-used.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Prevent-timeout-exit-when-no-timeout-is-used.patch
new file mode 100644
index 0000000..4cd29a6
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Prevent-timeout-exit-when-no-timeout-is-used.patch
@@ -0,0 +1,82 @@
+From 5d404f02bfb9c6eabbbe93dea2a8eb7ed4fd07d6 Mon Sep 17 00:00:00 2001
+From: Jeff Lasslett <jeff.lasslett@gmail.com>
+Date: Wed, 9 Jan 2013 14:12:46 +1100
+Subject: [PATCH] Prevent timeout exit when --no-timeout is used
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/45]
+
+---
+ src/gui/gtkmm.cpp | 30 ++++++++++++++++--------------
+ src/gui/x11.cpp | 13 +++++++------
+ 2 files changed, 23 insertions(+), 20 deletions(-)
+
+diff --git a/src/gui/gtkmm.cpp b/src/gui/gtkmm.cpp
+index 32bb889..2f52e25 100644
+--- a/src/gui/gtkmm.cpp
++++ b/src/gui/gtkmm.cpp
+@@ -204,21 +204,23 @@ void CalibrationArea::redraw()
+
+ bool CalibrationArea::on_timer_signal()
+ {
+- time_elapsed += time_step;
+- if (time_elapsed > max_time) {
+- exit(0);
+- }
+-
+- // Update clock
+- Glib::RefPtr<Gdk::Window> win = get_window();
+- if (win) {
+- const Gdk::Rectangle rect(display_width/2 - clock_radius - clock_line_width,
+- display_height/2 - clock_radius - clock_line_width,
+- 2 * clock_radius + 1 + 2 * clock_line_width,
+- 2 * clock_radius + 1 + 2 * clock_line_width);
+- win->invalidate_rect(rect, false);
++ if (calibrator->get_use_timeout()) {
++ time_elapsed += time_step;
++ if (time_elapsed > max_time) {
++ exit(0);
++ }
++
++ // Update clock
++ Glib::RefPtr<Gdk::Window> win = get_window();
++ if (win) {
++ const Gdk::Rectangle rect(display_width/2 - clock_radius - clock_line_width,
++ display_height/2 - clock_radius - clock_line_width,
++ 2 * clock_radius + 1 + 2 * clock_line_width,
++ 2 * clock_radius + 1 + 2 * clock_line_width);
++ win->invalidate_rect(rect, false);
++ }
+ }
+-
++
+ return true;
+ }
+
+diff --git a/src/gui/x11.cpp b/src/gui/x11.cpp
+index db8a8a5..dfcd9fd 100644
+--- a/src/gui/x11.cpp
++++ b/src/gui/x11.cpp
+@@ -293,13 +293,14 @@ bool GuiCalibratorX11::on_expose_event()
+
+ bool GuiCalibratorX11::on_timer_signal()
+ {
+- time_elapsed += time_step;
+- if (time_elapsed > max_time) {
+- exit(0);
+- }
+-
+ // Update clock
+- if(calibrator->get_use_timeout()){
++ if(calibrator->get_use_timeout()) {
++
++ time_elapsed += time_step;
++ if (time_elapsed > max_time) {
++ exit(0);
++ }
++
+ XSetForeground(display, gc, pixel[BLACK]);
+ XSetLineAttributes(display, gc, clock_line_width,
+ LineSolid, CapButt, JoinMiter);
+--
+1.7.4.4
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 97f9343..b71daeb 100644
--- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -9,8 +9,11 @@ PR = "r1"
inherit autotools
-SRCREV = "c01c5af807cb4b0157b882ab07a893df9a810111"
-SRC_URI = "git://github.com/tias/xinput_calibrator.git;protocol=git"
+SRCREV = "e02de96acbe2fa5a57b0bda6821a053b1b123fd2"
+SRC_URI = " \
+ git://github.com/tias/xinput_calibrator.git;protocol=git \
+ file://0001-Prevent-timeout-exit-when-no-timeout-is-used.patch \
+"
S = "${WORKDIR}/git"
--
1.7.6.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [meta-oe-meta-systemd 2/5] xinput-calibrator: Add --output-filename to store calibration to file
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 1/5] xinput-calibrator: update to latest git commit Andreas Müller
@ 2013-02-05 22:18 ` Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 3/5] xinput-calibrator: rework Andreas Müller
` (3 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
...er-output-filename-and-store-in-output_fi.patch | 248 ++++++++++++++++++++
...vdev-do-write-calibration-results-if-outp.patch | 164 +++++++++++++
...orgPrint-do-write-calibration-results-if-.patch | 156 ++++++++++++
...sbtouchscreen-overridde-default-file-name.patch | 50 ++++
...librator-destructors-virtual-to-fix-warni.patch | 64 +++++
...er-size-for-max-line-length-only-once-in-.patch | 77 ++++++
.../xinput-calibrator/xinput-calibrator_git.bb | 8 +-
7 files changed, 766 insertions(+), 1 deletions(-)
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Add-parameter-output-filename-and-store-in-output_fi.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Add-parameter-output-filename-and-store-in-output_fi.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Add-parameter-output-filename-and-store-in-output_fi.patch
new file mode 100644
index 0000000..319a504
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0001-Add-parameter-output-filename-and-store-in-output_fi.patch
@@ -0,0 +1,248 @@
+From 6d79af03c09ba84ed718da5a3bb76f0bd5d13600 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 21 Jan 2013 12:31:12 +0100
+Subject: [PATCH 1/6] Add parameter --output-filename and store in
+ output_filename
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator.cpp | 5 +++--
+ src/calibrator.hh | 10 +++++++++-
+ src/calibrator/Evdev.cpp | 10 ++++++----
+ src/calibrator/Evdev.hpp | 6 ++++--
+ src/calibrator/Usbtouchscreen.cpp | 4 ++--
+ src/calibrator/Usbtouchscreen.hpp | 2 +-
+ src/calibrator/XorgPrint.cpp | 4 ++--
+ src/calibrator/XorgPrint.hpp | 2 +-
+ src/main_common.cpp | 16 +++++++++++++---
+ 9 files changed, 41 insertions(+), 18 deletions(-)
+
+diff --git a/src/calibrator.cpp b/src/calibrator.cpp
+index 403ae8e..ae5ea86 100644
+--- a/src/calibrator.cpp
++++ b/src/calibrator.cpp
+@@ -37,10 +37,11 @@ bool Calibrator::verbose = false;
+ Calibrator::Calibrator(const char* const device_name0, const XYinfo& axys0,
+ const int thr_misclick, const int thr_doubleclick,
+ const OutputType output_type0, const char* geometry0,
+- const bool use_timeout0)
++ const bool use_timeout0, const char* output_filename0)
+ : device_name(device_name0),
+ threshold_doubleclick(thr_doubleclick), threshold_misclick(thr_misclick),
+- output_type(output_type0), geometry(geometry0), use_timeout(use_timeout0)
++ output_type(output_type0), geometry(geometry0), use_timeout(use_timeout0),
++ output_filename(output_filename0)
+ {
+ old_axys = axys0;
+
+diff --git a/src/calibrator.hh b/src/calibrator.hh
+index 96cff2b..7d406b4 100644
+--- a/src/calibrator.hh
++++ b/src/calibrator.hh
+@@ -145,7 +145,8 @@ public:
+ const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO,
+ const char* geometry=0,
+- const bool use_timeout=1);
++ const bool use_timeout=1,
++ const char* output_filename = 0);
+
+ ~Calibrator() {}
+
+@@ -180,6 +181,10 @@ public:
+ const bool get_use_timeout() const
+ { return use_timeout; }
+
++ /// get output filename set at cmdline or NULL
++ const char* get_output_filename() const
++ { return output_filename; }
++
+ protected:
+ /// check whether the coordinates are along the respective axis
+ bool along_axis(int xy, int x0, int y0);
+@@ -230,6 +235,9 @@ protected:
+ const char* geometry;
+
+ const bool use_timeout;
++
++ // manually specified output filename
++ const char* output_filename;
+ };
+
+ // Interfance for a CalibratorTester
+diff --git a/src/calibrator/Evdev.cpp b/src/calibrator/Evdev.cpp
+index a370689..413e314 100644
+--- a/src/calibrator/Evdev.cpp
++++ b/src/calibrator/Evdev.cpp
+@@ -47,8 +47,9 @@ CalibratorEvdev::CalibratorEvdev(const char* const device_name0,
+ const int thr_doubleclick,
+ const OutputType output_type,
+ const char* geometry,
+- const bool use_timeout)
+- : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout)
++ const bool use_timeout,
++ const char* output_filename)
++ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout, output_filename)
+ {
+ // init
+ display = XOpenDisplay(NULL);
+@@ -166,8 +167,9 @@ CalibratorEvdev::CalibratorEvdev(const char* const device_name0,
+ const int thr_doubleclick,
+ const OutputType output_type,
+ const char* geometry,
+- const bool use_timeout)
+- : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry) { }
++ const bool use_timeout,
++ const char* output_filename)
++ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, output_filename) { }
+
+ // Destructor
+ CalibratorEvdev::~CalibratorEvdev () {
+diff --git a/src/calibrator/Evdev.hpp b/src/calibrator/Evdev.hpp
+index c586ba2..53e7277 100644
+--- a/src/calibrator/Evdev.hpp
++++ b/src/calibrator/Evdev.hpp
+@@ -47,7 +47,8 @@ protected:
+ const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO,
+ const char* geometry=0,
+- const bool use_timeout=false);
++ const bool use_timeout=false,
++ const char* output_filename = 0);
+
+ public:
+ CalibratorEvdev(const char* const device_name,
+@@ -57,7 +58,8 @@ public:
+ const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO,
+ const char* geometry=0,
+- const bool use_timeout=false);
++ const bool use_timeout=false,
++ const char* output_filename = 0);
+ ~CalibratorEvdev();
+
+ /// calculate and apply the calibration
+diff --git a/src/calibrator/Usbtouchscreen.cpp b/src/calibrator/Usbtouchscreen.cpp
+index c9fc20a..6ec71fd 100644
+--- a/src/calibrator/Usbtouchscreen.cpp
++++ b/src/calibrator/Usbtouchscreen.cpp
+@@ -48,8 +48,8 @@ static const char *p_flip_x = "flip_x";
+ static const char *p_flip_y = "flip_y";
+ static const char *p_swap_xy = "swap_xy";
+
+-CalibratorUsbtouchscreen::CalibratorUsbtouchscreen(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout)
+- : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout)
++CalibratorUsbtouchscreen::CalibratorUsbtouchscreen(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout, const char* output_filename)
++ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout, output_filename)
+ {
+ if (strcmp(device_name, "Usbtouchscreen") != 0)
+ throw WrongCalibratorException("Not a usbtouchscreen device");
+diff --git a/src/calibrator/Usbtouchscreen.hpp b/src/calibrator/Usbtouchscreen.hpp
+index 94473a3..4d84962 100644
+--- a/src/calibrator/Usbtouchscreen.hpp
++++ b/src/calibrator/Usbtouchscreen.hpp
+@@ -35,7 +35,7 @@ public:
+ CalibratorUsbtouchscreen(const char* const device_name, const XYinfo& axys,
+ const int thr_misclick=0, const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO, const char* geometry=0,
+- const bool use_timeout=false);
++ const bool use_timeout=false, const char* output_filename = 0);
+ ~CalibratorUsbtouchscreen();
+
+ virtual bool finish_data(const XYinfo new_axys);
+diff --git a/src/calibrator/XorgPrint.cpp b/src/calibrator/XorgPrint.cpp
+index 8e3a1b3..3dcb7ae 100644
+--- a/src/calibrator/XorgPrint.cpp
++++ b/src/calibrator/XorgPrint.cpp
+@@ -24,8 +24,8 @@
+
+ #include <cstdio>
+
+-CalibratorXorgPrint::CalibratorXorgPrint(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout)
+- : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout)
++CalibratorXorgPrint::CalibratorXorgPrint(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout, const char* output_filename)
++ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout, output_filename)
+ {
+ printf("Calibrating standard Xorg driver \"%s\"\n", device_name);
+ printf("\tcurrent calibration values: min_x=%d, max_x=%d and min_y=%d, max_y=%d\n",
+diff --git a/src/calibrator/XorgPrint.hpp b/src/calibrator/XorgPrint.hpp
+index 7afbd9f..0d7e4cf 100644
+--- a/src/calibrator/XorgPrint.hpp
++++ b/src/calibrator/XorgPrint.hpp
+@@ -35,7 +35,7 @@ public:
+ CalibratorXorgPrint(const char* const device_name, const XYinfo& axys,
+ const int thr_misclick=0, const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO, const char* geometry=0,
+- const bool use_timeout=false);
++ const bool use_timeout=false, const char* output_filename = 0);
+
+ virtual bool finish_data(const XYinfo new_axys);
+
+diff --git a/src/main_common.cpp b/src/main_common.cpp
+index f840e3d..efaa718 100644
+--- a/src/main_common.cpp
++++ b/src/main_common.cpp
+@@ -180,6 +180,7 @@ static void usage(char* cmd, unsigned thr_misclick)
+ fprintf(stderr, "\t--fake: emulate a fake device (for testing purposes)\n");
+ fprintf(stderr, "\t--geometry: manually provide the geometry (width and height) for the calibration window\n");
+ fprintf(stderr, "\t--no-timeout: turns off the timeout\n");
++ fprintf(stderr, "\t--output-filename: write calibration data to file (USB: override default /etc/modprobe.conf.local\n");
+ }
+
+ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+@@ -191,6 +192,7 @@ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+ XYinfo pre_axys;
+ const char* pre_device = NULL;
+ const char* geometry = NULL;
++ const char* output_filename = NULL;
+ unsigned thr_misclick = 15;
+ unsigned thr_doubleclick = 7;
+ OutputType output_type = OUTYPE_AUTO;
+@@ -289,6 +291,11 @@ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+ // Disable timeout
+ if (strcmp("--no-timeout", argv[i]) == 0) {
+ use_timeout = false;
++ } else
++
++ // Output file
++ if (strcmp("--output-filename", argv[i]) == 0) {
++ output_filename = argv[++i];
+ }
+
+ // unknown option
+@@ -363,7 +370,8 @@ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+ try {
+ // try Usbtouchscreen driver
+ return new CalibratorUsbtouchscreen(device_name, device_axys,
+- thr_misclick, thr_doubleclick, output_type, geometry, use_timeout);
++ thr_misclick, thr_doubleclick, output_type, geometry,
++ use_timeout, output_filename);
+
+ } catch(WrongCalibratorException& x) {
+ if (verbose)
+@@ -373,7 +381,8 @@ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+ try {
+ // next, try Evdev driver (with XID)
+ return new CalibratorEvdev(device_name, device_axys, device_id,
+- thr_misclick, thr_doubleclick, output_type, geometry, use_timeout);
++ thr_misclick, thr_doubleclick, output_type, geometry,
++ use_timeout, output_filename);
+
+ } catch(WrongCalibratorException& x) {
+ if (verbose)
+@@ -382,5 +391,6 @@ Calibrator* Calibrator::make_calibrator(int argc, char** argv)
+
+ // lastly, presume a standard Xorg driver (evtouch, mutouch, ...)
+ return new CalibratorXorgPrint(device_name, device_axys,
+- thr_misclick, thr_doubleclick, output_type, geometry, use_timeout);
++ thr_misclick, thr_doubleclick, output_type, geometry,
++ use_timeout, output_filename);
+ }
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch
new file mode 100644
index 0000000..0e30631
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch
@@ -0,0 +1,164 @@
+From 0428975e1c9152891aa4269afdc02cea8d916247 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 21 Jan 2013 16:11:16 +0100
+Subject: [PATCH 2/6] CalibratorEvdev: do write calibration results if
+ --output-filename was set
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator/Evdev.cpp | 105 ++++++++++++++++++++++++++++++++++++++-------
+ 1 files changed, 88 insertions(+), 17 deletions(-)
+
+diff --git a/src/calibrator/Evdev.cpp b/src/calibrator/Evdev.cpp
+index 413e314..651cab9 100644
+--- a/src/calibrator/Evdev.cpp
++++ b/src/calibrator/Evdev.cpp
+@@ -39,6 +39,9 @@
+ #define EXIT_FAILURE 0
+ #endif
+
++// XXX: we currently don't handle lines that are longer than this
++#define MAX_LINE_LEN 1024
++
+ // Constructor
+ CalibratorEvdev::CalibratorEvdev(const char* const device_name0,
+ const XYinfo& axys0,
+@@ -517,18 +520,41 @@ bool CalibratorEvdev::output_xorgconfd(const XYinfo new_axys)
+ if (not_sysfs_name)
+ sysfs_name = "!!Name_Of_TouchScreen!!";
+
++ if(output_filename == NULL || not_sysfs_name)
++ printf(" copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)\n");
++ else
++ printf(" writing xorg.conf calibration data to '%s'\n", output_filename);
++
+ // xorg.conf.d snippet
+- printf(" copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)\n");
+- printf("Section \"InputClass\"\n");
+- printf(" Identifier \"calibration\"\n");
+- printf(" MatchProduct \"%s\"\n", sysfs_name);
+- printf(" Option \"Calibration\" \"%d %d %d %d\"\n",
++ char line[MAX_LINE_LEN];
++ std::string outstr;
++
++ outstr += "Section \"InputClass\"\n";
++ outstr += " Identifier \"calibration\"\n";
++ sprintf(line, " MatchProduct \"%s\"\n", sysfs_name);
++ outstr += line;
++ sprintf(line, " Option \"Calibration\" \"%d %d %d %d\"\n",
+ new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
+- printf(" Option \"SwapAxes\" \"%d\"\n", new_axys.swap_xy);
+- printf("EndSection\n");
++ outstr += line;
++ sprintf(line, " Option \"SwapAxes\" \"%d\"\n", new_axys.swap_xy);
++ outstr += line;
++ outstr += "EndSection\n";
+
++ // console out
++ printf("%s", outstr.c_str());
+ if (not_sysfs_name)
+ printf("\nChange '%s' to your device's name in the snippet above.\n", sysfs_name);
++ // file out
++ else if(output_filename != NULL) {
++ FILE* fid = fopen(output_filename, "w");
++ if (fid == NULL) {
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", output_filename);
++ fprintf(stderr, "New calibration data NOT saved\n");
++ return false;
++ }
++ fprintf(fid, "%s", outstr.c_str());
++ fclose(fid);
++ }
+
+ return true;
+ }
+@@ -540,26 +566,71 @@ bool CalibratorEvdev::output_hal(const XYinfo new_axys)
+ if (not_sysfs_name)
+ sysfs_name = "!!Name_Of_TouchScreen!!";
+
+- // HAL policy output
+- printf(" copy the policy below into '/etc/hal/fdi/policy/touchscreen.fdi'\n\
+-<match key=\"info.product\" contains=\"%s\">\n\
+- <merge key=\"input.x11_options.calibration\" type=\"string\">%d %d %d %d</merge>\n"
+- , sysfs_name, new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
+- printf(" <merge key=\"input.x11_options.swapaxes\" type=\"string\">%d</merge>\n", new_axys.swap_xy);
+- printf("</match>\n");
++ if(output_filename == NULL || not_sysfs_name)
++ printf(" copy the policy below into '/etc/hal/fdi/policy/touchscreen.fdi'\n");
++ else
++ printf(" writing HAL calibration data to '%s'\n", output_filename);
+
++ // HAL policy output
++ char line[MAX_LINE_LEN];
++ std::string outstr;
++
++ sprintf(line, "<match key=\"info.product\" contains=\"%s\">\n", sysfs_name);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.calibration\" type=\"string\">%d %d %d %d</merge>\n",
++ new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.swapaxes\" type=\"string\">%d</merge>\n",
++ new_axys.swap_xy);
++ outstr += "</match>\n";
++ // console out
++ printf("%s", outstr.c_str());
+ if (not_sysfs_name)
+ printf("\nChange '%s' to your device's name in the config above.\n", sysfs_name);
++ // file out
++ else if(output_filename != NULL) {
++ FILE* fid = fopen(output_filename, "w");
++ if (fid == NULL) {
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", output_filename);
++ fprintf(stderr, "New calibration data NOT saved\n");
++ return false;
++ }
++ fprintf(fid, "%s", outstr.c_str());
++ fclose(fid);
++ }
+
+ return true;
+ }
+
+ bool CalibratorEvdev::output_xinput(const XYinfo new_axys)
+ {
++ if(output_filename == NULL)
++ printf(" Install the 'xinput' tool and copy the command(s) below in a script that starts with your X session\n");
++ else
++ printf(" writing calibration script to '%s'\n", output_filename);
++
+ // create startup script
+- printf(" Install the 'xinput' tool and copy the command(s) below in a script that starts with your X session\n");
+- printf(" xinput set-int-prop \"%s\" \"Evdev Axis Calibration\" 32 %d %d %d %d\n", device_name, new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
+- printf(" xinput set-int-prop \"%s\" \"Evdev Axes Swap\" 8 %d\n", device_name, new_axys.swap_xy);
++ char line[MAX_LINE_LEN];
++ std::string outstr;
++
++ sprintf(line, " xinput set-int-prop \"%s\" \"Evdev Axis Calibration\" 32 %d %d %d %d\n", device_name, new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
++ outstr += line;
++ sprintf(line, " xinput set-int-prop \"%s\" \"Evdev Axes Swap\" 8 %d\n", device_name, new_axys.swap_xy);
++ outstr += line;
++
++ // console out
++ printf("%s", outstr.c_str());
++ // file out
++ if(output_filename != NULL) {
++ FILE* fid = fopen(output_filename, "w");
++ if (fid == NULL) {
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", output_filename);
++ fprintf(stderr, "New calibration data NOT saved\n");
++ return false;
++ }
++ fprintf(fid, "%s", outstr.c_str());
++ fclose(fid);
++ }
+
+ return true;
+ }
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch
new file mode 100644
index 0000000..91447dc
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch
@@ -0,0 +1,156 @@
+From d275793fe68067e6fd625f028ae09bcb10aac899 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 21 Jan 2013 17:14:01 +0100
+Subject: [PATCH 3/6] CalibratorXorgPrint: do write calibration results if
+ --output-filename was set
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator/XorgPrint.cpp | 104 ++++++++++++++++++++++++++++++++---------
+ 1 files changed, 81 insertions(+), 23 deletions(-)
+
+diff --git a/src/calibrator/XorgPrint.cpp b/src/calibrator/XorgPrint.cpp
+index 3dcb7ae..c9c5c9f 100644
+--- a/src/calibrator/XorgPrint.cpp
++++ b/src/calibrator/XorgPrint.cpp
+@@ -24,6 +24,9 @@
+
+ #include <cstdio>
+
++// XXX: we currently don't handle lines that are longer than this
++#define MAX_LINE_LEN 1024
++
+ CalibratorXorgPrint::CalibratorXorgPrint(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout, const char* output_filename)
+ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout, output_filename)
+ {
+@@ -69,22 +72,50 @@ bool CalibratorXorgPrint::output_xorgconfd(const XYinfo new_axys)
+ if (not_sysfs_name)
+ sysfs_name = "!!Name_Of_TouchScreen!!";
+
++ if(output_filename == NULL || not_sysfs_name)
++ printf(" copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)\n");
++ else
++ printf(" writing calibration script to '%s'\n", output_filename);
++
+ // xorg.conf.d snippet
+- printf(" copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf' (/usr/share/X11/xorg.conf.d/ in some distro's)\n");
+- printf("Section \"InputClass\"\n");
+- printf(" Identifier \"calibration\"\n");
+- printf(" MatchProduct \"%s\"\n", sysfs_name);
+- printf(" Option \"MinX\" \"%d\"\n", new_axys.x.min);
+- printf(" Option \"MaxX\" \"%d\"\n", new_axys.x.max);
+- printf(" Option \"MinY\" \"%d\"\n", new_axys.y.min);
+- printf(" Option \"MaxY\" \"%d\"\n", new_axys.y.max);
+- printf(" Option \"SwapXY\" \"%d\" # unless it was already set to 1\n", new_axys.swap_xy);
+- printf(" Option \"InvertX\" \"%d\" # unless it was already set\n", new_axys.x.invert);
+- printf(" Option \"InvertY\" \"%d\" # unless it was already set\n", new_axys.y.invert);
+- printf("EndSection\n");
++ char line[MAX_LINE_LEN];
++ std::string outstr;
+
++ outstr += "Section \"InputClass\"\n";
++ outstr += " Identifier \"calibration\"\n";
++ sprintf(line, " MatchProduct \"%s\"\n", sysfs_name);
++ outstr += line;
++ sprintf(line, " Option \"MinX\" \"%d\"\n", new_axys.x.min);
++ outstr += line;
++ sprintf(line, " Option \"MaxX\" \"%d\"\n", new_axys.x.max);
++ outstr += line;
++ sprintf(line, " Option \"MinY\" \"%d\"\n", new_axys.y.min);
++ outstr += line;
++ sprintf(line, " Option \"MaxY\" \"%d\"\n", new_axys.y.max);
++ outstr += line;
++ sprintf(line, " Option \"SwapXY\" \"%d\" # unless it was already set to 1\n", new_axys.swap_xy);
++ outstr += line;
++ sprintf(line, " Option \"InvertX\" \"%d\" # unless it was already set\n", new_axys.x.invert);
++ outstr += line;
++ sprintf(line, " Option \"InvertY\" \"%d\" # unless it was already set\n", new_axys.y.invert);
++ outstr += line;
++ outstr += "EndSection\n";
++
++ // console out
++ printf("%s", outstr.c_str());
+ if (not_sysfs_name)
+ printf("\nChange '%s' to your device's name in the config above.\n", sysfs_name);
++ // file out
++ else if(output_filename != NULL) {
++ FILE* fid = fopen(output_filename, "w");
++ if (fid == NULL) {
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", output_filename);
++ fprintf(stderr, "New calibration data NOT saved\n");
++ return false;
++ }
++ fprintf(fid, "%s", outstr.c_str());
++ fclose(fid);
++ }
+
+ return true;
+ }
+@@ -96,21 +127,48 @@ bool CalibratorXorgPrint::output_hal(const XYinfo new_axys)
+ if (not_sysfs_name)
+ sysfs_name = "!!Name_Of_TouchScreen!!";
+
++ if(output_filename == NULL || not_sysfs_name)
++ printf(" copy the policy below into '/etc/hal/fdi/policy/touchscreen.fdi'\n");
++ else
++ printf(" writing HAL calibration data to '%s'\n", output_filename);
++
+ // HAL policy output
+- printf(" copy the policy below into '/etc/hal/fdi/policy/touchscreen.fdi'\n\
+-<match key=\"info.product\" contains=\"%s\">\n\
+- <merge key=\"input.x11_options.minx\" type=\"string\">%d</merge>\n\
+- <merge key=\"input.x11_options.maxx\" type=\"string\">%d</merge>\n\
+- <merge key=\"input.x11_options.miny\" type=\"string\">%d</merge>\n\
+- <merge key=\"input.x11_options.maxy\" type=\"string\">%d</merge>\n"
+- , sysfs_name, new_axys.x.min, new_axys.x.max, new_axys.y.min, new_axys.y.max);
+- printf(" <merge key=\"input.x11_options.swapxy\" type=\"string\">%d</merge>\n", new_axys.swap_xy);
+- printf(" <merge key=\"input.x11_options.invertx\" type=\"string\">%d</merge>\n", new_axys.x.invert);
+- printf(" <merge key=\"input.x11_options.inverty\" type=\"string\">%d</merge>\n", new_axys.y.invert);
+- printf("</match>\n");
++ char line[MAX_LINE_LEN];
++ std::string outstr;
++
++ sprintf(line, "<match key=\"info.product\" contains=\"%s\">\n", sysfs_name);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.minx\" type=\"string\">%d</merge>\n", new_axys.x.min);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.maxx\" type=\"string\">%d</merge>\n", new_axys.x.max);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.miny\" type=\"string\">%d</merge>\n", new_axys.y.min);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.maxy\" type=\"string\">%d</merge>\n", new_axys.y.max);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.swapxy\" type=\"string\">%d</merge>\n", new_axys.swap_xy);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.invertx\" type=\"string\">%d</merge>\n", new_axys.x.invert);
++ outstr += line;
++ sprintf(line, " <merge key=\"input.x11_options.inverty\" type=\"string\">%d</merge>\n", new_axys.y.invert);
++ outstr += line;
++ outstr += "</match>\n";
+
++ // console out
++ printf("%s", outstr.c_str());
+ if (not_sysfs_name)
+ printf("\nChange '%s' to your device's name in the config above.\n", sysfs_name);
++ // file out
++ else if(output_filename != NULL) {
++ FILE* fid = fopen(output_filename, "w");
++ if (fid == NULL) {
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", output_filename);
++ fprintf(stderr, "New calibration data NOT saved\n");
++ return false;
++ }
++ fprintf(fid, "%s", outstr.c_str());
++ fclose(fid);
++ }
+
+ return true;
+ }
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch
new file mode 100644
index 0000000..2dd2064
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch
@@ -0,0 +1,50 @@
+From fa47700129680bbd4fbb324dc1999b664dd4419a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 21 Jan 2013 16:37:35 +0100
+Subject: [PATCH 4/6] CalibratorUsbtouchscreen: overridde default file name
+ when setting --output-filename
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator/Usbtouchscreen.cpp | 11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/calibrator/Usbtouchscreen.cpp b/src/calibrator/Usbtouchscreen.cpp
+index 6ec71fd..2a1f09e 100644
+--- a/src/calibrator/Usbtouchscreen.cpp
++++ b/src/calibrator/Usbtouchscreen.cpp
+@@ -104,10 +104,11 @@ bool CalibratorUsbtouchscreen::finish_data(const XYinfo new_axys)
+ write_bool_parameter(p_swap_xy, new_axys.swap_xy);
+
+ // Read, then write calibration parameters to modprobe_conf_local,
+- // to keep the for the next boot
+- FILE *fid = fopen(modprobe_conf_local, "r");
++ // or the file set by --output-filename to keep the for the next boot
++ const char* filename = output_filename == NULL ? modprobe_conf_local : output_filename;
++ FILE *fid = fopen(filename, "r");
+ if (fid == NULL) {
+- fprintf(stderr, "Error: Can't open '%s' for reading. Make sure you have the necessary rights\n", modprobe_conf_local);
++ fprintf(stderr, "Error: Can't open '%s' for reading. Make sure you have the necessary rights\n", filename);
+ fprintf(stderr, "New calibration data NOT saved\n");
+ return false;
+ }
+@@ -135,9 +136,9 @@ bool CalibratorUsbtouchscreen::finish_data(const XYinfo new_axys)
+ p_flip_y, yesno(flip_y), p_swap_xy, yesno(new_axys.swap_xy));
+ new_contents += new_opt;
+
+- fid = fopen(modprobe_conf_local, "w");
++ fid = fopen(filename, "w");
+ if (fid == NULL) {
+- fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", modprobe_conf_local);
++ fprintf(stderr, "Error: Can't open '%s' for writing. Make sure you have the necessary rights\n", filename);
+ fprintf(stderr, "New calibration data NOT saved\n");
+ return false;
+ }
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch
new file mode 100644
index 0000000..2aa161d
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch
@@ -0,0 +1,64 @@
+From 2846eade2601e92d34d40c603988a14dcb7634ac Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Mon, 21 Jan 2013 17:32:11 +0100
+Subject: [PATCH 5/6] Make all Calibrator* destructors virtual to fix warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+warning was:
+
+main_x11.cpp: In function 'int main(int, char**)':
+main_x11.cpp:42:12: warning: deleting object of abstract class type 'Calibrator' which has non-virtual destructor will cause undefined behaviour [-Wdelete-non-virtual-dtor]calibrator/Usbtouchscreen.cpp: In member function 'void CalibratorUsbtouchscreen::read_int_parameter(const char*, int&)':
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator.hh | 2 +-
+ src/calibrator/Evdev.hpp | 2 +-
+ src/calibrator/Usbtouchscreen.hpp | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/calibrator.hh b/src/calibrator.hh
+index 7d406b4..3446b34 100644
+--- a/src/calibrator.hh
++++ b/src/calibrator.hh
+@@ -148,7 +148,7 @@ public:
+ const bool use_timeout=1,
+ const char* output_filename = 0);
+
+- ~Calibrator() {}
++ virtual ~Calibrator() {}
+
+ /// set the doubleclick treshold
+ void set_threshold_doubleclick(int t)
+diff --git a/src/calibrator/Evdev.hpp b/src/calibrator/Evdev.hpp
+index 53e7277..b243090 100644
+--- a/src/calibrator/Evdev.hpp
++++ b/src/calibrator/Evdev.hpp
+@@ -60,7 +60,7 @@ public:
+ const char* geometry=0,
+ const bool use_timeout=false,
+ const char* output_filename = 0);
+- ~CalibratorEvdev();
++ virtual ~CalibratorEvdev();
+
+ /// calculate and apply the calibration
+ virtual bool finish(int width, int height);
+diff --git a/src/calibrator/Usbtouchscreen.hpp b/src/calibrator/Usbtouchscreen.hpp
+index 4d84962..287e5dd 100644
+--- a/src/calibrator/Usbtouchscreen.hpp
++++ b/src/calibrator/Usbtouchscreen.hpp
+@@ -36,7 +36,7 @@ public:
+ const int thr_misclick=0, const int thr_doubleclick=0,
+ const OutputType output_type=OUTYPE_AUTO, const char* geometry=0,
+ const bool use_timeout=false, const char* output_filename = 0);
+- ~CalibratorUsbtouchscreen();
++ virtual ~CalibratorUsbtouchscreen();
+
+ virtual bool finish_data(const XYinfo new_axys);
+
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch
new file mode 100644
index 0000000..5d014cf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch
@@ -0,0 +1,77 @@
+From dd263d405a8ae109e1439c52dbabb55352d95bd0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 22 Jan 2013 08:35:20 +0100
+Subject: [PATCH 6/6] Set up buffer size for max line length only once in
+ calibrator.hh
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Submitted [https://github.com/tias/xinput_calibrator/pull/47]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ src/calibrator.hh | 3 +++
+ src/calibrator/Evdev.cpp | 3 ---
+ src/calibrator/Usbtouchscreen.cpp | 2 +-
+ src/calibrator/XorgPrint.cpp | 3 ---
+ 4 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/src/calibrator.hh b/src/calibrator.hh
+index 3446b34..e497bb6 100644
+--- a/src/calibrator.hh
++++ b/src/calibrator.hh
+@@ -30,6 +30,9 @@
+ #include <stdio.h>
+ #include <vector>
+
++// XXX: we currently don't handle lines that are longer than this
++#define MAX_LINE_LEN 1024
++
+ int xf86ScaleAxis(int Cx, int to_max, int to_min, int from_max, int from_min);
+ float scaleAxis(float Cx, int to_max, int to_min, int from_max, int from_min);
+
+diff --git a/src/calibrator/Evdev.cpp b/src/calibrator/Evdev.cpp
+index 651cab9..9a56475 100644
+--- a/src/calibrator/Evdev.cpp
++++ b/src/calibrator/Evdev.cpp
+@@ -39,9 +39,6 @@
+ #define EXIT_FAILURE 0
+ #endif
+
+-// XXX: we currently don't handle lines that are longer than this
+-#define MAX_LINE_LEN 1024
+-
+ // Constructor
+ CalibratorEvdev::CalibratorEvdev(const char* const device_name0,
+ const XYinfo& axys0,
+diff --git a/src/calibrator/Usbtouchscreen.cpp b/src/calibrator/Usbtouchscreen.cpp
+index 2a1f09e..713b815 100644
+--- a/src/calibrator/Usbtouchscreen.cpp
++++ b/src/calibrator/Usbtouchscreen.cpp
+@@ -114,7 +114,7 @@ bool CalibratorUsbtouchscreen::finish_data(const XYinfo new_axys)
+ }
+
+ std::string new_contents;
+- const int len = 1024; // XXX: we currently don't handle lines that are longer than this
++ const int len = MAX_LINE_LEN;
+ char line[len];
+ const char *opt = "options usbtouchscreen";
+ const int opt_len = strlen(opt);
+diff --git a/src/calibrator/XorgPrint.cpp b/src/calibrator/XorgPrint.cpp
+index c9c5c9f..582fa78 100644
+--- a/src/calibrator/XorgPrint.cpp
++++ b/src/calibrator/XorgPrint.cpp
+@@ -24,9 +24,6 @@
+
+ #include <cstdio>
+
+-// XXX: we currently don't handle lines that are longer than this
+-#define MAX_LINE_LEN 1024
+-
+ CalibratorXorgPrint::CalibratorXorgPrint(const char* const device_name0, const XYinfo& axys0, const int thr_misclick, const int thr_doubleclick, const OutputType output_type, const char* geometry, const bool use_timeout, const char* output_filename)
+ : Calibrator(device_name0, axys0, thr_misclick, thr_doubleclick, output_type, geometry, use_timeout, output_filename)
+ {
+--
+1.7.6.5
+
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index b71daeb..6781e86 100644
--- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
DEPENDS = "virtual/libx11 libxi"
PV = "0.7.5+git${SRCPV}"
-PR = "r1"
+PR = "r2"
inherit autotools
@@ -13,6 +13,12 @@ SRCREV = "e02de96acbe2fa5a57b0bda6821a053b1b123fd2"
SRC_URI = " \
git://github.com/tias/xinput_calibrator.git;protocol=git \
file://0001-Prevent-timeout-exit-when-no-timeout-is-used.patch \
+ file://0001-Add-parameter-output-filename-and-store-in-output_fi.patch \
+ file://0002-CalibratorEvdev-do-write-calibration-results-if-outp.patch \
+ file://0003-CalibratorXorgPrint-do-write-calibration-results-if-.patch \
+ file://0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch \
+ file://0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch \
+ file://0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch \
"
S = "${WORKDIR}/git"
--
1.7.6.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [meta-oe-meta-systemd 3/5] xinput-calibrator: rework
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 1/5] xinput-calibrator: update to latest git commit Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 2/5] xinput-calibrator: Add --output-filename to store calibration to file Andreas Müller
@ 2013-02-05 22:18 ` Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 4/5] pointercal-xinput: remove Andreas Müller
` (2 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
* poll xinput_calibrator to avoid touchscreen not yet detected by xserver
* handling for multiple touch devices prepared by storing device specific
calibration in ${sysconfdir}/X11/xorg.conf.d/99-<device-name>.conf. By using
conf files, xserver takes care and no call of xinput is required and the
rdependency can be removed (tested).
* udev/systemd: plug/play / script is only called for devices with touchscreen
connected
* fallback for non systemd systems with ${sysconfdir}/xdg/autostart. After
once stored this fallback also works for display-managers not using
${sysconfdir}/xdg/autostart. Since the script is called on every user session,
it is not called in an extra terminal window to avoid window flickering.
* follow oe-core's systemd switching upon DISTRO_FEATURES
* permanent recalibration for users with sufficient rights
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
.../99-xf86-xinput-calibrator.rules | 6 +
.../xinput-calibrator/xinput-calibrator@.service | 8 +
.../xinput_calibrator_pointercal2.sh | 151 ++++++++++++++++++++
.../xinput-calibrator/xinput-calibrator_git.bb | 39 ++++--
.../xinput-calibrator/xinput-calibrator.service | 11 --
.../xinput-calibrator_git.bbappend | 10 --
6 files changed, 195 insertions(+), 30 deletions(-)
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/99-xf86-xinput-calibrator.rules
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator@.service
create mode 100644 meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput_calibrator_pointercal2.sh
delete mode 100644 meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator.service
delete mode 100644 meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bbappend
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/99-xf86-xinput-calibrator.rules b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/99-xf86-xinput-calibrator.rules
new file mode 100644
index 0000000..d25a849
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/99-xf86-xinput-calibrator.rules
@@ -0,0 +1,6 @@
+ACTION!="add", GOTO=xinput_calibrator_end
+
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", TAG+="systemd", ENV{SYSTEMD_WANTS}="xinput-calibrator@%k.service"
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", TAG+="systemd", ENV{SYSTEMD_WANTS}="xinput-calibrator@%k.service"
+
+LABEL="xinput_calibrator_end"
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator@.service b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator@.service
new file mode 100644
index 0000000..839d868
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator@.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Xinput-calibration for %I
+After=graphical.target
+
+[Service]
+Type=simple
+TimeoutSec=0
+ExecStart=/bin/sh -c "exec /usr/bin/xinput_calibrator_pointercal2.sh %I 1>>/var/log/xinput-calibration.log 2>&1"
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput_calibrator_pointercal2.sh b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput_calibrator_pointercal2.sh
new file mode 100644
index 0000000..0f24ba4
--- /dev/null
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput_calibrator_pointercal2.sh
@@ -0,0 +1,151 @@
+#!/bin/sh
+###############################################################################
+#
+# Script to make the changes permanent. For each device a single configuration
+# is stored in /etc/X11/xorg.conf.d/
+#
+# The first parameter is either
+# - the the device name in sysfs e.g 'event0' (when called from systemd) - or
+# - 'xdg-autostart' when called from /etc/xdg/autostart/*.desktop - or
+# - empty when called for manual recalibration
+#
+# initial version by Andreas Müller <schnitzeltony@googlemail.com>, 2013-02-05
+#
+###############################################################################
+
+
+# Uncomment the following line to reduce log output
+#debug='false &&'
+
+# xserver might not be up yet or has yet not detected touchsreen device yet.
+# To work around we try several times. If xserver+device are not up within
+# <max_try_systemd>seconds something is wrong
+max_try_systemd=30
+
+# xserver might not have detected devices yet. To work around wait for
+# <max_delay_autostart>seconds
+max_delay_autostart=10
+
+
+BINARY='xinput_calibrator'
+CALFILE=
+TOUCHNAME=
+CMDOPTION=
+
+
+set_device_vars() {
+ DEVICEID=`echo $TOUCHNAME | tr -s ' -/\\|\t\n\r' '_'`
+ CALFILE="/etc/X11/xorg.conf.d/99-$DEVICEID.conf"
+ CMDOPTION="--output-filename $CALFILE"
+}
+
+
+extract_next_dev() {
+ DEVICENO="$((DEVICENO+1))"
+ ENDPOS="$((DEVICENO*2))"
+ TOUCHNAME=`echo $DEVICELIST | cut -s -d'"' -f$ENDPOS`
+}
+
+
+if [ x$1 != x ]; then
+ # called by systemd for a specific device - no recalibration
+ if [ x$1 != xxdg-autostart ]; then
+ $debug echo "----- $0 started by systemd for device $1 -----"
+
+ # TBD?: unique ID for multiple touchscreens of same type
+ # TBD?: DISPLAY != default
+ export DISPLAY=:0
+ TOUCHNAME=`cat /sys/class/input/$1/device/name`
+ $debug echo "Device: '$TOUCHNAME'"
+ set_device_vars
+ $debug echo "Checking for stored calibration in $CALFILE"
+ if grep "\"$TOUCHNAME\"" $CALFILE ; then
+ echo "Using calibration data stored in $CALFILE"
+ exit 0
+ fi
+ # called by: /etc/xdg/autostart/*.desktop check all devices - no recalibration
+ else
+ $debug echo "----- $0 started by autostart ----- "
+ $debug echo `date -u` ": delay ${max_delay_autostart}s ..."
+ sleep $max_delay_autostart
+
+ DEVICELIST=`$BINARY --list`
+ $debug $BINARY --list
+ # no devices?
+ if [ "x`echo $DEVICELIST | grep Device`" = "x" ]; then
+ exit 0
+ fi
+ DEVICECOUNT=`$BINARY --list | wc -l`
+ # for multiple devices the first uncalibrated is calibrated (TBD?)
+ DEVICENO=0
+ while [ "$DEVICENO" -ne "$DEVICECOUNT" ]; do
+ extract_next_dev
+ set_device_vars
+ $debug echo "Checking for stored calibration in $CALFILE"
+ if grep "\"$TOUCHNAME\"" $CALFILE ; then
+ $debug echo "Using calibration data stored in $CALFILE"
+ TOUCHNAME=
+ else
+ $debug echo "No calibration data found for '$TOUCHNAME'"
+ break
+ fi
+ done
+ if [ "x$TOUCHNAME" = "x" ]; then
+ echo 'All devices calibrated - exiting.'
+ exit 0
+ fi
+ fi
+# called manual: check all available devices - force recalibration
+else
+ echo "----- $0 started manually -----"
+ echo "auto detect touchscreen devices..."
+ # we are in a terminal so max output below is OK
+ debug=
+ DEVICELIST=`$BINARY --list`
+ $BINARY --list
+ # no devices?
+ if [ "x`echo $DEVICELIST | grep Device`" = "x" ]; then
+ exit 0
+ fi
+ DEVICECOUNT=`$BINARY --list | wc -l`
+ DEVICENO=0
+ # one device
+ if [ "$DEVICECOUNT" -eq "1" ]; then
+ extract_next_dev
+ # multiple devices
+ else
+ echo 'Multiple devices were found. Select the one to calibrate:'
+ while [ "$DEVICENO" -ne "$DEVICECOUNT" ]; do
+ extract_next_dev
+ echo -n "Calibrate '$TOUCHNAME' <y>? "
+ read YESNO
+ if [ "x$YESNO" = "xy" ]; then
+ break
+ else
+ TOUCHNAME=
+ fi
+ done
+ if [ "x$TOUCHNAME" = "x" ]; then
+ echo 'No device selected - exiting without calibration.'
+ exit 0
+ fi
+ fi
+ set_device_vars
+fi
+
+
+# wait for xserver to calibrate
+i=1
+while [ "$i" -ne "$max_try_systemd" ]; do
+ $debug echo `date -u` ": starting calibration"
+ $BINARY --device "$TOUCHNAME" --no-timeout --output-type xorg.conf.d $CMDOPTION
+ if [ $? = 0 ]; then
+ exit 0
+ fi
+ sleep 1
+ i="$((i+1))"
+done
+
+# when reaching here something went wrong
+echo "Could not calibrate '$TOUCHNAME'"
+exit 1
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 6781e86..199ee34 100644
--- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
DEPENDS = "virtual/libx11 libxi"
PV = "0.7.5+git${SRCPV}"
-PR = "r2"
+PR = "r3"
inherit autotools
@@ -19,6 +19,9 @@ SRC_URI = " \
file://0004-CalibratorUsbtouchscreen-overridde-default-file-name.patch \
file://0005-Make-all-Calibrator-destructors-virtual-to-fix-warni.patch \
file://0006-Set-up-buffer-size-for-max-line-length-only-once-in-.patch \
+ file://99-xf86-xinput-calibrator.rules \
+ file://xinput-calibrator@.service \
+ file://xinput_calibrator_pointercal2.sh \
"
S = "${WORKDIR}/git"
@@ -27,14 +30,32 @@ S = "${WORKDIR}/git"
EXTRA_OECONF += "--with-gui=x11"
do_install_append() {
- install -d ${D}${bindir}
- install -m 0755 scripts/xinput_calibrator_pointercal.sh ${D}${bindir}/xinput_calibrator_once.sh
-
- install -d ${D}${sysconfdir}/xdg/autostart
- sed -i -e 's,^Exec=.*,Exec=${bindir}/xinput_calibrator_once.sh,' scripts/xinput_calibrator.desktop
- install -m 0644 scripts/xinput_calibrator.desktop ${D}${sysconfdir}/xdg/autostart
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/xinput_calibrator_pointercal2.sh ${D}${bindir}
+ install -d ${D}/${sysconfdir}/X11/xorg.conf.d
+
+ # use our script to make calibration permanent (sufficiont rights assumed)
+ sed -i -e 's,^Exec=.*,Exec=${base_bindir}/sh -c '\''${bindir}/xinput_calibrator_pointercal2.sh; cat'\'',' \
+ ${D}${datadir}/applications/xinput_calibrator.desktop
+
+ # udev/systemd start?
+ if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/xinput-calibrator@.service ${D}${systemd_unitdir}/system
+ install -d ${D}${base_libdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/99-xf86-xinput-calibrator.rules ${D}${base_libdir}/udev/rules.d
+ # ${sysconfdir}/xdg/autostart?
+ else
+ install -d ${D}${sysconfdir}/xdg/autostart
+ install -m 0644 ${D}${datadir}/applications/xinput_calibrator.desktop ${D}${sysconfdir}/xdg/autostart
+ # use our script to make calibration permanent (sufficiont rights assumed) / not in Terminal
+ # /var/log is not accessible for all users so use user's home
+ sed -i -e 's,^Exec=.*,Exec=${base_bindir}/sh -c '\''${bindir}/xinput_calibrator_pointercal2.sh xdg-autostart 1>>$HOME/xinput-calibration.log 2>\&1'\'',' \
+ -e 's,^Terminal=true,Terminal=false,' \
+ ${D}${sysconfdir}/xdg/autostart/xinput_calibrator.desktop
+ fi
}
-FILES_${PN} += "${sysconfdir}/xdg/autostart"
-RDEPENDS_${PN} = "xinput xterm"
+FILES_${PN} += "${sysconfdir}/xdg/autostart ${systemd_unitdir}/system"
+RDEPENDS_${PN} = "xterm"
RRECOMMENDS_${PN} = "pointercal-xinput"
diff --git a/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator.service b/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator.service
deleted file mode 100644
index 2301876..0000000
--- a/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator/xinput-calibrator.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Loads xinput calibration data
-ConditionPathExists=/etc/pointercal.xinput
-Requires=display-manager.service
-After=display-manager.service
-
-[Service]
-ExecStart=/usr/bin/xinput_calibrator_once.sh
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bbappend b/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bbappend
deleted file mode 100644
index 5bc5bc3..0000000
--- a/meta-systemd/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bbappend
+++ /dev/null
@@ -1,10 +0,0 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-
-PRINC := "${@int(PRINC) + 2}"
-
-inherit systemd
-
-SRC_URI += "file://xinput-calibrator.service"
-
-SYSTEMD_PACKAGES = "${PN}-systemd"
-SYSTEMD_SERVICE = "${PN}.service"
--
1.7.6.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
` (2 preceding siblings ...)
2013-02-05 22:18 ` [meta-oe-meta-systemd 3/5] xinput-calibrator: rework Andreas Müller
@ 2013-02-05 22:18 ` Andreas Müller
2013-02-06 14:48 ` Martin Jansa
2013-02-07 10:01 ` Koen Kooi
2013-02-05 22:18 ` [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm Andreas Müller
2013-02-07 10:06 ` [meta-oe-meta-systemd 0/5] xinput-calibrator rework Koen Kooi
5 siblings, 2 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf. After
this is accepted patches to layers appending pointercal-xinput will be send.
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
.../pointercal-xinput/pointercal.xinput | 1 -
.../xinput-calibrator/pointercal-xinput_0.0.bb | 19 -------------------
.../xinput-calibrator/xinput-calibrator_git.bb | 3 +--
3 files changed, 1 insertions(+), 22 deletions(-)
delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput b/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
deleted file mode 100644
index 9633fc5..0000000
--- a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
+++ /dev/null
@@ -1 +0,0 @@
-# replace with valid machine specific pointercal.xinput
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb b/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
deleted file mode 100644
index 9b68d54..0000000
--- a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Touchscreen calibration data from xinput-calibrator"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-PR = "r4"
-
-SRC_URI = "file://pointercal.xinput"
-S = "${WORKDIR}"
-
-do_install() {
- # Only install file if it has a contents
- if [ -s ${S}/pointercal.xinput ]; then
- install -d ${D}${sysconfdir}/
- install -m 0644 ${S}/pointercal.xinput ${D}${sysconfdir}/
- fi
-}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-CONFFILES_${PN} = "${sysconfdir}/pointercal.xinput"
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 199ee34..8ef774b 100644
--- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
DEPENDS = "virtual/libx11 libxi"
PV = "0.7.5+git${SRCPV}"
-PR = "r3"
+PR = "r4"
inherit autotools
@@ -58,4 +58,3 @@ do_install_append() {
FILES_${PN} += "${sysconfdir}/xdg/autostart ${systemd_unitdir}/system"
RDEPENDS_${PN} = "xterm"
-RRECOMMENDS_${PN} = "pointercal-xinput"
--
1.7.6.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
` (3 preceding siblings ...)
2013-02-05 22:18 ` [meta-oe-meta-systemd 4/5] pointercal-xinput: remove Andreas Müller
@ 2013-02-05 22:18 ` Andreas Müller
2013-02-07 10:08 ` Koen Kooi
2013-02-07 10:06 ` [meta-oe-meta-systemd 0/5] xinput-calibrator rework Koen Kooi
5 siblings, 1 reply; 16+ messages in thread
From: Andreas Müller @ 2013-02-05 22:18 UTC (permalink / raw)
To: openembedded-devel
This does not break automatic calibration (at first start or plugin of new
device). For manual recalibration we assume a terminal is installed and avoid
multiple terminals for most images.
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
.../xinput-calibrator/xinput-calibrator_git.bb | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
index 8ef774b..d2c40e2 100644
--- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
+++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
DEPENDS = "virtual/libx11 libxi"
PV = "0.7.5+git${SRCPV}"
-PR = "r4"
+PR = "r5"
inherit autotools
@@ -57,4 +57,3 @@ do_install_append() {
}
FILES_${PN} += "${sysconfdir}/xdg/autostart ${systemd_unitdir}/system"
-RDEPENDS_${PN} = "xterm"
--
1.7.6.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-05 22:18 ` [meta-oe-meta-systemd 4/5] pointercal-xinput: remove Andreas Müller
@ 2013-02-06 14:48 ` Martin Jansa
2013-02-06 15:12 ` Andreas Müller
2013-02-07 10:01 ` Koen Kooi
1 sibling, 1 reply; 16+ messages in thread
From: Martin Jansa @ 2013-02-06 14:48 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 3435 bytes --]
On Tue, Feb 05, 2013 at 11:18:42PM +0100, Andreas Müller wrote:
> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf. After
So the plan to replace pointercal-xinput in BSP layers
is to convert pointercal.xinput files to 99-<device>.conf files provided
by xserver-xf86-conf bbappend?
And do you have some script to convert them or do you convert them
manually?
Regards,
> this is accepted patches to layers appending pointercal-xinput will be send.
>
> Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
> ---
> .../pointercal-xinput/pointercal.xinput | 1 -
> .../xinput-calibrator/pointercal-xinput_0.0.bb | 19 -------------------
> .../xinput-calibrator/xinput-calibrator_git.bb | 3 +--
> 3 files changed, 1 insertions(+), 22 deletions(-)
> delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
> delete mode 100644 meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
>
> diff --git a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput b/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
> deleted file mode 100644
> index 9633fc5..0000000
> --- a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput/pointercal.xinput
> +++ /dev/null
> @@ -1 +0,0 @@
> -# replace with valid machine specific pointercal.xinput
> diff --git a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb b/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
> deleted file mode 100644
> index 9b68d54..0000000
> --- a/meta-oe/recipes-graphics/xinput-calibrator/pointercal-xinput_0.0.bb
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -DESCRIPTION = "Touchscreen calibration data from xinput-calibrator"
> -LICENSE = "MIT"
> -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> -
> -PR = "r4"
> -
> -SRC_URI = "file://pointercal.xinput"
> -S = "${WORKDIR}"
> -
> -do_install() {
> - # Only install file if it has a contents
> - if [ -s ${S}/pointercal.xinput ]; then
> - install -d ${D}${sysconfdir}/
> - install -m 0644 ${S}/pointercal.xinput ${D}${sysconfdir}/
> - fi
> -}
> -
> -PACKAGE_ARCH = "${MACHINE_ARCH}"
> -CONFFILES_${PN} = "${sysconfdir}/pointercal.xinput"
> diff --git a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
> index 199ee34..8ef774b 100644
> --- a/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
> +++ b/meta-oe/recipes-graphics/xinput-calibrator/xinput-calibrator_git.bb
> @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://src/calibrator.cpp;endline=22;md5=1bcba08f67cdb56f340
> DEPENDS = "virtual/libx11 libxi"
>
> PV = "0.7.5+git${SRCPV}"
> -PR = "r3"
> +PR = "r4"
>
> inherit autotools
>
> @@ -58,4 +58,3 @@ do_install_append() {
>
> FILES_${PN} += "${sysconfdir}/xdg/autostart ${systemd_unitdir}/system"
> RDEPENDS_${PN} = "xterm"
> -RRECOMMENDS_${PN} = "pointercal-xinput"
> --
> 1.7.6.5
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-06 14:48 ` Martin Jansa
@ 2013-02-06 15:12 ` Andreas Müller
2013-02-06 15:25 ` Martin Jansa
0 siblings, 1 reply; 16+ messages in thread
From: Andreas Müller @ 2013-02-06 15:12 UTC (permalink / raw)
To: openembedded-devel
On Wed, Feb 6, 2013 at 3:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> On Tue, Feb 05, 2013 at 11:18:42PM +0100, Andreas Müller wrote:
>> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf. After
>
> So the plan to replace pointercal-xinput in BSP layers
> is to convert pointercal.xinput files to 99-<device>.conf files provided
> by xserver-xf86-conf bbappend?
I would have appended it to xinput-calibrator because that's where the
configuration files are used. I can put them also to xserver-xf86-conf
bbappend - have no strong opinion here.
>
> And do you have some script to convert them or do you convert them
> manually?
>
I wanted to convert them manually but a script is more reliable - will
do that next week.
Andreas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-06 15:12 ` Andreas Müller
@ 2013-02-06 15:25 ` Martin Jansa
2013-02-06 15:45 ` Andreas Müller
0 siblings, 1 reply; 16+ messages in thread
From: Martin Jansa @ 2013-02-06 15:25 UTC (permalink / raw)
To: openembedded-devel
[-- Attachment #1: Type: text/plain, Size: 1437 bytes --]
On Wed, Feb 06, 2013 at 04:12:50PM +0100, Andreas Müller wrote:
> On Wed, Feb 6, 2013 at 3:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> > On Tue, Feb 05, 2013 at 11:18:42PM +0100, Andreas Müller wrote:
> >> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf. After
> >
> > So the plan to replace pointercal-xinput in BSP layers
> > is to convert pointercal.xinput files to 99-<device>.conf files provided
> > by xserver-xf86-conf bbappend?
> I would have appended it to xinput-calibrator because that's where the
> configuration files are used. I can put them also to xserver-xf86-conf
> bbappend - have no strong opinion here.
xinput-calibrator does not need to be MACHINE_ARCH, that's why they were
in separate pointercal-xinput before.
xserver-xf86-config on other hand is usually MACHINE_ARCH so it would be
better to add them there.
Or create new recipe for them and RDEPEND it from xinput-calibrator...
> > And do you have some script to convert them or do you convert them
> > manually?
> >
> I wanted to convert them manually but a script is more reliable - will
> do that next week.
>
> Andreas
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-06 15:25 ` Martin Jansa
@ 2013-02-06 15:45 ` Andreas Müller
0 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-06 15:45 UTC (permalink / raw)
To: openembedded-devel
On Wed, Feb 6, 2013 at 4:25 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
> On Wed, Feb 06, 2013 at 04:12:50PM +0100, Andreas Müller wrote:
>> On Wed, Feb 6, 2013 at 3:48 PM, Martin Jansa <martin.jansa@gmail.com> wrote:
>> > On Tue, Feb 05, 2013 at 11:18:42PM +0100, Andreas Müller wrote:
>> >> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf. After
>> >
>> > So the plan to replace pointercal-xinput in BSP layers
>> > is to convert pointercal.xinput files to 99-<device>.conf files provided
>> > by xserver-xf86-conf bbappend?
>> I would have appended it to xinput-calibrator because that's where the
>> configuration files are used. I can put them also to xserver-xf86-conf
>> bbappend - have no strong opinion here.
>
> xinput-calibrator does not need to be MACHINE_ARCH, that's why they were
> in separate pointercal-xinput before.
>
> xserver-xf86-config on other hand is usually MACHINE_ARCH so it would be
> better to add them there.
>
> Or create new recipe for them and RDEPEND it from xinput-calibrator...
Or don't remove pointercal-xinput :)
Andreas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-05 22:18 ` [meta-oe-meta-systemd 4/5] pointercal-xinput: remove Andreas Müller
2013-02-06 14:48 ` Martin Jansa
@ 2013-02-07 10:01 ` Koen Kooi
2013-02-08 22:11 ` Andreas Müller
1 sibling, 1 reply; 16+ messages in thread
From: Koen Kooi @ 2013-02-07 10:01 UTC (permalink / raw)
To: openembedded-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Op 05-02-13 23:18, Andreas Müller schreef:
> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf.
> After this is accepted patches to layers appending pointercal-xinput will
> be send.
How does this work with board where you can plug in different touchscreen
(like beaglebone) or difference touchscreen controllers (beagleboard, olimex
allwinner boards, etc)?
regards,
Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFRE3tvMkyGM64RGpERAiSbAJ9lhIi1jSmhhM9UIePDIzICyQlTLQCfWgyi
oh3uluQd0wpW/61WheXTrz4=
=FYL8
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 0/5] xinput-calibrator rework
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
` (4 preceding siblings ...)
2013-02-05 22:18 ` [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm Andreas Müller
@ 2013-02-07 10:06 ` Koen Kooi
2013-02-08 22:10 ` Andreas Müller
5 siblings, 1 reply; 16+ messages in thread
From: Koen Kooi @ 2013-02-07 10:06 UTC (permalink / raw)
To: openembedded-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Op 05-02-13 23:18, Andreas Müller schreef:
> * Implemented are 3 modes of invocation: 1. udev/systemd 2.
> /etc/xdg/autostart 3. manual 1/2 are selected upon DISTRO_FEATURES
> containing systemd or not
>
> * The calibration is stored in
> /etc/X11/xorg.conf.d/99-<name-of-touchscreen>.conf Herby support for
> multiple touchsceen devices is prepared.
>
> * The script detects upon parameter information how it was called and
> waits for xserver to come up / detect connected touchsceen devices. If no
> matching calibration file is found, the xinput_calibrator is called for
> this device. For systemd invocation the default display is choosen.
>
> * For manual invocation and multiple touchscreen devices attached, the
> operator can select which device to calibrate interactively.
>
> * Multiple touchscreen support is prepared - the following open issues
> are known: * Multiple touchscreens with same device name will get same
> calibration values. An unique device identifier could not be found yet. *
> systemd startup with multiple device cause multiple instances of
> xinput_calibrator being started without information for which device the
> calibration is performed.
>
> * Many many tests were performed: 2 automatic invocation types * (1st +
> 2nd startup) * (0, 1, 2 touchscreens)
>
> * Other layers need alignment for pointercal removement. If accepted I
> can take care (this is NOT an extortion :)
At FOSDEM I found out that the Tias wearing the FOSDEM organization hoodie
is actually the same Tias who maintains xinput-calibrator. Long story short:
we should send all out patches upstream and he'll have a look at them. He is
a big fan of the xorg conf snippet that this patchset introduces.
In the long term I think we'll need to see how well the 'tagging' of the
evdev itself with the calibration value is working. I looked at it a few
years ago and it didn't work for our usecases, but that might have changed.
THat should make non-X apps work as well (e.g. QT/e).
regards,
Koen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFRE3y1MkyGM64RGpERAnfeAKC7FF+MGpDJXCr3hZ9f4HHbQUi3YgCgrrmZ
5UqAi0nnN/7uZ2X0v2x6acU=
=iaR5
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm
2013-02-05 22:18 ` [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm Andreas Müller
@ 2013-02-07 10:08 ` Koen Kooi
0 siblings, 0 replies; 16+ messages in thread
From: Koen Kooi @ 2013-02-07 10:08 UTC (permalink / raw)
To: openembedded-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Op 05-02-13 23:18, Andreas Müller schreef:
> This does not break automatic calibration (at first start or plugin of
> new device). For manual recalibration we assume a terminal is installed
> and avoid multiple terminals for most images.
I ran into this a while ago, if you use GNOME, it will use xdg-utils to
launch the terminal, which wasn't installed in my system. I'm not sure where
I'd need to add the xdg-utils RDEPENDS to make it all work properly, any
suggestions?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFRE30UMkyGM64RGpERAqH/AJwOoKZTDX7el9o022dYnnETU5mUKACdFJ0X
HbT3Dk3QSbUzt4AoxskglvQ=
=aBd+
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 0/5] xinput-calibrator rework
2013-02-07 10:06 ` [meta-oe-meta-systemd 0/5] xinput-calibrator rework Koen Kooi
@ 2013-02-08 22:10 ` Andreas Müller
2013-02-14 9:41 ` Andreas Müller
0 siblings, 1 reply; 16+ messages in thread
From: Andreas Müller @ 2013-02-08 22:10 UTC (permalink / raw)
To: openembedded-devel
On Thu, Feb 7, 2013 at 11:06 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Op 05-02-13 23:18, Andreas Müller schreef:
>> * Implemented are 3 modes of invocation: 1. udev/systemd 2.
>> /etc/xdg/autostart 3. manual 1/2 are selected upon DISTRO_FEATURES
>> containing systemd or not
>>
>> * The calibration is stored in
>> /etc/X11/xorg.conf.d/99-<name-of-touchscreen>.conf Herby support for
>> multiple touchsceen devices is prepared.
>>
>> * The script detects upon parameter information how it was called and
>> waits for xserver to come up / detect connected touchsceen devices. If no
>> matching calibration file is found, the xinput_calibrator is called for
>> this device. For systemd invocation the default display is choosen.
>>
>> * For manual invocation and multiple touchscreen devices attached, the
>> operator can select which device to calibrate interactively.
>>
>> * Multiple touchscreen support is prepared - the following open issues
>> are known: * Multiple touchscreens with same device name will get same
>> calibration values. An unique device identifier could not be found yet. *
>> systemd startup with multiple device cause multiple instances of
>> xinput_calibrator being started without information for which device the
>> calibration is performed.
>>
>> * Many many tests were performed: 2 automatic invocation types * (1st +
>> 2nd startup) * (0, 1, 2 touchscreens)
>>
>> * Other layers need alignment for pointercal removement. If accepted I
>> can take care (this is NOT an extortion :)
>
> At FOSDEM I found out that the Tias wearing the FOSDEM organization hoodie
> is actually the same Tias who maintains xinput-calibrator. Long story short:
> we should send all out patches upstream and he'll have a look at them. He is
> a big fan of the xorg conf snippet that this patchset introduces.
I will append the script/udev-rule/systemd service to the patchset.
With the systemd/udev stuff I would like to wait a bit until our users
have collected experience. After sending this series I saw that on
some images at first start xinput-calibrator is hidden by the greeter
application of dm. Up to now I did not yet find a good way to have
xinput_calibrator 'always on top'.
Andreas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 4/5] pointercal-xinput: remove
2013-02-07 10:01 ` Koen Kooi
@ 2013-02-08 22:11 ` Andreas Müller
0 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-08 22:11 UTC (permalink / raw)
To: openembedded-devel
On Thu, Feb 7, 2013 at 11:01 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Op 05-02-13 23:18, Andreas Müller schreef:
>> Calibration values are stored now in /etc/xorg.conf.d/99-<device>.conf.
>> After this is accepted patches to layers appending pointercal-xinput will
>> be send.
>
> How does this work with board where you can plug in different touchscreen
> (like beaglebone) or difference touchscreen controllers (beagleboard, olimex
> allwinner boards, etc)?
>
Each device gets an conf-file named by the name of the device. An
example file I took from my gumstix:
Section "InputClass"
Identifier "calibration"
MatchProduct "ADS7846 Touchscreen"
Option "Calibration" "96 3935 3591 98"
Option "SwapAxes" "0"
EndSection
For devices with different name it works fine. I have no solution yet
for connecting multiple touchscreen devices of same device name -
similar to your use-case connecting different touchscreens on same
controller. There a manual recalibration has to be started which now
stores the data persistent (if the operator has the right to write to
/etc/X11/xorg.conf.d).
Andreas
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [meta-oe-meta-systemd 0/5] xinput-calibrator rework
2013-02-08 22:10 ` Andreas Müller
@ 2013-02-14 9:41 ` Andreas Müller
0 siblings, 0 replies; 16+ messages in thread
From: Andreas Müller @ 2013-02-14 9:41 UTC (permalink / raw)
To: openembedded-devel; +Cc: koen, tias
On Fri, Feb 8, 2013 at 11:10 PM, Andreas Müller
<schnitzeltony@googlemail.com> wrote:
> On Thu, Feb 7, 2013 at 11:06 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Op 05-02-13 23:18, Andreas Müller schreef:
>>> * Implemented are 3 modes of invocation: 1. udev/systemd 2.
>>> /etc/xdg/autostart 3. manual 1/2 are selected upon DISTRO_FEATURES
>>> containing systemd or not
>>>
>>> * The calibration is stored in
>>> /etc/X11/xorg.conf.d/99-<name-of-touchscreen>.conf Herby support for
>>> multiple touchsceen devices is prepared.
>>>
>>> * The script detects upon parameter information how it was called and
>>> waits for xserver to come up / detect connected touchsceen devices. If no
>>> matching calibration file is found, the xinput_calibrator is called for
>>> this device. For systemd invocation the default display is choosen.
>>>
>>> * For manual invocation and multiple touchscreen devices attached, the
>>> operator can select which device to calibrate interactively.
>>>
>>> * Multiple touchscreen support is prepared - the following open issues
>>> are known: * Multiple touchscreens with same device name will get same
>>> calibration values. An unique device identifier could not be found yet. *
>>> systemd startup with multiple device cause multiple instances of
>>> xinput_calibrator being started without information for which device the
>>> calibration is performed.
>>>
>>> * Many many tests were performed: 2 automatic invocation types * (1st +
>>> 2nd startup) * (0, 1, 2 touchscreens)
>>>
>>> * Other layers need alignment for pointercal removement. If accepted I
>>> can take care (this is NOT an extortion :)
>>
>> At FOSDEM I found out that the Tias wearing the FOSDEM organization hoodie
>> is actually the same Tias who maintains xinput-calibrator. Long story short:
>> we should send all out patches upstream and he'll have a look at them. He is
>> a big fan of the xorg conf snippet that this patchset introduces.
> I will append the script/udev-rule/systemd service to the patchset.
> With the systemd/udev stuff I would like to wait a bit until our users
> have collected experience. After sending this series I saw that on
> some images at first start xinput-calibrator is hidden by the greeter
> application of dm. Up to now I did not yet find a good way to have
> xinput_calibrator 'always on top'.
>
> Andreas
After using this solution for a while I see the following issues:
1. User rights: Currently only users with write permission on
/etc/X11/xorg.conf.d/ can make the calibration permanent. This can be
avoided by a single calibration file for all devices which is owned by
a new group 'touchcal'. Nice side effect: A single file reduces the
modifications on pointercal-xinput (for shipping default calibration
values).
2. udev/systemd invocation: On some of my images the display manager's
greeter starts after touchscreen_calibration and thereby hides it.
Since systemd cannot help me here, I think about a workaround like
this: If xinput_calibrator detects that it loses focus, it pushes
itself back to top. To avoid dead-loops in case the other application
follows same strategy the maximum number of regaining the focus is
limited to e.g 3.
3. Multiple instances of devices with same device-name / different
touch devices on same controller: Have no idea how to give X this
additional information.
My suggestion:
I will rework for 1+2. This leads to a much better solution than we
have currently. For 3 I am open on suggestions.
Andreas
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2013-02-14 9:57 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-05 22:18 [meta-oe-meta-systemd 0/5] xinput-calibrator rework Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 1/5] xinput-calibrator: update to latest git commit Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 2/5] xinput-calibrator: Add --output-filename to store calibration to file Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 3/5] xinput-calibrator: rework Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 4/5] pointercal-xinput: remove Andreas Müller
2013-02-06 14:48 ` Martin Jansa
2013-02-06 15:12 ` Andreas Müller
2013-02-06 15:25 ` Martin Jansa
2013-02-06 15:45 ` Andreas Müller
2013-02-07 10:01 ` Koen Kooi
2013-02-08 22:11 ` Andreas Müller
2013-02-05 22:18 ` [meta-oe-meta-systemd 5/5] xinput-calibrator: do not RDEPEND xterm Andreas Müller
2013-02-07 10:08 ` Koen Kooi
2013-02-07 10:06 ` [meta-oe-meta-systemd 0/5] xinput-calibrator rework Koen Kooi
2013-02-08 22:10 ` Andreas Müller
2013-02-14 9:41 ` Andreas Müller
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.