From: Manuel Reimer <Manuel.Spam@nurfuerspam.de>
To: linux-input@vger.kernel.org
Subject: Re: uinput: How to use force feedback?
Date: Fri, 5 Feb 2016 16:54:50 +0100 [thread overview]
Message-ID: <n92gka$1fj$1@ger.gmane.org> (raw)
In-Reply-To: <CADbOyBQpnNjPxoDhy4XuyHSBSyYT6dvwzL2jfPV4FdOS1SzkYQ@mail.gmail.com>
On 01/17/2016 04:46 PM, Elias Vanderstuyft wrote:
> Concerning this,
> the following may give you an example how to read incoming FF events on uinput:
> https://github.com/xboxdrv/xboxdrv/blob/8e9fb6b40df568d4e4af63e80518366ee4aa5fd3/src/linux_uinput.cpp#L341
Tried that and I'm pretty close to giving up...
I've added the following to my uinput init function:
// Set up force feedback parameters
ret = ioctl(fd, UI_SET_EVBIT, EV_FF);
ret = ioctl(fd, UI_SET_FFBIT, FF_PERIODIC);
ret = ioctl(fd, UI_SET_FFBIT, FF_RUMBLE);
ret = ioctl(fd, UI_SET_FFBIT, FF_GAIN);
ret = ioctl(fd, UI_SET_FFBIT, FF_SQUARE);
ret = ioctl(fd, UI_SET_FFBIT, FF_TRIANGLE);
ret = ioctl(fd, UI_SET_FFBIT, FF_SINE);
From my device handling thread, I'm starting a separate thread to
handle the opposite direction of communication. Plan is to do blocking
read from the open uinput device. I open the device with O_RDWR to be
able to read and write. The "rumble thread" starts with:
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
struct input_event event;
while (1) {
ssize_t n = read(args->fduinput, &event, sizeof(event));
printf("n: %d\n", n);
Everything beyond this never executes. The read blocks forever.
And even worse: If the read blocks, my "driver", and all programs
connected to my input device, are deadlocked. No chance to kill them.
And to be honest: After three hours of debugging I'm kind of sick of
rebooting my machine over and over again.
Any chance to get some hint?
Thanks in advance
Manuel
next prev parent reply other threads:[~2016-02-05 15:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-17 13:27 uinput: How to use force feedback? Manuel Reimer
2016-01-17 15:46 ` Elias Vanderstuyft
2016-01-17 15:47 ` Elias Vanderstuyft
2016-01-18 17:39 ` Tuomas Räsänen
2016-02-05 15:54 ` Manuel Reimer [this message]
2016-02-05 20:58 ` Manuel Reimer
2016-02-10 21:41 ` Elias Vanderstuyft
2016-02-15 20:05 ` Manuel Reimer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='n92gka$1fj$1@ger.gmane.org' \
--to=manuel.spam@nurfuerspam.de \
--cc=linux-input@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.