-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Management of X/Y swap and inversions #27
base: master
Are you sure you want to change the base?
Conversation
xinput_calibrator Motivated to ease packaging (eg one binary, default name) Use --with-gui=default|gtkmm|x11 option to specify.
screen and triangle from tangogps hand from humanity
by-sa for the icon
file What a silly bug in gnome/xfce4-terminal that's already open for 5 years... https://bugzilla.gnome.org/show_bug.cgi?id=324407
…stributions is to use gtkmm gui
Avoids unnecessary linking, as suggested by Eugene Paskevich
This reverts commit fb22ed1. It changed the source, which would differ from a 'pristine tarball' Will upload the patch the quilt way.
introduces the debian/patches quilt dir and a first patch in it
Have you tried the code patch attached to this thread as a pull request ? Antoine |
I'll give it a try but I'm not a git master. I installed git and downloaded git clone https://github.com/tias/xinput_calibrator.git Will that get me the pull request as well. Probably not. If not, can you git pull ?????? John -----Original Message----- Have you tried the code patch attached to this thread as a pull request ? Antoine Reply to this email directly or view it on GitHub: |
I think I figured it out. The tonio73 is a different master. So I cloned git clone https://github.com/tonio73/xinput_calibrator.git -----Original Message----- I'll give it a try but I'm not a git master. I installed git and downloaded git clone https://github.com/tias/xinput_calibrator.git Will that get me the pull request as well. Probably not. If not, can you git pull ?????? John -----Original Message----- Have you tried the code patch attached to this thread as a pull request ? Antoine Reply to this email directly or view it on GitHub: |
These changes are awesome. Just what I needed. Thanks a bunch. For those of you like me who are not experts at this. Here's a list of cd ~ logout and log back intest your touchscreenreboottest your touchscreen-----Original Message----- I think I figured it out. The tonio73 is a different master. So I cloned git clone https://github.com/tonio73/xinput_calibrator.git -----Original Message----- I'll give it a try but I'm not a git master. I installed git and downloaded git clone https://github.com/tias/xinput_calibrator.git Will that get me the pull request as well. Probably not. If not, can you git pull ?????? John -----Original Message----- Have you tried the code patch attached to this thread as a pull request ? Antoine Reply to this email directly or view it on GitHub: |
glad to see these modifications being tested : ) I'll merge it in master, but some patches contain multiple changes, which I'd like to split up first... Kind regards, |
Hi, I tried to use the .deb package to calibrate an IDEACOM touch panel. With our default debian without the ideacom driver it worked kind of out of the box with the evdev tablet catchall driver. X and Y are swapped so I added Option "InvertY" "on" and the same for X to get the axes OK. When I calibrate it with your tool this is the Section "InputClass" Then i started the calib tool: When I put the calibration file in /etc/X11/xorg.conf.d/99-calibration.conf Output of your tool: Warning: multiple calibratable devices found, calibrating last one (IDEACO IDC 6681) Doing dynamic recalibration: --> Making the calibration permanent <-- Any help is appreciated; tomorrow I have time to test it with the latest GIT version. Kind Regards Rene Dohmen |
follow my list of commands above to get the latest code from tonio73 git repository and rebuild the xinput_calibrator binary and run it from your local directory. See if that fixes your problem. |
First I removed the .deb, and restored changes in the conffiles. 99-calibration.conf: |
The device we currently use: MSI AE1900 I can sent you one of our development machines? On Wed, Mar 23, 2011 at 2:58 PM, johnschimandle <
|
Sure that could work. Send me an e-mail at john_schimandle@hotmail.com and I'll send you my address. |
We're getting a bit of topic on this merge request... acidjunk, please upon a new bug for your problem.
Kind regards, (As to this merge request itself: its to dirty to apply as-is. it should be rebased cleanly against master, coding style should not be changed on code that is not modified, and file renames are preferably avoided if not necessary (makes applying other patches harder), some patches should also be split because they change multiple things, making bughunting/bisecting harder later on. I really want to merge the improvements, but it requires more work. Any help on that is appreciated ; ) |
Hello Tias, Your bracketed comment is hard and unjustified. I have removed dirty things like #include "xxx.cxx", I have cleaned up includes and headers, I have created functions to handle debug traces and informational messages. I have recasted things when loosely typed. I remember a function that looked imported and that was taking string parameters instead of integers, as in command line. What I have done is definitively not dirtier but cleaner. As for the file renaming, it is only simplification to redundant names like: On top, I have added correct swap and inversion detection. Swap detection was totally buggy. If you wish to modify the proposal, I am kine to help but be more specific on your comments. Antoine |
On Tue, Mar 29, 2011 at 3:32 AM, tias <
Yup. But calibration is off -> you can't reach the corners
Yes it an USB touch panel, we had an closed src driver from IDEACOM; but
xorg-server 2:1.9.4.901-1 The problem is not that urgent because I received a new IDEACOM driver Kind Regards Rene
|
I haven't checked the source code yet but could it be a signed 16 bit It would also be intersting to get the output from evtest for touching the 4 (x,y) (x,y) (x,y) (x,y) -----Original Message----- On Tue, Mar 29, 2011 at 3:32 AM, tias <
Yup. But calibration is off -> you can't reach the corners X and Y are
Yes it an USB touch panel, we had an closed src driver from IDEACOM; but
xorg-server 2:1.9.4.901-1 The problem is not that urgent because I received a new IDEACOM driver Kind Regards Rene
Reply to this email directly or view it on GitHub: |
Process return 1 instead of 0 in case of timeout.
Hello Antoine, I'm sorry for the short comment, I did not intend to do you unjustice or step on your toes. I was travelling at the time, I hope this post clears some points. I did not mean to say that the code is dirty. In fact, I really like many of the changes you did. What I meant is that the pull request is dirty: not the end result (the what) but the git-patchset (the how).
You may think that I am nitpicking. However, I simply wish to review your changes before accepting them. Because I want to verify the changes, learn from them, and be able to fix bugs should they occur. This is currently hard because:
To show more concretely what I mean, I started rebasing/modifying your patchset to address the above points (haven't started on splitting away the logging in a separate patch yet). Now about the patches:
Looking forward to hear back from you, |
Hello Tias, Thanks for this detailed answer. See below my comments. On 04/21/2011 11:08 PM, tias wrote:
Aside from that, you are right, the two main aspect of my contrib are
(clicked at index 0 and 1 are lowest clicked values, 2 and 3 are highest). Also, I kind of remember that the fact that swap was already on/off was While devloping, I was using the --fake mode on a standard desktop In my proposal, X-Y inversion and swap is managed following EVDEV order: This feature change appears mainly in bool Calibrator::finish(int width, int height) Main trick is in sorting X and Y vectors of clicked coordinates and then
Hope you have enough information in you hands to go forward. In any Antoine |
Hey Antoine, I finally understand why we are seeing different behaviour and why you had to do the above changes! For me, that reasoning is nonsense. I'm working on including your data and class structure changes separately, and will then add your calibration changes to the calibrator/evdev.cpp code, with a version check. I'm glad things are really clearing up now, I hope to commit the changes in a reasonable timeframe... |
@tias Thank you for considering this pull request. Could you say what its status is please? |
It would be nice if the good part of the work could be merged onto master; this does fixes some issues people has and it seems that the project has no action since 2011's Jun :-( |
yes, please, @tias ? |
Hey All, You are right, I should really pick this up again. If you're wondering, I haven't abandoned the project, I was just busy with other things... The 'version check' was next to impossible from what I remember. Since so much time has passed since, I'll just add the (inversion) calibration code as proposed in the above patch. I'll have to make it clear in the announcement that from the next release, the code should only be used with evdev above 2.3.2 So, I intend to ramp up a new release in the coming weeks. Kind regards, |
Hi @tias , How is the progress toward a new release? |
OK, I finally made some good progress on this patchset! In master you can find following aspects of it:
The real gist, the different handling of inversion and swapping from evdev 2.3.2 onwards, is not included yet though. Attempts to dynamically detect which evdev version a user is running have failed. I havent decided yet how to add the new behavior exactly. |
@tias Thanks for picking this back up! I'd like to suggest that you simply declare that xinput_calibrator is only compatible with evdev >= 2.3.2. What do you think? |
@otavio That's an even better suggestion! |
OK, so I wrote a small testing framework that can emulate a standard Xorg driver as well as evdev 2.7.0 (which should be representative for evdev >= 2.3.2). I felt this was needed as I didn't have the hardware setup required to reproduce the reported behaviour, and didn't feel comfortable enough to just commit these changes to the calibration code. The tests showed that the problem all along was the 'invertX/Y' handling that was added to evdev. This has now been fixed in the Evdev.cpp code (I should still #ifdef it with a compile option as @otavio suggested). In retrospect, it seems that @tonio73 was aware of this from the beginning, I just didn't see it through all the other changes. I should really have handled this pull request/bug report differently... My apologies to @tonio73 and others who would like to have seen this stuff merged sooner. To everybody following this: please test master on your hardware. If it works, let me know, if it doesn't, open a new bug report with --verbose output please. Thanks, |
Good; I will rebase our version here and give it a try. Thank you very much by handling it; it was indeed a huge problem for all users and a difficult to handle one. Specially for user-friendness it is a nice milestone we'll accomplish if it works fine. |
Detect and take into account for X/Y axes swap and inversion.