On Mon, 15 Sep 2014 13:22:49 -0700 Jason Gerecke <killert...@gmail.com>
wrote:

> It probably wouldn't be too hard to make this API work for reporting
> joystick axes. I'm not familiar with how joysticks report their
> position, but if it is in angles then TILT/ORIENTATION/TWIST already
> have the basic axes covered. Additional joystick-specific axes (e.g.
> THROTTLE, RUDDER, etc.) would have to be added, though I wonder how
> more complex setups (e.g. throttle quadrants for dual-engine aircraft)
> work and what demands it might place on an axis API...
> 
> A the moment buttons aren't in-scope for this API (I wrote it assuming
> buttons would be sent through another channel, e.g. mouse events) but
> that might need to be discussed.

Now that you mention it, there is also things like this (I have one) -

http://www.3dconnexion.eu/products/spacemousepro.html

I had recently added support to Imprudence Virtual World viewer for
that, though thinking of switching to VRPN in future, for generic
virtual world controller support -

http://www.cs.unc.edu/Research/vrpn/

> On Wed, Sep 10, 2014 at 4:51 PM, Kim Shinwoo <kimcinoo....@gmail.com>
> wrote:
> > I love this thread. B-]
> > I'd like to add newly defined events for the Joystick. It needs
> > information such as Id, Index, Buttons, Axises,
> > Connection(Disconnection) and so on. You could find such
> > information from the W3C(http://www.w3.org/TR/gamepad/) also.
> > This thread would be a good reference before adding the events.
> > It have taken much of time to be here. So I'm sorry and frustrated
> > already. Anyway, thank you. :-P
> >
> > Sincerely
> > Shinwoo Kim.
> >
> >
> > On Wed, Sep 10, 2014 at 3:50 AM, Jason Gerecke
> > <killert...@gmail.com> wrote:
> >
> >> I've finished making the requested updates, but forgot to check to
> >> see what your thoughts are about the coordinate system used in the
> >> events. Right now data is being passed through pretty much as-is,
> >> but this might not be appropriate if a window has been rotated. I
> >> assume we want to adjust the reported AZIMUTH and TWIST values so
> >> that the application doesn't have to worry about it, but where can
> >> I find the necessary information? Also, is there any sense in
> >> adjusting the other axes (e.g. X, Y,
> >> {TOUCH,TOOL}_WIDTH_{MAJOR,MINOR}) to account for e.g. scaling?
> >>
> >> Jason
> >> ---
> >> Now instead of four in the eights place /
> >> you’ve got three, ‘Cause you added one  /
> >> (That is to say, eight) to the two,     /
> >> But you can’t take seven from three,    /
> >> So you look at the sixty-fours....
> >>
> >>
> >>
> >> On Sat, Aug 30, 2014 at 7:32 PM, Carsten Haitzler
> >> <ras...@rasterman.com> wrote:
> >> > On Sat, 30 Aug 2014 18:37:13 -0700 Jason Gerecke
> >> > <killert...@gmail.com>
> >> said:
> >> >
> >> >> On Fri, Aug 29, 2014 at 7:25 PM, Carsten Haitzler
> >> >> <ras...@rasterman.com
> >> >
> >> >> wrote:
> >> >> > On Fri, 29 Aug 2014 13:18:37 -0700 Jason Gerecke <
> >> killert...@gmail.com>
> >> >> > said:
> >> >> >
> >> >> > review below. btw. it'd be really awesome if you could use
> >> >> > arc to
> >> land these
> >> >> > patches for review. this is part of our "getting organized"
> >> >> > and using
> >> tools
> >> >> > to make sure patches don't vanish in an inbox. :) there is a
> >> >> > special limited sized review list for patches which allows
> >> >> > inline code
> >> comments
> >> >> > etc. etc. see http://phab.enlightenment.org
> >> >> > http://phab.enlightenment.org/w/arcanist/
> >> >> >
> >> >> > 0001-Break-_ecore_x_input_handler-into-task-specific-sub-.patch:
> >> >> >
> >> >> > it'd be nice if it didn't have so many whitespace changes.
> >> >> > it'd be
> >> REALLY
> >> >> > nice if you could "fix" the whitespace to match what was there
> >> before. i'm
> >> >> > sifting through it and almost all of this patch is whitespace
> >> >> > changes
> >> (that
> >> >> > are not needed as no extra if, whole, for etc. clauses).
> >> >> >
> >> >> My editor seems to have gotten a little indent happy... I'll
> >> >> work on cleaning up that mess up :)
> >> >>
> >> >> > 0002-Select-XI2-events-whenever-possible.patch:
> >> >> >
> >> >> > i am not sure here, but this may break multitouch support
> >> >> > mpx-style
> >> that
> >> >> > checks for floating slaves vs slaves. (reading the diff is
> >> >> > not fun :)
> >> it is
> >> >> > removing all the detection code and that is worrying,
> >> >> > especially as
> >> it's
> >> >> > hard to test this support (but has been tested in the past
> >> >> > when
> >> written).
> >> >> >
> >> >> Basically this patch has the X server send Button, Motion, and
> >> >> Touch events without regard to if the device is floating. A
> >> >> driver with MPX multitouch that uses a floating device per
> >> >> finger shouldn't be sending XI2 touch events, so I doubt adding
> >> >> them to the mask would break anything. On the flip side, a
> >> >> driver with XI2 multitouch devices *will* send button/motion
> >> >> events (for the first finger) along with touch events, but the
> >> >> '_ecore_x_input_multi_handler' function only responds to touch
> >> >> events, so requesting more events from the server shouldn't
> >> >> break anything in this case either.
> >> >
> >> > hmmm - for now, ok.
> >> >
> >> >> > 0003-Define-and-implement-new-Ecore_Event_Axis_Update-eve.patch:
> >> >> >
> >> >> > you have some ome todo's and fixme's... :)). one thing - the
> >> >> > #include
> >> of
> >> >> > xserver-properties.h ... that literally is not an existing
> >> >> > installed
> >> file
> >> >> > anywhere on my xorg installation. so this is going to be a
> >> >> > problem...
> >> it
> >> >> > won't compile. and it likely isn't going to compile for
> >> >> > anyone else.
> >> what
> >> >> > is this doing there and why? (oh .. and we don;'t use egyptian
> >> brackets in
> >> >> > count_bits ()) also @since 1.12 in the doxy comments so we
> >> >> > know what version of efl this was introduced from :) oh and
> >> >> > typedef enum _Ecore_Axis_Label like Ecore_Event_Axis_Update
> >> >> > was. and in fact like
> >> 0004
> >> >> > below - flatten out Ecore_Axis that isnt even typedeffed. :)
> >> >> >
> >> >> The xserver-properties.h file contains the names that drivers
> >> >> are expected to use when naming their axes. It defines the
> >> >> constants I use later in that file (e.g.
> >> >> AXIS_LABEL_PROP_ABS_X). It looks like GTK at least just
> >> >> hard-codes the strings instead of depending on the header
> >> >> (which is part of the xorg server devel package).
> >> >
> >> > i'd recommend hardcoding them here ala gtk. :) there is nothing
> >> > in these patches to check for this header, and since it's part
> >> > of server devel 'd probably avoid relying on it. :)
> >> >
> >> >> I'll see what I can do about the todos and fixmes :D I expected
> >> >> more critique on my design so only roughed out the
> >> >> implementation and punted on the really hard parts in case they
> >> >> needed to be changed anyway.
> >> >
> >> > design doesn't seem much of a problem :)
> >> >
> >> >> > 0004-Implement-EVAS_CALLBACK_AXIS_UPDATE-event-and-friend.patch:
> >> >> >
> >> >> > might i suggest not using struct _Evas_Axis * as a parameter
> >> >> > but
> >> actually
> >> >> > passing in the enum lable and double. this makes it easier for
> >> bindings to
> >> >> > other languages. so pass them in as 2 params. that prbably
> >> >> > means
> >> removing
> >> >> > this struct entirely (also being a raw struct is inconsistent
> >> >> > with our typedeffing of all of these) so just break out enum
> >> >> > (actually also
> >> typedef
> >> >> > the enum please) and double value into the event update
> >> >> > struct :)
> >> flatten
> >> >> > the world! :)
> >> >> >
> >> >> The _Evas_Axis * is an array (whose length is given by
> >> >> 'naxes'), not a single object. There'll be maybe a half-dozen
> >> >> enum/double pairs depending on the device sending the event.
> >> >> Would using some kind of EFL-specific list datatype work better
> >> >> perhaps?
> >> >
> >> > oh. array. dang. then definitely typedef the axis struct.
> >> > always. dont
> >> leave it
> >> > a raw struct (same with enum as above)
> >> >
> >> >> > 0005-Wire-the-Ecore-and-Evas-implementations-of-axis-upda.patch:
> >> >> >
> >> >> > fine EXCEPT i see no patch to expose
> >> >> > ecore_event_evas_axis_update in
> >> the
> >> >> > header file :) it's EAPI (exposed api)... thus shoulld have
> >> >> > something
> >> in
> >> >> > Ecore_Input.h :) don't forget @since 1.12 in a doxy comment :)
> >> >> >
> >> >> So _that's_ what EAPI means :D I should confess that pretty
> >> >> much all of my code was mechanically written; grepping through
> >> >> the tree for instances of e.g. "mouse_down" or "multi_down" and
> >> >> then creating similar-looking blocks that said "axis_update".
> >> >> I'm honestly surprised there aren't more little problems like
> >> >> this...
> >> >
> >> > yup. EAPI is everywhere indicating it's exposed to external
> >> > entities
> >> (outside
> >> > the lib/module.binary etc.). i though it would be obvious after
> >> > reading a public header and seeing every single function
> >> > prefixed with EAPI.
> >> >
> >> > it's actually important. it's a macro that sets attribute of
> >> > visibility,
> >> so if
> >> > you strip -x the file these symbols remain. also on windows it
> >> > does a
> >> cdecl
> >> > indicating to the linker to export this symbol. if you don't, on
> >> windows, these
> >> > functions have no symbols and are inaccessible. it isn't needed
> >> > for
> >> cross-file
> >> > usage, or using any symbol within a single .so or single
> >> > executable
> >> binary, but
> >> > it is needed for access from outside that destination file.
> >> >
> >> >> Jason
> >> >> ---
> >> >> Now instead of four in the eights place /
> >> >> you’ve got three, ‘Cause you added one  /
> >> >> (That is to say, eight) to the two,     /
> >> >> But you can’t take seven from three,    /
> >> >> So you look at the sixty-fours....
> >> >>
> >> >> > 0006-DEBUG-Add-axis-update-logging-to-evas-multi-touch.c.patch:
> >> >> >
> >> >> > fine
> >> >> >
> >> >> > 0007-DEBUG-Make-evas-multi-touch-demo-be-pressure-sensiti.patch
> >> >> >
> >> >> > fine
> >> >> >
> >> >> >> Its been quite a while since my first patches were sent, so
> >> >> >> unsurprisingly they no longer apply to the master branch.
> >> >> >> I've attached an updated patchset which has been rebased and
> >> >> >> should work once more. Hopefully it makes reviewing the code
> >> >> >> a bit more
> >> attractive
> >> >> >> to those who've been standing on the sidelines... I'm not
> >> >> >> terribly familiar with the EFL codebase so I'm *sure*
> >> >> >> somebody out there could provide some feedback on the
> >> >> >> design :)
> >> >> >>
> >> >> >> Jason
> >> >> >> ---
> >> >> >> Now instead of four in the eights place /
> >> >> >> you’ve got three, ‘Cause you added one  /
> >> >> >> (That is to say, eight) to the two,     /
> >> >> >> But you can’t take seven from three,    /
> >> >> >> So you look at the sixty-fours....
> >> >> >
> >> >> >
> >> >> > --
> >> >> > ------------- Codito, ergo sum - "I code, therefore I am"
> >> --------------
> >> >> > The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >> >> >
> >> >>
> >> >>
> >> ------------------------------------------------------------------------------
> >> >> Slashdot TV.
> >> >> Video for Nerds.  Stuff that matters.
> >> >> http://tv.slashdot.org/
> >> >> _______________________________________________
> >> >> enlightenment-devel mailing list
> >> >> enlightenment-devel@lists.sourceforge.net
> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> >
> >> >
> >> > --
> >> > ------------- Codito, ergo sum - "I code, therefore I am"
> >> > -------------- The Rasterman (Carsten Haitzler)
> >> > ras...@rasterman.com
> >> >
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> Want excitement?
> >> Manually upgrade your production database.
> >> When you want reliability, choose Perforce.
> >> Perforce version control. Predictably reliable.
> >>
> >> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> > ------------------------------------------------------------------------------
> > Want excitement?
> > Manually upgrade your production database.
> > When you want reliability, choose Perforce
> > Perforce version control. Predictably reliable.
> > http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


-- 
A big old stinking pile of genius that no one wants
coz there are too many silver coated monkeys in the world.

Attachment: signature.asc
Description: PGP signature

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to