Introducing JSMapper (Linux)

Eduard Huguet <[email protected]> Fri, 12 Apr 2013 09:03:14 +0200
Newsgroups gmane.games.flightgear.general
Message-ID <CALG9nuU-hcYGb9MRVLRaX_u5B4_VrsT3XBXbfu6pBBjEw9oa0g@mail.gmail.com>
--===============3557654795706000906==
Content-Type: multipart/alternative; boundary=60eb69dc623f3abd8d04da247fcd

--60eb69dc623f3abd8d04da247fcd
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hello to all,

I=92m very pleased to annouce the initial release of JSMapper, a software
tool for Linux I've been working on for the past year which converts any
game device (such as joysticks and wheel drives) into completely
programmable devices under this OS. This allow the device controls (buttons
and axis) to be mapped to arbitrary keystrokes and mouse events, including
support for complex actions such as macros. The tool features also advanced
capabilities, such as support for mode switches and shift buttons, and axis
mapping through bands.

Project page in Assembla:

http://www.assembla.com/spaces/jsmapper


>From a technical perspective, JSMapper relies on an kernel module which
hooks into the kernel input subsystem as an =93input filter=94 for game
devices:  this allows it to intercept hardware device events from the very
beginning, then them as requested to the desired target keyboard and mouse
simulated actions. These are sent using an internal input device, which
acts as a =93virtual=94 keyboard and mouse device which is handled by users=
pace
tools (X, console, etc...) as any other =93real=94 hardware device. The
original device event can then be filtered out, so it never reaches the
userspace stack.

This approach is what makes JSMapper a very powerful tool, as it=92s handle=
d
in a completely transparent way by any software running on the system,
including native Linux games, Windows games running on Wine, or even
Windows games running under a virtual machine on a Linux host.

The tool has been designed having specifically flight simulators in mind,
as they often require to map complex operations on the joystick buttons,
and is specially useful for complex game devices such as HOTAS featuring
mode switches and shift buttons which could only be properly used under
Windows by means of the propietary software provided by the device
manufacturer.

Disclaimer:

This is a very initial, although completely functional, release, and right
now is only available in the form of source code that must be checked out
from repository and compiled into the target system in order to use it. The
wiki available in the project provides detailed instructions about how to
proceed, along with how to interact with the kernel module by means of the
userspace tools in order to load mapping profiles into the device.

I=92d very pleased if anyone could take a look at the project and provide a=
ny
feedback about it, including criticism, ideas, bugs, whatever you might
feel appropiate.

The project is completely opensource and licensed under GPLv2 (exceptuating
the programming library, which uses LGPL), and it=92s actually a =93final y=
ear
project=94 for IT studies on UPC (Universitat Politecnica de Catalunya).

Kind regards,

 Eduard Huguet

 Barcelona (Spain)

--60eb69dc623f3abd8d04da247fcd
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span id=3D"internal-source-marker_0.3693176172673702" sty=
le=3D"color:rgb(0,0,0)"><p dir=3D"ltr" style=3D"font-family:&#39;Times New =
Roman&#39;;font-size:medium;line-height:1.15;margin-top:0pt;margin-bottom:0=
pt"><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap">Hello to all, </span></=
p>
<p style=3D"margin-top:0pt;margin-bottom:0pt"><span style=3D"background-col=
or:transparent;font-family:Arial;font-size:15px;white-space:pre-wrap;line-h=
eight:1.15">I=92m very pleased to annouce the initial release of JSMapper, =
a software tool for Linux I&#39;ve been working on for the past year which =
converts any game device (such as joysticks and wheel drives) into complete=
ly programmable devices under this OS. This allow the device controls (butt=
ons and axis) to be mapped to arbitrary keystrokes and mouse events, includ=
ing support for complex actions such as macros. The tool features also adva=
nced capabilities, such as support for mode switches and shift buttons, and=
 axis mapping through bands.</span><br>
</p><br><span style=3D"font-size:15px;font-family:Arial;background-color:tr=
ansparent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"lt=
r" style=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-hei=
ght:1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">Project page in Assembla:</=
span></p><p dir=3D"ltr" style=3D"font-family:&#39;Times New Roman&#39;;font=
-size:medium;line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap"><a href=3D"http://www.assem=
bla.com/spaces/jsmapper">http://www.assembla.com/spaces/jsmapper</a></span>=
</p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><br><span style=
=3D"font-size:15px;font-family:Arial;background-color:transparent;vertical-=
align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" style=3D"font-fa=
mily:&#39;Times New Roman&#39;;font-size:medium;line-height:1.15;margin-top=
:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">From a technical perspectiv=
e, JSMapper relies on an kernel module which hooks into the kernel input su=
bsystem as an =93input filter=94 for game devices: =A0this allows it to int=
ercept hardware device events from the very beginning, then them as request=
ed to the desired target keyboard and mouse simulated actions. These are se=
nt using an internal input device, which acts as a =93virtual=94 keyboard a=
nd mouse device which is handled by userspace tools (X, console, etc...) as=
 any other =93real=94 hardware device. The original device event can then b=
e filtered out, so it never reaches the userspace stack.</span></p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">This approach is what makes=
 JSMapper a very powerful tool, as it=92s handled in a completely transpare=
nt way by any software running on the system, including native Linux games,=
 Windows games running on Wine, or even Windows games running under a virtu=
al machine on a Linux host.</span></p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">The tool has been designed =
having specifically flight simulators in mind, as they often require to map=
 complex operations on the joystick buttons, and is specially useful for co=
mplex game devices such as HOTAS featuring mode switches and shift buttons =
which could only be properly used under Windows by means of the propietary =
software provided by the device manufacturer.</span></p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">Disclaimer:</span></p><p di=
r=3D"ltr" style=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;l=
ine-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">This is a very initial, alt=
hough completely functional, release, and right now is only available in th=
e form of source code that must be checked out from repository and compiled=
 into the target system in order to use it. The wiki available in the proje=
ct provides detailed instructions about how to proceed, along with how to i=
nteract with the kernel module by means of the userspace tools in order to =
load mapping profiles into the device.</span></p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">I=92d very pleased if anyon=
e could take a look at the project and provide any feedback about it, inclu=
ding criticism, ideas, bugs, whatever you might feel appropiate. </span></p=
>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">The project is completely o=
pensource and licensed under GPLv2 (exceptuating the programming library, w=
hich uses LGPL), and it=92s actually a =93final year project=94 for IT stud=
ies on UPC (Universitat Politecnica de Catalunya).</span></p>
<br><span style=3D"font-size:15px;font-family:Arial;background-color:transp=
arent;vertical-align:baseline;white-space:pre-wrap"></span><p dir=3D"ltr" s=
tyle=3D"font-family:&#39;Times New Roman&#39;;font-size:medium;line-height:=
1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap">Kind regards,</span></p><p =
dir=3D"ltr" style=3D"font-family:&#39;Times New Roman&#39;;font-size:medium=
;line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap"> =A0Eduard Huguet</span></p=
><p dir=3D"ltr" style=3D"font-family:&#39;Times New Roman&#39;;font-size:me=
dium;line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap"> =A0Barcelona (Spain)</span=
></p><div style=3D"font-family:&#39;Times New Roman&#39;;font-size:medium">=
<span style=3D"font-size:15px;font-family:Arial;background-color:transparen=
t;vertical-align:baseline;white-space:pre-wrap"><br>
</span></div></span></div>

--60eb69dc623f3abd8d04da247fcd--


--===============3557654795706000906==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
--===============3557654795706000906==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Flightgear-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-users

--===============3557654795706000906==--