Changes for Axis.Identifier changes. This includes renaming Axis to Component, and creating the Identifier objects for Key Axis and Button.

This commit is contained in:
endolf 2004-08-29 21:23:06 +00:00
parent e312d8dd34
commit fa132b2126
30 changed files with 1295 additions and 1347 deletions

View file

@ -96,7 +96,7 @@
<delete file="bin/dxinput.jar" failonerror="no"/>
<delete file="bin/dxinput.dll" failonerror="no"/>
<delete file="../../coreAPI/src/tests/controller/dxinput.jar" failonerror="no" />
<delete file="../../coreAPI/src/test/controller/dxinput.dll" failonerror="no"/>
<delete file="../../coreAPI/src/tests/controller/dxinput.dll" failonerror="no"/>
<delete dir="../../docs/input/win32/apidoc" failonerror="no"/>
</target>

View file

@ -38,15 +38,15 @@
*****************************************************************************/
package net.java.games.input;
import net.java.games.input.AbstractAxis;
import net.java.games.input.Axis;
import net.java.games.input.AbstractComponent;
import net.java.games.input.Component;
/**
*
* @author martak
* @version
*/
class DirectInputAxis extends AbstractAxis {
class DirectInputAxis extends AbstractComponent {
/**
* DIDFT_ constants and macros defined in dinput.h
@ -106,31 +106,31 @@ class DirectInputAxis extends AbstractAxis {
private int bitmask = 0xffffffff;
private int bitshift = 0;
private DirectInputAxis(DirectInputDevice device, Axis.Identifier id,
private DirectInputAxis(DirectInputDevice device, Component.Identifier id,
int didft, String name) {
super(name, id);
this.device = device;
this.type = DIDFT_GETTYPE(didft);
this.instance = DIDFT_GETINSTANCE(didft);
if (id == Axis.Identifier.X) {
if (id == Component.Identifier.Axis.X) {
offset = 0;
} else if (id == Axis.Identifier.Y) {
} else if (id == Component.Identifier.Axis.Y) {
offset = 1;
} else if (id == Axis.Identifier.Z) {
} else if (id == Component.Identifier.Axis.Z) {
offset = 2;
} else if (id == Axis.Identifier.RX) {
} else if (id == Component.Identifier.Axis.RX) {
offset = 3;
} else if (id == Axis.Identifier.RY) {
} else if (id == Component.Identifier.Axis.RY) {
offset = 4;
} else if (id == Axis.Identifier.RZ) {
} else if (id == Component.Identifier.Axis.RZ) {
offset = 5;
} else if (id == Axis.Identifier.SLIDER) {
} else if (id == Component.Identifier.Axis.SLIDER) {
//System.out.println("Slider on "+name+" instance = "+instance);
offset = 6 + (instance>>2);
} else if (id == Axis.Identifier.POV) {
} else if (id == Component.Identifier.Axis.POV) {
//System.out.println("POV on "+name+" instance = "+instance);
offset = 8 + instance;
} else if (id == Axis.Identifier.BUTTON) {
} else if (id instanceof Component.Identifier.Button) {
//System.out.println("Button on "+name+" instance = "+instance);
offset = 12 + (instance/4);
bitshift = (instance%4)*8;
@ -152,26 +152,26 @@ class DirectInputAxis extends AbstractAxis {
return ((float)data)/32768;
} else if ((type&DIDFT_POV)!=0) {
if (data == -1) {
return Axis.POV.OFF;
return Component.POV.OFF;
} else if (data == 0.0) {
return Axis.POV.UP;
return Component.POV.UP;
} else if (data == 4500) {
return Axis.POV.UP_RIGHT;
return Component.POV.UP_RIGHT;
} else if (data == 9000) {
return Axis.POV.RIGHT;
return Component.POV.RIGHT;
} else if (data == 13500) {
return Axis.POV.DOWN_RIGHT;
return Component.POV.DOWN_RIGHT;
} else if (data == 18000) {
return Axis.POV.DOWN;
return Component.POV.DOWN;
} else if (data == 22500) {
return Axis.POV.DOWN_LEFT;
return Component.POV.DOWN_LEFT;
} else if (data == 27000) {
return Axis.POV.LEFT;
return Component.POV.LEFT;
} else if (data == 31500) {
return Axis.POV.UP_LEFT;
return Component.POV.UP_LEFT;
} else {
System.err.print("Unexpected value for DX8 HAT: "+data);
return Axis.POV.OFF;
return Component.POV.OFF;
}
} else { // return raw value
return (float)data;
@ -213,7 +213,7 @@ class DirectInputAxis extends AbstractAxis {
* @param id The identifier for the device
*/
public static DirectInputAxis createAxis(DirectInputDevice device,
Axis.Identifier id, int didft, String name) {
Component.Identifier id, int didft, String name) {
return new DirectInputAxis(device, id, didft, name);
}
}

View file

@ -39,8 +39,7 @@
package net.java.games.input;
import net.java.games.input.AbstractController;
import net.java.games.input.Axis;
import net.java.games.input.Controller;
import net.java.games.input.Component;
import java.util.ArrayList;
import java.util.Iterator;
@ -120,21 +119,21 @@ class DirectInputDevice extends AbstractController {
default:
type = Type.STICK; break;
}
axes = initDirectInputAxes();
components = initDirectInputAxes();
}
/**
* Used instead of overriding initAxes because it needs the
* pointer to the IDirectInputDevice
*/
private Axis[] initDirectInputAxes() {
private Component[] initDirectInputAxes() {
ArrayList list = new ArrayList();
enumObjects(lpDevice, list);
Axis[] ret = new Axis[list.size()];
Component[] ret = new Component[list.size()];
Iterator it = list.iterator();
int i = 0;
while (it.hasNext()) {
ret[i] = (Axis)it.next();
ret[i] = (Component)it.next();
i++;
}
return ret;
@ -148,7 +147,7 @@ class DirectInputDevice extends AbstractController {
* instance number of the axis.
* @param name The name to call the axis.
*/
private void addAxis(ArrayList list, Axis.Identifier id, int didft,
private void addAxis(ArrayList list, Component.Identifier id, int didft,
String name) {
list.add(DirectInputAxis.createAxis(this, id, didft, name));
}
@ -159,7 +158,7 @@ class DirectInputDevice extends AbstractController {
* @param effect the natie effect id
* @param axisID The axis ID
*/
private void addRumbler(long effect, Axis.Identifier axisID, String axisName) {
private void addRumbler(long effect, Component.Identifier axisID, String axisName) {
rumblerList.add(new DirectInputRumbler(this, effect, axisID, axisName));
}

View file

@ -38,7 +38,6 @@
*****************************************************************************/
package net.java.games.input;
import java.security.AccessController;
import java.util.ArrayList;
import java.util.Iterator;
import net.java.games.input.Controller;
@ -59,7 +58,9 @@ public class DirectInputEnvironmentPlugin extends ControllerEnvironment
java.security.AccessController.doPrivileged(
new LoadLibraryAction("jinput"));
*/
System.loadLibrary("dxinput");
if(isSupported()) {
System.loadLibrary("dxinput");
}
}
/**
@ -109,8 +110,22 @@ public class DirectInputEnvironmentPlugin extends ControllerEnvironment
/** Creates new DirectInputEnvironment */
public DirectInputEnvironmentPlugin() {
lpDirectInput = directInputCreate();
enumControllers();
if(isSupported()) {
lpDirectInput = directInputCreate();
enumControllers();
} else {
controllers = new Controller[0];
}
}
public static boolean isSupported() {
System.out.println("OS name is: " + System.getProperty("os.name"));
if(System.getProperty("os.name").indexOf("Windows")!=-1) {
System.out.println("DX8 plugin is supported");
return true;
}
System.out.println("DX8 plugin is not supported");
return false;
}
/** Returns a list of all controllers available to this environment,

View file

@ -38,8 +38,8 @@
*****************************************************************************/
package net.java.games.input;
import net.java.games.input.AbstractAxis;
import net.java.games.input.Axis;
import net.java.games.input.AbstractComponent;
import net.java.games.input.Component;
import net.java.games.input.StandardKeyboard;
/**
@ -143,8 +143,8 @@ class DirectInputKeyboard extends StandardKeyboard {
for (; CROSSTABLE[keyIndex] > index; keyIndex--)
;
if (CROSSTABLE[keyIndex] == index) {
Axis[] axes = getAxes();
AbstractAxis key = (AbstractAxis)axes[index];
Component[] components = getComponents();
AbstractComponent key = (AbstractComponent)components[index];
if (name != null && name.length() > 0) {
//System.out.println("Renaming key " + key.getName() +
// " to " + name + " index=" +
@ -173,7 +173,7 @@ class DirectInputKeyboard extends StandardKeyboard {
* @return true if this key has changed state since last read of its state, false otherwise.
*/
protected boolean isKeyPressed(Key key) {
KeyID id = (KeyID)key.getIdentifier();
Component.Identifier.Key id = (Component.Identifier.Key)key.getIdentifier();
int keyIndex = id.getKeyIndex();
int crossIndex = CROSSTABLE[keyIndex];
return ((keyData[crossIndex] & 0x80) != 0);

View file

@ -38,8 +38,8 @@
*****************************************************************************/
package net.java.games.input;
import net.java.games.input.AbstractAxis;
import net.java.games.input.Axis;
import net.java.games.input.AbstractComponent;
import net.java.games.input.Component;
import net.java.games.input.Mouse;
/**
@ -105,12 +105,12 @@ class DirectInputMouse extends Mouse {
/**
* Callback to rename a given axis by type, name
*/
private void renameAxis(Axis.Identifier id, String name) {
AbstractAxis axis;
if (id instanceof ButtonID) {
axis = (AbstractAxis)getButtons().getAxis(id);
private void renameAxis(Component.Identifier id, String name) {
AbstractComponent axis;
if (id instanceof Component.Identifier.Button) {
axis = (AbstractComponent)getButtons().getComponent(id);
} else {
axis = (AbstractAxis)getBall().getAxis(id);
axis = (AbstractComponent)getBall().getComponent(id);
}
axis.setName(name);
//System.out.println("Renaming " + name);
@ -160,10 +160,10 @@ class DirectInputMouse extends Mouse {
public BallImpl() {
super(DirectInputMouse.this.getName() + " ball");
numAxes = getNumAxes(lpDevice);
x = new BallAxis(Axis.Identifier.X);
y = new BallAxis(Axis.Identifier.Y);
x = new BallAxis(Component.Identifier.Axis.X);
y = new BallAxis(Component.Identifier.Axis.Y);
if(numAxes > 2) {
wheel = new BallAxis(Axis.Identifier.SLIDER);
wheel = new BallAxis(Component.Identifier.Axis.SLIDER);
}
}
} // class DirectInputMouse.BallImpl
@ -181,22 +181,22 @@ class DirectInputMouse extends Mouse {
public ButtonsImpl() {
super(DirectInputMouse.this.getName() + " buttons");
numButtons = getNumButtons(lpDevice);
left = new ButtonImpl(ButtonID.LEFT);
right = new ButtonImpl(ButtonID.RIGHT);
left = new ButtonImpl(Component.Identifier.Button.LEFT);
right = new ButtonImpl(Component.Identifier.Button.RIGHT);
if(numButtons>2) {
middle = new ButtonImpl(ButtonID.MIDDLE);
middle = new ButtonImpl(Component.Identifier.Button.MIDDLE);
}
if(numButtons>3) {
side = new ButtonImpl(ButtonID.SIDE);
side = new ButtonImpl(Component.Identifier.Button.SIDE);
}
if(numButtons>4) {
extra = new ButtonImpl(ButtonID.EXTRA);
extra = new ButtonImpl(Component.Identifier.Button.EXTRA);
}
if(numButtons>5) {
forward = new ButtonImpl(ButtonID.FORWARD);
forward = new ButtonImpl(Component.Identifier.Button.FORWARD);
}
if(numButtons>6) {
back = new ButtonImpl(ButtonID.BACK);
back = new ButtonImpl(Component.Identifier.Button.BACK);
}
}
} // class DirectInputMouse.ButtonsImpl
@ -235,21 +235,21 @@ class DirectInputMouse extends Mouse {
* @param id An ID of a button to create an obejct to represent.
*
*/
public ButtonImpl(ButtonID id) {
public ButtonImpl(Component.Identifier.Button id) {
super(id.getName(), id);
if (id == ButtonID.LEFT) {
if (id == Component.Identifier.Button.LEFT) {
index = 12;
} else if (id == ButtonID.RIGHT) {
} else if (id == Component.Identifier.Button.RIGHT) {
index = 13;
} else if (id == ButtonID.MIDDLE) {
} else if (id == Component.Identifier.Button.MIDDLE) {
index = 14;
} else if (id == ButtonID.SIDE) {
} else if (id == Component.Identifier.Button.SIDE) {
index = 15;
} else if (id == ButtonID.EXTRA) {
} else if (id == Component.Identifier.Button.EXTRA) {
index = 16;
} else if (id == ButtonID.FORWARD) {
} else if (id == Component.Identifier.Button.FORWARD) {
index = 17;
} else if (id == ButtonID.BACK) {
} else if (id == Component.Identifier.Button.BACK) {
index = 18;
} else {
throw new RuntimeException("Unknown button");
@ -287,7 +287,7 @@ class DirectInputMouse extends Mouse {
/**
* Mouse ball axis implementation
*/
class BallAxis extends AbstractAxis {
class BallAxis extends AbstractComponent {
/**
* Starting index into the mouseData array
@ -299,11 +299,11 @@ class DirectInputMouse extends Mouse {
*/
public BallAxis(Identifier id) {
super(id.getName(), id);
if (id == Identifier.X) {
if (id == Identifier.Axis.X) {
index = 0;
} else if (id == Identifier.Y) {
} else if (id == Identifier.Axis.Y) {
index = 4;
} else if (id == Identifier.SLIDER) {
} else if (id == Identifier.Axis.SLIDER) {
index = 8;
} else {
throw new RuntimeException("Unknown mouse axis");

View file

@ -37,7 +37,7 @@ public class DirectInputRumbler implements Rumbler {
/** The native effect */
private long effect;
/** The identifier of the axis we are attached too */
private Axis.Identifier axisID;
private Component.Identifier axisID;
/** The name of the axis this rumbler is attached too */
private String axisName;
@ -49,7 +49,7 @@ public class DirectInputRumbler implements Rumbler {
* @param axisID The id of the axis this rumbler is attached too
* @param axisName The name of the axis this rumbler is attached too
*/
public DirectInputRumbler(DirectInputDevice device, long effect, Axis.Identifier axisID, String axisName) {
public DirectInputRumbler(DirectInputDevice device, long effect, Component.Identifier axisID, String axisName) {
this.device = device;
this.effect = effect;
this.axisID = axisID;
@ -61,7 +61,7 @@ public class DirectInputRumbler implements Rumbler {
*
* @return The axis id
*/
public Axis.Identifier getAxisIdentifier() {
public Component.Identifier getAxisIdentifier() {
return axisID;
}

View file

@ -49,8 +49,8 @@ jfieldID FID_Side = NULL;
jfieldID FID_Forward = NULL;
jfieldID FID_Back = NULL;
const char* FD_AxisIdentifier = "Lnet/java/games/input/Axis$Identifier;";
const char* FD_ButtonIdentifier = "Lnet/java/games/input/Mouse$ButtonID;";
const char* FD_AxisIdentifier = "Lnet/java/games/input/Component$Identifier$Axis;";
const char* FD_ButtonIdentifier = "Lnet/java/games/input/Component$Identifier$Button;";
// Dummy input window. This is needed because DirectX evidently needs a window
// to do anything, such as setting the cooperative level for a device.
const TCHAR* DUMMY_WINDOW_NAME = "InputControllerWindow";
@ -151,7 +151,7 @@ break;
*/
BOOL InitIDs(JNIEnv* env) {
CLASS_AxisIdentifier =
env->FindClass("net/java/games/input/Axis$Identifier");
env->FindClass("net/java/games/input/Component$Identifier$Axis");
if (CLASS_AxisIdentifier == NULL) {
return FALSE;
}
@ -190,18 +190,18 @@ BOOL InitIDs(JNIEnv* env) {
if (FID_Slider == NULL) {
return FALSE;
}
FID_Button = env->GetStaticFieldID(CLASS_AxisIdentifier, "BUTTON",
/* FID_Button = env->GetStaticFieldID(CLASS_AxisIdentifier, "BUTTON",
FD_AxisIdentifier);
if (FID_Button == NULL) {
return FALSE;
}
}*/
FID_POV = env->GetStaticFieldID(CLASS_AxisIdentifier, "POV",
FD_AxisIdentifier);
if (FID_POV == NULL) {
return FALSE;
}
CLASS_ButtonIdentifier =
env->FindClass("net/java/games/input/Mouse$ButtonID");
env->FindClass("net/java/games/input/Component$Identifier$Button");
if (CLASS_ButtonIdentifier == NULL) {
return FALSE;
}
@ -258,12 +258,12 @@ BOOL InitIDs(JNIEnv* env) {
return FALSE;
}
MID_AddAxis = env->GetMethodID(CLASS_DirectInputDevice, "addAxis",
"(Ljava/util/ArrayList;Lnet/java/games/input/Axis$Identifier;ILjava/lang/String;)V");
"(Ljava/util/ArrayList;Lnet/java/games/input/Component$Identifier;ILjava/lang/String;)V");
if (MID_AddAxis == NULL) {
return FALSE;
}
MID_AddRumbler = env->GetMethodID(CLASS_DirectInputDevice, "addRumbler",
"(JLnet/java/games/input/Axis$Identifier;Ljava/lang/String;)V");
"(JLnet/java/games/input/Component$Identifier;Ljava/lang/String;)V");
if (MID_AddRumbler == NULL) {
return FALSE;
}
@ -283,7 +283,7 @@ BOOL InitIDs(JNIEnv* env) {
return FALSE;
}
MID_RenameAxis = env->GetMethodID(CLASS_DirectInputMouse, "renameAxis",
"(Lnet/java/games/input/Axis$Identifier;Ljava/lang/String;)V");
"(Lnet/java/games/input/Component$Identifier;Ljava/lang/String;)V");
if (MID_RenameAxis == NULL) {
return FALSE;
}