mirror of
https://github.com/shadowfacts/jinput-arm64.git
synced 2026-01-07 17:29:56 +01:00
Wintab compiles, not linking yet though.
This commit is contained in:
parent
9a6fd1cf66
commit
76669f6b51
|
|
@ -33,14 +33,6 @@ import java.util.List;
|
|||
|
||||
public class WinTabComponent extends AbstractComponent {
|
||||
|
||||
public final static int XAxis = 1;
|
||||
public final static int YAxis = 2;
|
||||
public final static int ZAxis = 3;
|
||||
public final static int NPressureAxis = 4;
|
||||
public final static int TPressureAxis = 5;
|
||||
public final static int OrientationAxis = 6;
|
||||
public final static int RotationAxis = 7;
|
||||
|
||||
private int min;
|
||||
private int max;
|
||||
protected float lastKnownValue;
|
||||
|
|
@ -77,27 +69,27 @@ public class WinTabComponent extends AbstractComponent {
|
|||
List components = new ArrayList();
|
||||
Identifier id;
|
||||
switch(axisId) {
|
||||
case XAxis:
|
||||
case WinTabDevice.XAxis:
|
||||
id = Identifier.Axis.X;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
break;
|
||||
case YAxis:
|
||||
case WinTabDevice.YAxis:
|
||||
id = Identifier.Axis.Y;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
break;
|
||||
case ZAxis:
|
||||
case WinTabDevice.ZAxis:
|
||||
id = Identifier.Axis.Z;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
break;
|
||||
case NPressureAxis:
|
||||
case WinTabDevice.NPressureAxis:
|
||||
id = Identifier.Axis.X_FORCE;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
break;
|
||||
case TPressureAxis:
|
||||
case WinTabDevice.TPressureAxis:
|
||||
id = Identifier.Axis.Y_FORCE;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
break;
|
||||
case OrientationAxis:
|
||||
case WinTabDevice.OrientationAxis:
|
||||
id = Identifier.Axis.RX;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
id = Identifier.Axis.RY;
|
||||
|
|
@ -105,7 +97,7 @@ public class WinTabComponent extends AbstractComponent {
|
|||
id = Identifier.Axis.RZ;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[4], axisRanges[5]));
|
||||
break;
|
||||
case RotationAxis:
|
||||
case WinTabDevice.RotationAxis:
|
||||
id = Identifier.Axis.RX;
|
||||
components.add(new WinTabComponent(context, parentDevice, id.getName(), id, axisRanges[0], axisRanges[1]));
|
||||
id = Identifier.Axis.RY;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,14 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
public class WinTabDevice extends AbstractController {
|
||||
public final static int XAxis = 1;
|
||||
public final static int YAxis = 2;
|
||||
public final static int ZAxis = 3;
|
||||
public final static int NPressureAxis = 4;
|
||||
public final static int TPressureAxis = 5;
|
||||
public final static int OrientationAxis = 6;
|
||||
public final static int RotationAxis = 7;
|
||||
|
||||
private WinTabContext context;
|
||||
private List eventList = new ArrayList();
|
||||
|
||||
|
|
@ -74,60 +82,60 @@ public class WinTabDevice extends AbstractController {
|
|||
WinTabEnvironmentPlugin.logln("Device " + deviceIndex + ", name: " + name);
|
||||
List componentsList = new ArrayList();
|
||||
|
||||
int[] axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.XAxis);
|
||||
int[] axisDetails = nGetAxisDetails(deviceIndex, XAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("ZAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("Xmin: " + axisDetails[0] + ", Xmax: " + axisDetails[1]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.XAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, XAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.YAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, YAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("YAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("Ymin: " + axisDetails[0] + ", Ymax: " + axisDetails[1]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.YAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, YAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.ZAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, ZAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("ZAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("Zmin: " + axisDetails[0] + ", Zmax: " + axisDetails[1]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.ZAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, ZAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.NPressureAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, NPressureAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("NPressureAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("NPressMin: " + axisDetails[0] + ", NPressMax: " + axisDetails[1]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.NPressureAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, NPressureAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.TPressureAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, TPressureAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("TPressureAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("TPressureAxismin: " + axisDetails[0] + ", TPressureAxismax: " + axisDetails[1]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.TPressureAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, TPressureAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.OrientationAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, OrientationAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("OrientationAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("OrientationAxis mins/maxs: " + axisDetails[0] + "," + axisDetails[1] + ", " + axisDetails[2] + "," + axisDetails[3] + ", " + axisDetails[4] + "," + axisDetails[5]);
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.OrientationAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, OrientationAxis, axisDetails));
|
||||
}
|
||||
|
||||
axisDetails = nGetAxisDetails(deviceIndex, WinTabComponent.RotationAxis);
|
||||
axisDetails = nGetAxisDetails(deviceIndex, RotationAxis);
|
||||
if(axisDetails.length==0) {
|
||||
WinTabEnvironmentPlugin.logln("RotationAxis not supported");
|
||||
} else {
|
||||
WinTabEnvironmentPlugin.logln("RotationAxis is supported (by the device, not by this plugin)");
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, WinTabComponent.RotationAxis, axisDetails));
|
||||
componentsList.addAll(WinTabComponent.createComponents(context, deviceIndex, RotationAxis, axisDetails));
|
||||
}
|
||||
|
||||
String[] cursorNames = nGetCursorNames(deviceIndex);
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
<project name="JInput wintab port, Native code" basedir="." default="compile">
|
||||
<property environment="env"/>
|
||||
<property name="wintabhome" location="${env.WINTAB_DIR}"/>
|
||||
<property name="wintabhome" location="${env.WintabSdkDir}"/>
|
||||
<property name="sdkhome" location="${env.WindowsSdkDir}"/>
|
||||
<property name="generated-natives" location="..\..\..\target\generated-sources\natives"/>
|
||||
<property name="compiled-natives" location="..\..\..\target/natives"/>
|
||||
<property name="jinput-windows-headers" location="../../../../windows/target/generated-sources/natives"/>
|
||||
<property name="jinput-windows-sources" location="../../../../windows/src/main/native"/>
|
||||
|
||||
<target name="init">
|
||||
<mkdir dir="${compiled-natives}"/>
|
||||
|
|
@ -16,12 +18,13 @@
|
|||
<echo message="wintab: ${wintabhome}"/>
|
||||
<apply dir="${compiled-natives}" failonerror="true" executable="cl" dest="${compiled-natives}" skipemptyfilesets="true">
|
||||
<arg line="/Ox /W2 /nologo /c"/>
|
||||
<arg value="/I${sdkhome}\include"/>
|
||||
<arg value="/I${wintabhome}\include"/>
|
||||
<arg value="/I${java.home}\include"/>
|
||||
<arg value="/I${java.home}\include\win32"/>
|
||||
<arg line="/I"${sdkhome}\include""/>
|
||||
<arg line="/I"${wintabhome}""/>
|
||||
<arg line="/I"${java.home}\include""/>
|
||||
<arg line="/I"${java.home}\include\win32""/>
|
||||
<arg value="/I${commonhome}/src/native"/>
|
||||
<arg value="/I${generated-natives}"/>
|
||||
<arg value="/I${jinput-windows-headers}"/>
|
||||
<srcfile/>
|
||||
<fileset dir="${compiledir}" includes="*.c"/>
|
||||
<mapper type="glob" from="*.c" to="*.obj"/>
|
||||
|
|
@ -33,16 +36,15 @@
|
|||
<arg line="/LD /nologo"/>
|
||||
<srcfile/>
|
||||
<arg line="/Fe${dllname} /link"/>
|
||||
<arg value="/LIBPATH:${java.home}\lib"/>
|
||||
<arg value="/LIBPATH:${wintabhome}\lib\I386"/>
|
||||
<arg value="/LIBPATH:${sdkhome}\lib"/>
|
||||
<arg line="/LIBPATH:"${java.home}\lib""/>
|
||||
<arg line="/LIBPATH:"${sdkhome}\lib""/>
|
||||
<arg line="/DLL ${libs}"/>
|
||||
<fileset dir="${compiled-natives}" includes="*.obj"/>
|
||||
</apply>
|
||||
</target>
|
||||
|
||||
<target name="compile" depends="init">
|
||||
<property name="wintablibs" value="Kernel32.lib WINTAB32.LIB User32.lib"/>
|
||||
<property name="wintablibs" value="Kernel32.lib User32.lib"/>
|
||||
<property name="commonhome" location="../../../../common"/>
|
||||
<property name="dllname" value="jinput-wintab.dll"/>
|
||||
<antcall target="compile_dir">
|
||||
|
|
@ -52,7 +54,7 @@
|
|||
<param name="compiledir" location="."/>
|
||||
</antcall>
|
||||
<antcall target="compile_dir">
|
||||
<param name="compiledir" location="../../../windows/src/native"/>
|
||||
<param name="compiledir" location="${jinput-windows-sources}"/>
|
||||
</antcall>
|
||||
<antcall target="link">
|
||||
<param name="dllname" value="${dllname}"/>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
#include <jni.h>
|
||||
#include "net_java_games_input_WinTabDevice.h"
|
||||
#include "net_java_games_input_WinTabComponent.h"
|
||||
#include "util.h"
|
||||
#include <wintab.h>
|
||||
#include <malloc.h>
|
||||
|
|
@ -26,15 +25,15 @@ JNIEXPORT jintArray JNICALL Java_net_java_games_input_WinTabDevice_nGetAxisDetai
|
|||
int res;
|
||||
jintArray retVal = NULL;
|
||||
|
||||
if(axisId==net_java_games_input_WinTabComponent_XAxis) type = DVC_X;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_YAxis) type = DVC_Y;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_ZAxis) type = DVC_Z;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_NPressureAxis) type = DVC_NPRESSURE;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_TPressureAxis) type = DVC_TPRESSURE;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_OrientationAxis) type = DVC_ORIENTATION;
|
||||
else if(axisId==net_java_games_input_WinTabComponent_RotationAxis) type = DVC_ROTATION;
|
||||
if(axisId==net_java_games_input_WinTabDevice_XAxis) type = DVC_X;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_YAxis) type = DVC_Y;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_ZAxis) type = DVC_Z;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_NPressureAxis) type = DVC_NPRESSURE;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_TPressureAxis) type = DVC_TPRESSURE;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_OrientationAxis) type = DVC_ORIENTATION;
|
||||
else if(axisId==net_java_games_input_WinTabDevice_RotationAxis) type = DVC_ROTATION;
|
||||
|
||||
if(axisId==net_java_games_input_WinTabComponent_RotationAxis || axisId==net_java_games_input_WinTabComponent_OrientationAxis) {
|
||||
if(axisId==net_java_games_input_WinTabDevice_RotationAxis || axisId==net_java_games_input_WinTabDevice_OrientationAxis) {
|
||||
res = WTInfo(WTI_DEVICES + deviceIndex, type, &threeAxisArray);
|
||||
if(res!=0) {
|
||||
threeAxisData[0] = threeAxisArray[0].axMin;
|
||||
|
|
|
|||
Loading…
Reference in a new issue