From 784707cd3bec4586808ca5e71b74e97d46dfca02 Mon Sep 17 00:00:00 2001 From: "guilhem.duche" Date: Sun, 27 Apr 2008 21:01:55 +0000 Subject: [PATCH] 0.12 work in progress git-svn-id: http://wiiusej.googlecode.com/svn/trunk@128 ae48ae66-6a45-0410-b38e-211266189506 --- WiiUseJ/WiiUseJ.dll | Bin 25448 -> 27491 bytes WiiUseJ/src/wiiusej/WiiUseApi.java | 59 +++++++- WiiUseJ/src/wiiusej/WiiUseApiManager.java | 5 + WiiUseJ/src/wiiusej/values/Orientation.java | 141 +++++++++++------- .../wiiuseapievents/EventsGatherer.java | 8 +- .../wiiusej/wiiuseapievents/GenericEvent.java | 10 +- .../wiiuseapievents/MotionSensingEvent.java | 20 ++- WiiUseJ/wiiuse.dll | Bin 114688 -> 114688 bytes 8 files changed, 177 insertions(+), 66 deletions(-) diff --git a/WiiUseJ/WiiUseJ.dll b/WiiUseJ/WiiUseJ.dll index 6999b85fbbbf9b878b4a06dd2f4cee4e6524785c..c6201d6cf0e45d576046e9e6512d9dec0fb49a0d 100644 GIT binary patch literal 27491 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 A!2kdN delta 7718 zcmchceNYtV9mk*DJK%Ve<2c1Q6wc#RVhGv2I}TLt1wTbLpMCb(<1c5q3$JngJLe?7`S%s1h>(AAgp85I{8WxFC00Vn!hr)G z!!3u%z`Ju(LMZ@YLM|Hy=H_w->0RC|I>ZO)*h&+B&_W;KzAuG@5SB(4^0}VN2B`!w z;#dGpNdZDeiaHzHIyMk;5Y>_>#6yL#hxymIS^F{x5l{EcB*DV)>qZAokPF?J^j>2D zzc8KdFfQS}ne;ct?4-eToasoXe=^?0UpCW!8;kkfW-2BW@%Ni)LxMH+Ed=ySiH;}a zZ~{$Fv~g})lz1~&N^28KxiUJC*ox0S}qu8L3&&AJuvA@o^M{l-rU+ag#LCPlKjhZX?Z0y-ogXX4P}e z^rcjHN?Sb2N}BrVXwvM=uv`cgu3b~pb7?#MW}3^|4ca@>ee157HVmiu?xHsznoGyh zoScDXrN7BN8atm}!e!LqGVF4H_sa4DTgHwngx;D_)^Ej&Au_iX-(|9;D-zs-^w*!f?;kiSC1n?jjt~?4durAW}3MC%i+Rs#?QxlE*X2TY^e}W_nzL8+n3|G z(8Wff%rP+&Wq&&Bi*;%7b^^xJ#Jrpv^0piD)*JGU8}epNes8vY4bhN^dDqag{(iN_ zt2g9X%hmI24t{w4)vo88RuL-rUyn>R+{O93o%))T@8!YQjDM94UF zxPcJ!ELm70%ura?a26qP&BPH3AA&NPGyn8LC~abzO!VG?9TQDI!jN1+0AaupPTo`=q^j}T(OisXXsfgXW= z47~+ihYB_lvKs1v4nglh>5YW=p-s?U=vUB3khzJFQs^G&A?SP15$FRba}yzpp(dyo zdKNkbT`$JRf@VT$pszvCK);8QS_tt#&CnCj@1Reh>{b}H(!|`RSTr}Er=xWHpstv!*p@4Bd0f_lpzBS6W)ObT!tuw6}DlaYiNI)Y6Wb zfg4CZzoDbOy>SBzAz8Gcu!oyPKPb%Ovk9HpIGg%zZCYSaLc1Ef>svbOw{|whJABh5 z?{4Vc(nSqL?GZGl4EJWTkR^yhwQxWa{a?~-Q{qL?z`M|?j7y{ z_lxeA-KoX1i;If=#qGtB;_nqdSN!YZw~GH>97*!zc}hHA@@(>a-LuE@qUUALpFJOY ztR-_xmX)k2`Etp&l7l6ON{*DgR&uH&xpYRUt8`;&OX*6VxGOQsp zU^=EDi$Tn=RehR40vfU}0ug0Rs#~ykRFh*h8zMJ(vWi?qZ*Q7B#W@1PPMK;KLrih1`^Vc zCqbe~RPfA67)&Lko_@*mP~>euC7~juKQk)~9jYV}xd>uK|5Wl%5F2)-2$N$z-^Z=< zacF%aFe;daQK`5NLJVHCK*2)CrpC-A?0BBWAh6xJD4 z{cj^urSsXT^9kyF(0?hZ*S=b3v|ndbt25I31a&^cI-gKv8b+&iMkjPe&C~Fy)%jdv z_pv%1*sKmu!)Tq($b{k3`fQtqPl&^=KrO~@vmBjKbQ(q*bq#Xse0F}WPyG6;*PgAk z+6D!6M*W{_#IC>U)28!j)A{UUKCFJJ*yk@GVV%(qozc)V8q}@x*%$Z8Q>tgz{<%q` zqNbL%Ml@}J{-P`|@iUwoPN#c(`6)^Smqzo-Z=yC|3N7;bxTol5ZyuLGcYE^_EqDry zq|^7x<_rkNh4YXbkC$Rk#rpdC%?&N>BsfD^yoZ@ zyt2wrj>SXH8K`rqot{O=1zpHE3&|QqSEbor)UvUmyTMUxrAwFQTaW4DiG?*~%s^j2 zt*4h-tmC>6GYiQ&p|dnoe`P+sy28TS;wEPd^l-VIo~*Rc^_3Q0h{L}csHehCtCv}_ z*seuxlspNu=mX1&t!XNkr%b?tp=za$TZK1A}^LV2?0*4Ls;gxo-oj$!XFL5zUP;$gSC;s~%zJ^?OI(~aOy|X%r zAGFXl)yug=`eb!J9a)+}->5E#RHKNrHI$|^AzML)&{%XNKEVn37KpO;vnh{vO%P=# zAdwgdODrdmS3ve#r2Q0DiKfoRMw}bVRBjR$eJa9?Ak-%pyN;Z)Rg;V|vE!3=hDuC1 z$PggA*`=6uAkw~AA=^Qs=!5D!#C+r=l{%D!wOUz5B|5>!(_* zBOb%z6r-<$geQlZ@!h(Zr$7XGsh8?H1j3$G@g$*N0|hm$J_n*ajHH;4K$QKIL`X7z zQ_)ywg4Ak=4TL52k`;jrv3DMIqTR)UG(*$^V%0S0D&5fJ!`vVc;SJ);u?R*45QOq*6wW)XmD$rCm zA0(uSsR9uY!+In2=x&f<4Q#T*Awwk=Yrvmk1NnBxbjn7RQpS?#?AulUz+N*(H(K~`%js|HaX zI+Argh_bVj$X7v>9kWFCf`l})`FW6t^dhVb;~5}jt0@)x1cZ&TdZiO!qP!bPF}WZ% zjrA?aNw3C=^L-%Ani#ei4@WdJ^#G7V)7N1T>GfGL`U^-%Gd)wWhte)CHjsYAspDD- zQlKHrK%(jNjhfuZT6{HYs%-)p(==@_$jId6!Dg{7{{JP-Y<>zc>cfIv;h%sMXq21b6 zfS4)$C`S-WYR^`IDBBCEvW*~B8tVt;QmXaiAR$f6vvQ2;{3=NN@u8x3S&*jKMUbH8 zn*AFjG`YC2#wKBIDDScCaoW(;)!5l>)(rK0#3*lsQa6@?1lZ$4ZS}oCX3gd31qo^@ z`!>iBN~sT>!yt!|Reer^L=l5O+`siTZH 5, then + * level will be set to 5. + */ + synchronized native void setIrSensitivity(int id, int level); + /** * Check for new Events and Get it. * * @param gath * the object where we store all the new events. */ - native void specialPoll(EventsGatherer gath); + synchronized native void specialPoll(EventsGatherer gath); } diff --git a/WiiUseJ/src/wiiusej/WiiUseApiManager.java b/WiiUseJ/src/wiiusej/WiiUseApiManager.java index 5ca67d6..172070f 100644 --- a/WiiUseJ/src/wiiusej/WiiUseApiManager.java +++ b/WiiUseJ/src/wiiusej/WiiUseApiManager.java @@ -386,6 +386,11 @@ public class WiiUseApiManager extends Thread { /* Polling */ wiiuse.specialPoll(gather); + try { + wiiuse.notify(); + } catch (Exception e) { + // TODO: handle exception + } /* deal with events gathered in Wiiuse API */ for (WiiUseApiEvent evt : gather.getEvents()) { diff --git a/WiiUseJ/src/wiiusej/values/Orientation.java b/WiiUseJ/src/wiiusej/values/Orientation.java index 4c4f741..124d890 100644 --- a/WiiUseJ/src/wiiusej/values/Orientation.java +++ b/WiiUseJ/src/wiiusej/values/Orientation.java @@ -18,59 +18,100 @@ package wiiusej.values; /** * Class that represents the orientation of the wiimote. + * * @author guiguito */ public class Orientation { - - private float roll; - private float pitch; - private float yaw; - - /** - * Default constructor. - */ - public Orientation(){ - roll = 0; - pitch = 0; - yaw = 0; - } - - /** - * Contructor with raw, pitch , yaw. - * @param r raw - * @param p pitch - * @param y yaw - */ - public Orientation(float r, float p, float y){ - roll = r; - pitch = p; - yaw = y; - } - - /** - * @return the roll - */ - public float getRoll() { - return roll; - } - /** - * @return the pitch - */ - public float getPitch() { - return pitch; - } + private float roll; + private float pitch; + private float yaw; + private float a_roll; + private float a_pitch; + + /** + * Default constructor. + */ + public Orientation() { + roll = 0; + pitch = 0; + yaw = 0; + a_roll = 0; + a_pitch = 0; + } + + /** + * Contructor with raw, pitch , yaw. + * + * @param r + * roll (can be smoothed) + * @param p + * pitch (can be smoothed) + * @param y + * yaw + * @param ar + * absolute roll + * @param ap + * absolute pitch + */ + public Orientation(float r, float p, float y, float ar, float ap) { + roll = r; + pitch = p; + yaw = y; + a_roll = ar; + a_pitch = ap; + } + + /** + * Get the roll (can be smoothed). + * + * @return the roll + */ + public float getRoll() { + return roll; + } + + /** + * Get the pitch (can be smoothed). + * + * @return the pitch + */ + public float getPitch() { + return pitch; + } + + /** + * Get the yaw. + * + * @return the yaw + */ + public float getYaw() { + return yaw; + } + + /** + * Get absolute roll (can not be smoothed). + * + * @return the a_roll + */ + public float getARoll() { + return a_roll; + } + + /** + * Get absolute pitch (can not be smoothed). + * + * @return the a_pitch + */ + public float getAPitch() { + return a_pitch; + } + + @Override + public String toString() { + return "Orientation : (roll: " + roll + ", pitch: " + pitch + ", yaw: " + + yaw + ", absolute roll: " + a_roll + ", absolute pitch: " + + a_pitch + ")"; + } - /** - * @return the yaw - */ - public float getYaw() { - return yaw; - } - - @Override - public String toString() { - return "Orientation : (roll: "+roll+", pitch: "+pitch+", yaw: "+yaw+")"; - } - } diff --git a/WiiUseJ/src/wiiusej/wiiuseapievents/EventsGatherer.java b/WiiUseJ/src/wiiusej/wiiuseapievents/EventsGatherer.java index 5c83d78..ef2f85f 100644 --- a/WiiUseJ/src/wiiusej/wiiuseapievents/EventsGatherer.java +++ b/WiiUseJ/src/wiiusej/wiiuseapievents/EventsGatherer.java @@ -140,6 +140,10 @@ public class EventsGatherer { * pitch * @param ya * yaw + * @param ar + * absolute roll + * @param ap + * absolute pitch * @param x * gravity force on x axis * @param y @@ -155,12 +159,12 @@ public class EventsGatherer { */ public void addMotionSensingValues(float orientationThreshold, int accelerationThreshold, boolean smoothingState, - float alphaSmooth, float r, float p, float ya, float x, float y, + float alphaSmooth, float r, float p, float ya, float ar, float ap, float x, float y, float z, short xx, short yy, short zz) { if (genericEvent != null) { genericEvent.setMotionSensingEvent(orientationThreshold, accelerationThreshold, smoothingState, alphaSmooth, r, p, - ya, x, y, z, xx, yy, zz); + ya, ar, ap, x, y, z, xx, yy, zz); } } diff --git a/WiiUseJ/src/wiiusej/wiiuseapievents/GenericEvent.java b/WiiUseJ/src/wiiusej/wiiuseapievents/GenericEvent.java index e8ea39b..2ceb3a6 100644 --- a/WiiUseJ/src/wiiusej/wiiuseapievents/GenericEvent.java +++ b/WiiUseJ/src/wiiusej/wiiuseapievents/GenericEvent.java @@ -176,6 +176,10 @@ public class GenericEvent extends WiiUseApiEvent { * pitch * @param ya * yaw + * @param ar + * absolute roll + * @param ap + * absolute pitch * @param x * gravity force on x axis * @param y @@ -191,11 +195,11 @@ public class GenericEvent extends WiiUseApiEvent { */ public void setMotionSensingEvent(float orientationThreshold, int accelerationThreshold, boolean smoothingState, - float alphaSmooth, float r, float p, float ya, float x, float y, - float z, short xx, short yy, short zz) { + float alphaSmooth, float r, float p, float ya, float ar, float ap, + float x, float y, float z, short xx, short yy, short zz) { motionSensingEvent = new MotionSensingEvent(getWiimoteId(), orientationThreshold, accelerationThreshold, smoothingState, - alphaSmooth, r, p, ya, x, y, z, xx, yy, zz); + alphaSmooth, r, p, ya, ar, ap, x, y, z, xx, yy, zz); } @Override diff --git a/WiiUseJ/src/wiiusej/wiiuseapievents/MotionSensingEvent.java b/WiiUseJ/src/wiiusej/wiiuseapievents/MotionSensingEvent.java index 6ec7712..b709ff3 100644 --- a/WiiUseJ/src/wiiusej/wiiuseapievents/MotionSensingEvent.java +++ b/WiiUseJ/src/wiiusej/wiiuseapievents/MotionSensingEvent.java @@ -58,6 +58,10 @@ public class MotionSensingEvent extends WiimoteEvent { * pitch * @param ya * yaw + * @param ar + * absolute roll + * @param ap + * absolute pitch * @param x * gravity force on x axis * @param y @@ -73,14 +77,14 @@ public class MotionSensingEvent extends WiimoteEvent { */ public MotionSensingEvent(int id, float orientationThreshold, int accelerationThreshold, boolean smoothingState, - float alphaSmooth, float r, float p, float ya, float x, float y, - float z, short xx, short yy, short zz) { + float alphaSmooth, float r, float p, float ya, float ar, float ap, + float x, float y, float z, short xx, short yy, short zz) { super(id); this.orientationThreshold = orientationThreshold; this.accelerationThreshold = accelerationThreshold; this.isSmoothingActive = smoothingState; this.alphaSmoothing = alphaSmooth; - setOrientationAndGforce(r, p, ya, x, y, z, xx, yy, zz); + setOrientationAndGforce(r, p, ya, ar, ap, x, y, z, xx, yy, zz); } /** @@ -92,6 +96,10 @@ public class MotionSensingEvent extends WiimoteEvent { * pitch * @param ya * yaw + * @param ar + * absolute roll + * @param ap + * absolute pitch * @param x * gravity force on x axis * @param y @@ -105,9 +113,9 @@ public class MotionSensingEvent extends WiimoteEvent { * @param zz * raw acceleration on z axis */ - private void setOrientationAndGforce(float r, float p, float ya, float x, - float y, float z, short xx, short yy, short zz) { - this.orientation = new Orientation(r, p, ya); + private void setOrientationAndGforce(float r, float p, float ya, float ar, + float ap, float x, float y, float z, short xx, short yy, short zz) { + this.orientation = new Orientation(r, p, ya, ar, ap); this.gforce = new GForce(x, y, z); this.acceleration = new RawAcceleration(xx, yy, zz); } diff --git a/WiiUseJ/wiiuse.dll b/WiiUseJ/wiiuse.dll index 6855619edad1c5156421d3af3983f527fe6db9ce..a7e228c8743a1ff5cd537f1670304e79c2f46c2b 100644 GIT binary patch delta 26899 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 z%0D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 QHq}1$4*s(aFt!K(FX^ooJpcdz