mirror of
https://github.com/shadowfacts/jinput-arm64.git
synced 2025-12-06 08:01:59 +01:00
Updated rumblers to be able to get their axis name and axis identifier
This commit is contained in:
parent
a4176e75f8
commit
ec62ee8549
|
|
@ -49,4 +49,19 @@ public interface Rumbler {
|
|||
*/
|
||||
public abstract void rumble(float intensity);
|
||||
|
||||
/**
|
||||
* Get the string name of the axis the rumbler is attached to
|
||||
*
|
||||
* @return The axis name
|
||||
*/
|
||||
public String getAxisName();
|
||||
|
||||
/**
|
||||
* Get the axis identifier the rumbler is attached to
|
||||
*
|
||||
* @return The axis identifier
|
||||
*/
|
||||
public Axis.Identifier getAxisIdentifier();
|
||||
|
||||
|
||||
} // interface Rumbler
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ public class RumbleTest {
|
|||
Rumbler[] rumblers = controllers[i].getRumblers();
|
||||
System.out.println("Found " + rumblers.length + " rumblers");
|
||||
for(int j=0;j<rumblers.length;j++) {
|
||||
System.out.println("Rumbler " + rumblers[j].getAxisName() + " on axis " + rumblers[j].getAxisIdentifier().getName());
|
||||
System.out.println("Rumbling with intensity: " + 0.5f);
|
||||
rumblers[j].rumble(0.5f);
|
||||
try {
|
||||
|
|
@ -36,6 +37,20 @@ public class RumbleTest {
|
|||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
System.out.println("Fading rumble to -1");
|
||||
for(float k=1.0f;k>-1.0f;) {
|
||||
long startTime = System.currentTimeMillis();
|
||||
rumblers[j].rumble(k);
|
||||
try {
|
||||
Thread.sleep(1);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
k-=((float)(System.currentTimeMillis() - startTime))/1000f;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
System.out.println("Rumbling with intensity: " + 0.0f);
|
||||
rumblers[j].rumble(0f);
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -159,8 +159,8 @@ class DirectInputDevice extends AbstractController {
|
|||
* @param effect the natie effect id
|
||||
* @param axisID The axis ID
|
||||
*/
|
||||
private void addRumbler(long effect, Axis.Identifier axisID) {
|
||||
rumblerList.add(new DirectInputRumbler(this, effect, axisID));
|
||||
private void addRumbler(long effect, Axis.Identifier axisID, String axisName) {
|
||||
rumblerList.add(new DirectInputRumbler(this, effect, axisID, axisName));
|
||||
}
|
||||
|
||||
/** Polls axes for data. Returns false if the controller is no longer valid.
|
||||
|
|
|
|||
|
|
@ -15,12 +15,22 @@ public class DirectInputRumbler implements net.java.games.input.Rumbler {
|
|||
private DirectInputDevice device;
|
||||
private long effect;
|
||||
private Axis.Identifier axisID;
|
||||
private String axisName;
|
||||
|
||||
/** Creates a new instance of DirectInputRumbler */
|
||||
public DirectInputRumbler(DirectInputDevice device, long effect, Axis.Identifier axisID) {
|
||||
public DirectInputRumbler(DirectInputDevice device, long effect, Axis.Identifier axisID, String axisName) {
|
||||
this.device = device;
|
||||
this.effect = effect;
|
||||
this.axisID = axisID;
|
||||
this.axisName = axisName;
|
||||
}
|
||||
|
||||
public Axis.Identifier getAxisIdentifier() {
|
||||
return axisID;
|
||||
}
|
||||
|
||||
public String getAxisName() {
|
||||
return axisName;
|
||||
}
|
||||
|
||||
public void rumble(float intensity) {
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ BOOL InitIDs(JNIEnv* env) {
|
|||
return FALSE;
|
||||
}
|
||||
MID_AddRumbler = env->GetMethodID(CLASS_DirectInputDevice, "addRumbler",
|
||||
"(JLnet/java/games/input/Axis$Identifier;)V");
|
||||
"(JLnet/java/games/input/Axis$Identifier;Ljava/lang/String;)V");
|
||||
if (MID_AddRumbler == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -700,7 +700,7 @@ BOOL CALLBACK EnumObjectsCallback(LPCDIDEVICEOBJECTINSTANCE lpddoi,
|
|||
return res;
|
||||
}
|
||||
|
||||
env->CallVoidMethod(obj, MID_AddRumbler, (jlong)(long)g_pEffect, identifier);
|
||||
env->CallVoidMethod(obj, MID_AddRumbler, (jlong)(long)g_pEffect, identifier, name);
|
||||
}
|
||||
return DIENUM_CONTINUE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue