Ticket #60 (assigned enhancement)

Opened 5 years ago

Last modified 3 years ago

ir_ptr improvements

Reported by: nickishappy Owned by: dsmith
Priority: minor Milestone:
Component: wminput Version: 0.6.00
Keywords: Cc: Effetto, Chewi

Description

A patch for the code posted by nepthar in the forums.

Attachments

better_ir.patch Download (2.9 KB) - added by nickishappy 5 years ago.
Fixed better_ir_patch

Change History

  Changed 5 years ago by nepthar

I've found a small bug, but it's my fault because it somehow occurred while I was copy/pasting into the forums. In the better_ir.patch file, proposed line 69 reads

info.axis_info[0] .name = "X";

Notice the space between info[0] and .name. It should read

info.axis_info[0].name = "X";

I would fix it myself and re-post, but I don't know how. Sorry.

Changed 5 years ago by nickishappy

Fixed better_ir_patch

  Changed 5 years ago by nickishappy

I fixed the patch. Thanks for letting me know. If you notice a problem on one line of a patch file like that, you can just change it in a text editor.

  Changed 5 years ago by nickishappy

There are problems with ir_ptr and head monitor configurations. For me, the cursor only goes halfway to the left or right side of each monitor (the outside edges.) It's as though it thinks I have one monitor between the two that I have at the resolution of the monitors.

  Changed 5 years ago by dsmith

What dual monitor method are you using?

  Changed 4 years ago by Chewi

I have the same problem. I'm using fglrx in dual-head mode. I assumed it was because the Wiimote's resolution is only 1024x768 but if it's supposed to work on higher resolution screens then maybe that's not it. I'll see if I can figure it out.

  Changed 4 years ago by Effetto

  • cc Effetto added

I have this problem even on a single screen (main screen). The are where mouse cursor can move is smaller than full screen. Changing screen resolution to 1024x768 helps but two stripes on the right and on the bottom are still unreachable by cursor.

I use Xubuntu 9.04, wminput (CWiid) 0.6.00, kernel 2.6.28-11-generic

  Changed 4 years ago by Chewi

  • cc Chewi added

I tried to investigate this today. My first thought was that we need to query the display size from X but then I remembered that CWiid operates at the Linux input level so X shouldn't come into it. I think we need to use the ioctl called EVIOCSABS, which sets the mix/max range for absolute input devices. I've tried this myself but I keep getting "Invalid argument" and I just can't figure out why. I've also tried EVIOCGABS, which queries this information, but I get the same result. Maybe it doesn't work on uinput devices? I haven't got much experience with this kind of thing and there's extremely little information available.

  Changed 4 years ago by Chewi

Ignore that. I've realised that uinput devices work differently and take the min/max range on initialisation. wminput does this already. I would have thought that X would stretch this range out to fill the display instead of mapping it 1:1?

follow-up: ↓ 10   Changed 4 years ago by Chewi

I started looking at trying to set properties using xinput. In the process, I stumbled across the Ubuntu HOWTO, which said to replace ~ABS_X and ~ABS_Y with ABS_X and ABS_Y. That did the trick. Ummm. Remind me exactly what the ~ is supposed to do? The docs say it's generally needed for cursor movement but it doesn't say why and it only seems to make things worse.

Other than that, I'm not sure why the attached patch changes the axis types from WMPLUGIN_ABS to WMPLUGIN_REL since I always get a warning regardless of whether I use ~ or not.

Warning: axis type mismatch - ir_ptr.X Warning: axis type mismatch - ir_ptr.Y

in reply to: ↑ 9   Changed 4 years ago by Effetto

Replying to Chewi:

I started looking at trying to set properties using xinput. In the process, I stumbled across the Ubuntu HOWTO, which said to replace ~ABS_X and ~ABS_Y with ABS_X and ABS_Y. That did the trick.

The "~" did the trick for me also.

  Changed 4 years ago by dsmith

  • status changed from new to assigned

There are some strange hacks in the axis setup, and the reasons for them may have been fixed. I'll take a look. Thanks for the info/troubleshooting.

Note: See TracTickets for help on using tickets.