Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 371564 Details for
Bug 503214
app-misc/cwiid-20110107-r1 - evdev interface of classic controller does not center analogue sticks
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch to give centered analogue sticks the coordinate (0,0).
cwiid_classic_sticks.patch (text/plain), 4.40 KB, created by
Andreas Grois
on 2014-03-02 15:29:14 UTC
(
hide
)
Description:
Patch to give centered analogue sticks the coordinate (0,0).
Filename:
MIME Type:
Creator:
Andreas Grois
Created:
2014-03-02 15:29:14 UTC
Size:
4.40 KB
patch
obsolete
>diff -ruB cwiid-20110107/wminput/conf.c cwiid-20110107_mod/wminput/conf.c >--- cwiid-20110107/wminput/conf.c 2014-03-02 13:52:01.747409514 +0100 >+++ cwiid-20110107_mod/wminput/conf.c 2014-03-02 16:14:57.299401109 +0100 >@@ -159,8 +159,8 @@ > case CONF_NC_AXIS_STICK_Y: > conf->rpt_mode_flags |= CWIID_RPT_NUNCHUK; > if (axis_type == EV_ABS) { >- conf->dev.absmax[action] = 0xFF; >- conf->dev.absmin[action] = 0; >+ conf->dev.absmax[action] = 0xFF/2.0; >+ conf->dev.absmin[action] = -0xFF/2.0; > conf->dev.absfuzz[action] = 0; > conf->dev.absflat[action] = 0; > } >@@ -179,8 +179,8 @@ > case CONF_CC_AXIS_L_STICK_Y: > conf->rpt_mode_flags |= CWIID_RPT_CLASSIC; > if (axis_type == EV_ABS) { >- conf->dev.absmax[action] = CWIID_CLASSIC_L_STICK_MAX; >- conf->dev.absmin[action] = 0; >+ conf->dev.absmax[action] = CWIID_CLASSIC_L_STICK_MAX/2.0; >+ conf->dev.absmin[action] = -CWIID_CLASSIC_L_STICK_MAX/2.0; > conf->dev.absfuzz[action] = 0; > conf->dev.absflat[action] = 0; > } >@@ -189,8 +189,8 @@ > case CONF_CC_AXIS_R_STICK_Y: > conf->rpt_mode_flags |= CWIID_RPT_CLASSIC; > if (axis_type == EV_ABS) { >- conf->dev.absmax[action] = CWIID_CLASSIC_R_STICK_MAX; >- conf->dev.absmin[action] = 0; >+ conf->dev.absmax[action] = CWIID_CLASSIC_R_STICK_MAX/2.0; >+ conf->dev.absmin[action] = -CWIID_CLASSIC_R_STICK_MAX/2.0; > conf->dev.absfuzz[action] = 0; > conf->dev.absflat[action] = 0; > } >diff -ruB cwiid-20110107/wminput/main.c cwiid-20110107_mod/wminput/main.c >--- cwiid-20110107/wminput/main.c 2014-03-02 13:52:01.747409514 +0100 >+++ cwiid-20110107_mod/wminput/main.c 2014-03-02 16:15:47.019374692 +0100 >@@ -510,9 +510,9 @@ > > /* Nunchuk.Stick.X */ > if (conf.amap[CONF_NC_AXIS_STICK_X].active) { >- axis_value = mesg->stick[CWIID_X]; >+ axis_value = mesg->stick[CWIID_X]-0xFF/2.0; > if (conf.amap[CONF_NC_AXIS_STICK_X].flags & CONF_INVERT) { >- axis_value = 0xFF - axis_value; >+ axis_value = -axis_value; > } > send_event(&conf, conf.amap[CONF_NC_AXIS_STICK_X].axis_type, > conf.amap[CONF_NC_AXIS_STICK_X].action, axis_value); >@@ -520,9 +520,9 @@ > > /* Nunchuk.Stick.Y */ > if (conf.amap[CONF_NC_AXIS_STICK_Y].active) { >- axis_value = mesg->stick[CWIID_Y]; >+ axis_value = mesg->stick[CWIID_Y]-0xFF/2.0; > if (conf.amap[CONF_NC_AXIS_STICK_Y].flags & CONF_INVERT) { >- axis_value = 0xFF - axis_value; >+ axis_value = axis_value; > } > send_event(&conf, conf.amap[CONF_NC_AXIS_STICK_Y].axis_type, > conf.amap[CONF_NC_AXIS_STICK_Y].action, axis_value); >@@ -585,9 +585,9 @@ > > /* Classic.LStick.X */ > if (conf.amap[CONF_CC_AXIS_L_STICK_X].active) { >- axis_value = mesg->l_stick[CWIID_X]; >+ axis_value = mesg->l_stick[CWIID_X]-CWIID_CLASSIC_L_STICK_MAX/2.0; > if (conf.amap[CONF_CC_AXIS_L_STICK_X].flags & CONF_INVERT) { >- axis_value = CWIID_CLASSIC_L_STICK_MAX - axis_value; >+ axis_value = -axis_value; > } > send_event(&conf, conf.amap[CONF_CC_AXIS_L_STICK_X].axis_type, > conf.amap[CONF_CC_AXIS_L_STICK_X].action, axis_value); >@@ -595,9 +595,9 @@ > > /* Classic.LStick.Y */ > if (conf.amap[CONF_CC_AXIS_L_STICK_Y].active) { >- axis_value = mesg->l_stick[CWIID_Y]; >+ axis_value = mesg->l_stick[CWIID_Y]-CWIID_CLASSIC_L_STICK_MAX/2.0; > if (conf.amap[CONF_CC_AXIS_L_STICK_Y].flags & CONF_INVERT) { >- axis_value = CWIID_CLASSIC_L_STICK_MAX - axis_value; >+ axis_value = -axis_value; > } > send_event(&conf, conf.amap[CONF_CC_AXIS_L_STICK_Y].axis_type, > conf.amap[CONF_CC_AXIS_L_STICK_Y].action, axis_value); >@@ -605,9 +605,9 @@ > > /* Classic.RStick.X */ > if (conf.amap[CONF_CC_AXIS_R_STICK_X].active) { >- axis_value = mesg->r_stick[CWIID_X]; >+ axis_value = mesg->r_stick[CWIID_X]-CWIID_CLASSIC_R_STICK_MAX/2.0; > if (conf.amap[CONF_CC_AXIS_R_STICK_X].flags & CONF_INVERT) { >- axis_value = CWIID_CLASSIC_R_STICK_MAX - axis_value; >+ axis_value = -axis_value; > } > send_event(&conf, conf.amap[CONF_CC_AXIS_R_STICK_X].axis_type, > conf.amap[CONF_CC_AXIS_R_STICK_X].action, axis_value); >@@ -615,9 +615,9 @@ > > /* Classic.RStick.Y */ > if (conf.amap[CONF_CC_AXIS_R_STICK_Y].active) { >- axis_value = mesg->r_stick[CWIID_Y]; >+ axis_value = mesg->r_stick[CWIID_Y]-CWIID_CLASSIC_R_STICK_MAX/2.0; > if (conf.amap[CONF_CC_AXIS_R_STICK_Y].flags & CONF_INVERT) { >- axis_value = CWIID_CLASSIC_R_STICK_MAX - axis_value; >+ axis_value = -axis_value; > } > send_event(&conf, conf.amap[CONF_CC_AXIS_R_STICK_Y].axis_type, > conf.amap[CONF_CC_AXIS_R_STICK_Y].action, axis_value);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 503214
: 371564