linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "johann deneux" <johann.deneux@gmail.com>
To: "Jiri Slaby" <jirislaby@gmail.com>
Cc: "Dmitry Torokhov" <dmitry.torokhov@gmail.com>,
	"\"STenyaK (Bruno González)\"" <stenyak@gmail.com>,
	"Anssi Hannula" <anssi.hannula@gmail.com>,
	"Linux kernel mailing list" <linux-kernel@vger.kernel.org>,
	linux-input@atrey.karlin.mff.cuni.cz
Subject: Re: FF layer restrictions [Was: [PATCH 1/1] Input: add sensable phantom driver]
Date: Wed, 21 Mar 2007 23:03:12 +0100	[thread overview]
Message-ID: <38b3b7c0703211503s3a8ee177v5b149cfd5975de8c@mail.gmail.com> (raw)
In-Reply-To: <46018FB8.1080601@gmail.com>

On 3/21/07, Jiri Slaby <jirislaby@gmail.com> wrote:
> Dmitry Torokhov napsal(a):
> > On 3/21/07, johann deneux <johann.deneux@gmail.com> wrote:
> >> I would suggest adding a new effect type (3d effect) and extending the
> >> union in struct ff_effect.
> >> Let me know if I'm too vague, I already suggested that solution but
> >> got no answer. I wonder if my mail got lost, nobody understood what I
> >> said, or if it's just a plain bad idea.
> >>
> >
> > My concern with a new 3D effect is that it will be a very "simple"
> > effect with only constant force apllied. That might be enough for
> > phantom but may not be sufficient for future devices. If we add
> > ability to specify a "plane" for an effect we will be able to add
> > envelopes on top of more complex effects and get desired combined
> > effcet.
>
> I didn't get this too much, because I don't understand the FF layer well so
> far. How is this going to work? Let's say, we have 3 torque values computed
> in US, and this structure:
>
> struct ff_effect {
>     __u16 direction;
>     struct ff_trigger trigger;
>     struct ff_replay replay;
>
>     struct ff_constant_effect {
>         __s16 level;
>         struct ff_envelope {
>              __u16 attack_length;
>              __u16 attack_level;
>              __u16 fade_length;
>              __u16 fade_level;
>         };
>     };
> };
>
> and need to pass the three 16bits torques into s16 ioaddr[0..2]. How?
>

Stupid question, I have forgotten the details of ioctl: Wouldn't the
following work?

struct ff_effect {
        __u16 type;
        __s16 id;
        __u16 direction;
        struct ff_trigger trigger;
        struct ff_replay replay;

        union {
                struct ff_constant_effect constant;
                struct ff_ramp_effect ramp;
                struct ff_periodic_effect periodic;
                struct ff_condition_effect condition[2]; /* One for each axis */
                struct ff_rumble_effect rumble;
        } u;

        /* New member: Specify a plane in the 3d space. */
        struct ff_plane plane;
};

Would that pose compatibility issues? If the input layer knows the
size of the struct the user-space application is sending, it knows if
it's safe to look into the "plane" member. If it is, and the device
driver is capable of handling 3d effects, then fine. If it is but the
device driver can't handle it, return an error code. If it isn't, just
do whatever it's currently doing.

Alternatively, one could leave ff_effect effect untouched and find
another way to specify the plane, e.g. another ioctl.

-- 
Johann

  reply	other threads:[~2007-03-21 22:03 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-07 11:36 [PATCH 1/1] Input: add sensable phantom driver Jiri Slaby
2007-03-07 14:47 ` Dmitry Torokhov
2007-03-07 16:38   ` Jiri Slaby
2007-03-07 16:50     ` Greg KH
2007-03-07 16:56     ` Dmitry Torokhov
2007-03-13 16:19       ` Jiri Slaby
     [not found]         ` <38b3b7c0703131450v2646e63fj2be4b9dda7f928c0@mail.gmail.com>
2007-03-13 22:16           ` FF layer restrictions [Was: [PATCH 1/1] Input: add sensable phantom driver] Jiri Slaby
2007-03-14 15:02             ` Dmitry Torokhov
2007-03-14 16:43               ` Jiri Slaby
2007-03-14 16:45                 ` Jiri Slaby
2007-03-14 18:04                 ` Anssi Hannula
2007-03-14 18:15                   ` Jiri Slaby
     [not found]                   ` <8e4ff20a0703141147n4b690ab8g4cc8138d1ecc94e1@mail.gmail.com>
2007-03-14 19:12                     ` STenyaK (Bruno González)
2007-03-14 19:13                     ` Dmitry Torokhov
2007-03-14 19:18                       ` STenyaK (Bruno González)
2007-03-15 20:51                         ` johann deneux
2007-03-15 21:06                           ` STenyaK (Bruno González)
2007-03-21 13:31                         ` Jiri Slaby
2007-03-21 13:32                           ` Jiri Slaby
2007-03-21 19:02                           ` johann deneux
2007-03-21 19:22                             ` Dmitry Torokhov
2007-03-21 20:04                               ` Jiri Slaby
2007-03-21 22:03                                 ` johann deneux [this message]
2007-03-22 15:50                                   ` Dmitry Torokhov
2007-03-27 12:20                                     ` Jiri Slaby
2007-03-27 18:36                                       ` johann deneux
2007-03-27 20:11                                         ` Jiri Slaby
2007-03-27 20:43                                           ` johann deneux
2007-03-27 20:51                                             ` Jiri Slaby
2007-03-27 21:34                                               ` johann deneux
2007-03-28  3:08                                                 ` Dmitry Torokhov
2007-03-28  9:28                                                   ` Jiri Slaby
2007-03-28 22:16                                                   ` Jiri Slaby
2007-03-28 22:22                                                     ` Jiri Slaby
2007-03-30 16:46                                                       ` Dmitry Torokhov
2007-03-30 19:11                                                 ` Anssi Hannula
2007-03-15 20:43                       ` johann deneux
2007-03-16 16:28               ` Pavel Machek
2007-03-17  7:28                 ` johann deneux

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=38b3b7c0703211503s3a8ee177v5b149cfd5975de8c@mail.gmail.com \
    --to=johann.deneux@gmail.com \
    --cc=anssi.hannula@gmail.com \
    --cc=dmitry.torokhov@gmail.com \
    --cc=jirislaby@gmail.com \
    --cc=linux-input@atrey.karlin.mff.cuni.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stenyak@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).