-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Kobo: Attempt to fix input on Mk. 3 (i.e., Kobo Touch A/B). #9474
Conversation
This involves actually discriminating the Touch A/B from the Touch C in the first place ;). Get rid of the touchscreen probe thingy, as it *should* now be unnecessary, and handle the actual Mk. 3 quirk, which is that the input frame that reports a contact lift *already* does the coordinates transform for us... Unfortunately, our own transforms are not stateful, so this require a bit of an ugly hack, but, oh, well, it's a prehistoric device, so, you get what you get ;). While I'm there, fix the mirror transforms, which were all off-by-one (600 pixels make for a [0, 599] range of coordinates, not [1, 600]).
Ping @Earnestly ;). Does this fix it for you? If not, how broken is it now? Post some new logs and tell me where you physically tapped @ specific timestamps (ideally, I only need four data points, one in the vicinity of each corner ;)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Makes it clearer that it takes the actual maximum x/y coordinate, and not the dimension in pixels.
With this PR applied it seems like the touch inputs are much more skewed and a bit incomprehensible. Documenting how I tried this as I may have done something wrong:
With this patch it's not prompting me to configure the touch inputs but instead immediately loads the quickstart guide. Here is a log where I first waited for the quickstart guide to load then touched each corner for about two seconds in a clockwise order and finally turned the device off.
crash.log
|
Okay, it's a bit harder to grok because you did a series a holds, and the release doesn't always log transformed coordinates, unlike a tap, but it just looks like I just borked the quirk, which is "good" ;p. |
Which, given that last commit, no wonder, lol ;D. That should hopefully work better, I'll push another commit with additional logging to double-check, though ;). |
And, yeah, this removes the probe step on fresh setups, that's expected :). |
With the new patches in place everything appears to work perfectly. I can navigate through all menus and everything appears to function, including swipe gestures to turn pages, etc. |
Cool, many thanks for your willingness to deal with the testing, I'll finalize the details so this can hit tomorrow's nightly ;). |
e.g., at the midpoint between the two contacts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 2 of 4 files at r1, 1 of 1 files at r3, 3 of 3 files at r5, all commit messages.
Reviewable status: complete! all files reviewed, all discussions resolved (waiting on @NiLuJe)
No, thank you for the rapid response, testing, code, etc. Least I could do to help |
One final question for future readers, although I doubt it'll be meaningful given the age of the device, but on which FW version is it running? |
|
Cool, thanks (that's a good news for us, it rules out potentially different behavior on old kernels) ;). |
KOReader 2022.10 "Muhara" ![koreader-2022-10](https://user-images.githubusercontent.com/202757/197379886-75c933df-8236-4be2-9287-304a88778b67.png) We skipped last month's release because I was right in the middle of moving, which serendipitously coincided with fairly drastic changes that needed more time for testing, such as a big rewrite of gestures and multitouch (koreader#9463). Users of the Dropbox plugin will now be able to use the new short-lived tokens (koreader#9496). <img width="40%" alt="image" src="https://user-images.githubusercontent.com/59040746/193070490-a3d477db-bd82-431b-95fd-2c4765244378.png" align="right">One of the more visible additions is the new Chinese keyboard contributed by @weijiuqiao, based on the [stroke input method](https://en.wikipedia.org/wiki/Stroke_count_method) (koreader#9572). It's not smart and it requires knowledge of stroke order. A tutorial can be found [here](https://github.com/koreader/koreader/wiki/Chinese-keyboard), part of which I will reproduce below. <hr> The stroke input method groups character strokes into five categories. Then any character is typed by its stroke order. | Key | Stroke type | | ------ | ------ | | `一` | Horizontal or rising stroke | | `丨` | Vertical or vertical with hook | | `丿` | Falling left | | `丶` | Dot or falling right | | `𠃋` | Turning | For example, to input 大, keys `一丿丶` are used. Note all turning strokes are input with a single `𠃋` key as long as they are written in one go. So 马 is input with `𠃋𠃋一`. After getting the intended character, a `分隔`(Separate) or `空格`(Space) key should be used to finish the input. Otherwise, strokes of the next character will be appended to that of the current one thus changing the character. Besides, the keyboard layout contains a wildcard key `*` to use in place of any uncertain stroke. Swipe north on the `分隔`(Separate) key for quick deletion of unfinished strokes. <hr> Logo credit: @bubapet We'd like to thank all contributors for their efforts. Some highlights since the previous release include: * NewsDownloader: Strip byte order mark from xml string before parsing (koreader#9468) @ad1217 * GestureDetector: Full refactor for almost-sane(TM) MT gesture handling (koreader#9463) @NiLuJe * Kobo: Unbreak touch input on fresh setups on Trilogy (koreader#9473) @NiLuJe * Kobo: Fix input on Mk. 3 (i.e., Kobo Touch A/B). (koreader#9474, koreader#9481) @NiLuJe * Kindle: Attempt to deal with sticky "waking up" hibernation banners (koreader#9491) @NiLuJe * Add "Invert page turn buttons" to Dispatcher (koreader#9494) @NiLuJe * [UIManager] Outsource device specific event handlers (koreader#9448) @zwim * AutoWarmth: add a choice to control warmth and/or night mode (koreader#9504) @zwim * Allow F5 key to reload document (koreader#9510) @poire-z * bump crengine: better SVG support with extended LunaSVG (koreader#9510) @poire-z * CRE/ImageViewer: get scaled blitbuffer when long-press on SVG (koreader#9510) @poire-z * RenderImage: use crengine to render SVG image data (koreader#9510) @poire-z * Wikipedia EPUBs: keep math SVG images (koreader#9510) @poire-z * TextViewer: add Find (koreader#9507) @hius07 * A random assortment of fixes (koreader#9513) @NiLuJe * Add Russian Wiktionary dictionary (koreader#9517) @Vuizur * add custom mapping for tolino buttons (koreader#9509) @hasezoey * Profiles: add QuickMenu (koreader#9526) @hius07 * ImageViewer: Clamp zoom factor to sane values (koreader#9529, koreader#9544) @NiLuJe * ReaderDict: fix use of dicts with ifo with DOS line endings (koreader#9536) @poire-z * Kobo: Initial Clara 2E support (koreader#9545) @NiLuJe * TextViewer: add navigation buttons (koreader#9539) @hius07 * ConfigDialog: show button with default values in spinwidgets (koreader#9558) @hius07 * Misc: Get rid of the legacy defaults.lua globals (koreader#9546) @NiLuJe * Misc: Use the ^ operator instead of math.pow (koreader#9550) @NiLuJe * DocCache: Unbreak on !Linux platforms (koreader#9566) @NiLuJe * Kobo: Clara 2E fixes (koreader#9559) @NiLuJe * Keyboard: add Chinese stroke-based layout (koreader#9572, koreader#9582) @weijiuqiao * Vocabulary builder: add Undo study status (koreader#9528, koreader#9582) @weijiuqiao * Assorted bag'o tweaks & fixes (koreader#9569) @NiLuJe * ReaderFont: add "Font-family fonts" submenu (koreader#9583) @poire-z * FileManager: add Select button to the file long-press menu (koreader#9571) @hius07 * Dispatcher: Fixes, Sort & QuickMenu (koreader#9531) @yparitcher * Cloud storage: add Dropbox short-lived tokens (koreader#9496) @hius07 * GH: Extend the issue template to request verbose debug logs for non-crash issues. (koreader#9585) @NiLuJe * Logger: Use serpent instead of dump (koreader#9588) @NiLuJe * LuaDefaults: Look for defaults.lua in $PWD first (koreader#9596) @NiLuJe * UIManager: Don't lose track of the original rotation on reboot/poweroff (koreader#9606) @NiLuJe * ReaderStatus: save status summary immediately on change (koreader#9619) @hius07 * [feat] Add Thai keyboard (koreader#9620) @weijiuqiao * Dispatcher: Fix subtle bug with modified items being added twice to the sort index (koreader#9628) @yparitcher * Vocabulary builder: supports review in reverse order (koreader#9605) @weijiuqiao * Exporter plugin: allow adding book md5 checksum when exporting highlights (koreader#9610) @sp4ke * buttondialogtitle: align upper borders (koreader#9631) @hius07 * Kobo: Always use open/write/close for sysfs writes (koreader#9635) @NiLuJe * OPDS-PS: Fix hardcoded namespace in count (koreader#9650) @bigdale123 [Full changelog](koreader/koreader@v2022.08...v2022.10) — [closed milestone issues](https://github.com/koreader/koreader/milestone/59?closed=1) --- Installation instructions: [Android](https://github.com/koreader/koreader/wiki/Installation-on-Android-devices) • [Cervantes](https://github.com/koreader/koreader/wiki/Installation-on-BQ-devices) • [ChromeOS](https://github.com/koreader/koreader/wiki/Installation-on-Chromebook-devices) • [Kindle](https://github.com/koreader/koreader/wiki/Installation-on-Kindle-devices) • [Kobo](https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices) • [PocketBook](https://github.com/koreader/koreader/wiki/Installation-on-PocketBook-devices) • [ReMarkable](https://github.com/koreader/koreader/wiki/Installation-on-ReMarkable) • [Desktop Linux](https://github.com/koreader/koreader/wiki/Installation-on-desktop-linux) • [MacOS](https://github.com/koreader/koreader/wiki/Installation-on-MacOS)
This involves actually discriminating the Touch A/B from the Touch C in
the first place ;).
Get rid of the touchscreen probe thingy, as it should now be
unnecessary, and handle the actual Mk. 3 quirk, which is that the input
frame that reports a contact lift already does the coordinates
transform for us...
Unfortunately, our own transforms are not stateful, so this requires a
bit of an ugly hack, but, oh, well, it's a prehistoric device, so, you
get what you get ;).
While I'm there, fix the mirror transforms, which were all off-by-one
(600 pixels make for a [0, 599] range of coordinates, not [1, 600]).
This change is