mirror of
https://github.com/shadowfacts/jinput-arm64.git
synced 2026-01-19 07:00:42 +01:00
Fixed compile warnings
This commit is contained in:
parent
4ef9e03623
commit
59c21d42c5
|
|
@ -32,19 +32,21 @@
|
|||
*****************************************************************************/
|
||||
package net.java.games.input;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
/**
|
||||
* @author elias
|
||||
* @version 1.0
|
||||
*/
|
||||
final class DataQueue {
|
||||
private final Object[] elements;
|
||||
final class DataQueue<T> {
|
||||
private final T[] elements;
|
||||
private int position;
|
||||
private int limit;
|
||||
|
||||
public DataQueue(int size, Class<?> element_type) {
|
||||
this.elements= new Object[size];
|
||||
@SuppressWarnings("unchecked")
|
||||
public DataQueue(int size, Class<T> element_type) {
|
||||
this.elements= (T[])Array.newInstance(element_type, size);
|
||||
for (int i = 0; i < elements.length; i++) {
|
||||
try {
|
||||
elements[i] = element_type.getDeclaredConstructor().newInstance();
|
||||
|
|
@ -68,12 +70,12 @@ final class DataQueue {
|
|||
return limit;
|
||||
}
|
||||
|
||||
public final Object get(int index) {
|
||||
public final T get(int index) {
|
||||
assert index < limit;
|
||||
return elements[index];
|
||||
}
|
||||
|
||||
public final Object get() {
|
||||
public final T get() {
|
||||
if (!hasRemaining())
|
||||
return null;
|
||||
return get(position++);
|
||||
|
|
@ -91,7 +93,7 @@ final class DataQueue {
|
|||
}
|
||||
|
||||
private final void swap(int index1, int index2) {
|
||||
Object temp = elements[index1];
|
||||
T temp = elements[index1];
|
||||
elements[index1] = elements[index2];
|
||||
elements[index2] = temp;
|
||||
}
|
||||
|
|
@ -113,7 +115,7 @@ final class DataQueue {
|
|||
this.position = position;
|
||||
}
|
||||
|
||||
public final Object[] getElements() {
|
||||
public final T[] getElements() {
|
||||
return elements;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,4 @@
|
|||
/*
|
||||
* %W% %E%
|
||||
*
|
||||
* Copyright 2002 Sun Microsystems, Inc. All rights reserved.
|
||||
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
||||
*/
|
||||
/*****************************************************************************
|
||||
* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
|
|
@ -201,16 +195,16 @@ final class IDirectInputDevice {
|
|||
private final int dev_subtype;
|
||||
private final String instance_name;
|
||||
private final String product_name;
|
||||
private final List objects = new ArrayList();
|
||||
private final List effects = new ArrayList();
|
||||
private final List rumblers = new ArrayList();
|
||||
private final List<DIDeviceObject> objects = new ArrayList<>();
|
||||
private final List<DIEffectInfo> effects = new ArrayList<>();
|
||||
private final List<Rumbler> rumblers = new ArrayList<>();
|
||||
private final int[] device_state;
|
||||
private final Map object_to_component = new HashMap();
|
||||
private final Map<DIDeviceObject,DIComponent> object_to_component = new HashMap<>();
|
||||
private final boolean axes_in_relative_mode;
|
||||
|
||||
|
||||
private boolean released;
|
||||
private DataQueue queue;
|
||||
private DataQueue<DIDeviceObjectData> queue;
|
||||
|
||||
private int button_counter;
|
||||
private int current_format_offset;
|
||||
|
|
@ -242,7 +236,7 @@ final class IDirectInputDevice {
|
|||
boolean all_relative = true;
|
||||
boolean has_axis = false;
|
||||
for (int i = 0; i < objects.size(); i++) {
|
||||
DIDeviceObject obj = (DIDeviceObject)objects.get(i);
|
||||
DIDeviceObject obj = objects.get(i);
|
||||
if (obj.isAxis()) {
|
||||
has_axis = true;
|
||||
if (!obj.isRelative()) {
|
||||
|
|
@ -272,10 +266,10 @@ final class IDirectInputDevice {
|
|||
}
|
||||
|
||||
public final Rumbler[] getRumblers() {
|
||||
return (Rumbler[])rumblers.toArray(new Rumbler[]{});
|
||||
return rumblers.toArray(new Rumbler[]{});
|
||||
}
|
||||
|
||||
private final List createRumblers() throws IOException {
|
||||
private final List<Rumbler> createRumblers() throws IOException {
|
||||
DIDeviceObject x_axis = lookupObjectByGUID(GUID_XAxis);
|
||||
// DIDeviceObject y_axis = lookupObjectByGUID(GUID_YAxis);
|
||||
if(x_axis == null/* || y_axis == null*/)
|
||||
|
|
@ -283,7 +277,7 @@ final class IDirectInputDevice {
|
|||
DIDeviceObject[] axes = {x_axis/*, y_axis*/};
|
||||
long[] directions = {0/*, 0*/};
|
||||
for (int i = 0; i < effects.size(); i++) {
|
||||
DIEffectInfo info = (DIEffectInfo)effects.get(i);
|
||||
DIEffectInfo info = effects.get(i);
|
||||
if ((info.getEffectType() & 0xff) == DIEFT_PERIODIC &&
|
||||
(info.getDynamicParams() & DIEP_GAIN) != 0) {
|
||||
rumblers.add(createPeriodicRumbler(axes, directions, info));
|
||||
|
|
@ -304,7 +298,7 @@ final class IDirectInputDevice {
|
|||
|
||||
private final DIDeviceObject lookupObjectByGUID(int guid_id) {
|
||||
for (int i = 0; i < objects.size(); i++) {
|
||||
DIDeviceObject object = (DIDeviceObject)objects.get(i);
|
||||
DIDeviceObject object = objects.get(i);
|
||||
if (guid_id == object.getGUIDType())
|
||||
return object;
|
||||
}
|
||||
|
|
@ -321,11 +315,11 @@ final class IDirectInputDevice {
|
|||
* for the int size (4 bytes)
|
||||
*/
|
||||
int format_offset = event.getFormatOffset()/4;
|
||||
return (DIDeviceObject)objects.get(format_offset);
|
||||
return objects.get(format_offset);
|
||||
}
|
||||
|
||||
public final DIComponent mapObject(DIDeviceObject object) {
|
||||
return (DIComponent)object_to_component.get(object);
|
||||
return object_to_component.get(object);
|
||||
}
|
||||
|
||||
public final void registerComponent(DIDeviceObject object, DIComponent component) {
|
||||
|
|
@ -342,7 +336,7 @@ final class IDirectInputDevice {
|
|||
}
|
||||
|
||||
public synchronized final boolean getNextEvent(DIDeviceObjectData data) {
|
||||
DIDeviceObjectData next_event = (DIDeviceObjectData)queue.get();
|
||||
DIDeviceObjectData next_event = queue.get();
|
||||
if (next_event == null)
|
||||
return false;
|
||||
data.set(next_event);
|
||||
|
|
@ -375,7 +369,7 @@ final class IDirectInputDevice {
|
|||
}
|
||||
private final static native int nUnacquire(long address);
|
||||
|
||||
private final boolean getDeviceData(DataQueue queue) throws IOException {
|
||||
private final boolean getDeviceData(DataQueue<DIDeviceObjectData> queue) throws IOException {
|
||||
int res = nGetDeviceData(address, 0, queue, queue.getElements(), queue.position(), queue.remaining());
|
||||
if (res != DI_OK && res != DI_BUFFEROVERFLOW) {
|
||||
if (res == DIERR_NOTACQUIRED) {
|
||||
|
|
@ -386,7 +380,7 @@ final class IDirectInputDevice {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
private final static native int nGetDeviceData(long address, int flags, DataQueue queue, Object[] queue_elements, int position, int remaining);
|
||||
private final static native int nGetDeviceData(long address, int flags, DataQueue<DIDeviceObjectData> queue, Object[] queue_elements, int position, int remaining);
|
||||
|
||||
private final void getDeviceState(int[] device_state) throws IOException {
|
||||
int res = nGetDeviceState(address, device_state);
|
||||
|
|
@ -420,7 +414,7 @@ final class IDirectInputDevice {
|
|||
return dev_type;
|
||||
}
|
||||
|
||||
public final List getObjects() {
|
||||
public final List<DIDeviceObject> getObjects() {
|
||||
return objects;
|
||||
}
|
||||
|
||||
|
|
@ -509,7 +503,7 @@ final class IDirectInputDevice {
|
|||
int res = nSetBufferSize(address, size);
|
||||
if (res != DI_OK && res != DI_PROPNOEFFECT && res != DI_POLLEDDEVICE)
|
||||
throw new IOException("Failed to set buffer size (" + Integer.toHexString(res) + ")");
|
||||
queue = new DataQueue(size, DIDeviceObjectData.class);
|
||||
queue = new DataQueue<>(size, DIDeviceObjectData.class);
|
||||
queue.position(queue.limit());
|
||||
acquire();
|
||||
}
|
||||
|
|
@ -540,6 +534,7 @@ final class IDirectInputDevice {
|
|||
throw new IOException("Device is released");
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
protected void finalize() {
|
||||
release();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,12 +89,12 @@ final class RawDevice {
|
|||
private final int type;
|
||||
|
||||
/* Events from the event queue thread end here */
|
||||
private DataQueue keyboard_events;
|
||||
private DataQueue mouse_events;
|
||||
private DataQueue<RawKeyboardEvent> keyboard_events;
|
||||
private DataQueue<RawMouseEvent> mouse_events;
|
||||
|
||||
/* After processing in poll*(), the events are placed here */
|
||||
private DataQueue processed_keyboard_events;
|
||||
private DataQueue processed_mouse_events;
|
||||
private DataQueue<RawKeyboardEvent> processed_keyboard_events;
|
||||
private DataQueue<RawMouseEvent> processed_mouse_events;
|
||||
|
||||
/* mouse state */
|
||||
private final boolean[] button_states = new boolean[5];
|
||||
|
|
@ -123,7 +123,7 @@ final class RawDevice {
|
|||
/* Careful, this is called from the event queue thread */
|
||||
public final synchronized void addMouseEvent(long millis, int flags, int button_flags, int button_data, long raw_buttons, long last_x, long last_y, long extra_information) {
|
||||
if (mouse_events.hasRemaining()) {
|
||||
RawMouseEvent event = (RawMouseEvent)mouse_events.get();
|
||||
RawMouseEvent event = mouse_events.get();
|
||||
event.set(millis, flags, button_flags, button_data, raw_buttons, last_x, last_y, extra_information);
|
||||
}
|
||||
}
|
||||
|
|
@ -131,7 +131,7 @@ final class RawDevice {
|
|||
/* Careful, this is called from the event queue thread */
|
||||
public final synchronized void addKeyboardEvent(long millis, int make_code, int flags, int vkey, int message, long extra_information) {
|
||||
if (keyboard_events.hasRemaining()) {
|
||||
RawKeyboardEvent event = (RawKeyboardEvent)keyboard_events.get();
|
||||
RawKeyboardEvent event = keyboard_events.get();
|
||||
event.set(millis, make_code, flags, vkey, message, extra_information);
|
||||
}
|
||||
}
|
||||
|
|
@ -140,10 +140,10 @@ final class RawDevice {
|
|||
relative_x = relative_y = wheel = 0;
|
||||
mouse_events.flip();
|
||||
while (mouse_events.hasRemaining()) {
|
||||
RawMouseEvent event = (RawMouseEvent)mouse_events.get();
|
||||
RawMouseEvent event = mouse_events.get();
|
||||
boolean has_update = processMouseEvent(event);
|
||||
if (has_update && processed_mouse_events.hasRemaining()) {
|
||||
RawMouseEvent processed_event = (RawMouseEvent)processed_mouse_events.get();
|
||||
RawMouseEvent processed_event = processed_mouse_events.get();
|
||||
processed_event.set(event);
|
||||
}
|
||||
}
|
||||
|
|
@ -153,10 +153,10 @@ final class RawDevice {
|
|||
public final synchronized void pollKeyboard() {
|
||||
keyboard_events.flip();
|
||||
while (keyboard_events.hasRemaining()) {
|
||||
RawKeyboardEvent event = (RawKeyboardEvent)keyboard_events.get();
|
||||
RawKeyboardEvent event = keyboard_events.get();
|
||||
boolean has_update = processKeyboardEvent(event);
|
||||
if (has_update && processed_keyboard_events.hasRemaining()) {
|
||||
RawKeyboardEvent processed_event = (RawKeyboardEvent)processed_keyboard_events.get();
|
||||
RawKeyboardEvent processed_event = processed_keyboard_events.get();
|
||||
processed_event.set(event);
|
||||
}
|
||||
}
|
||||
|
|
@ -250,7 +250,7 @@ final class RawDevice {
|
|||
processed_keyboard_events.compact();
|
||||
return false;
|
||||
}
|
||||
RawKeyboardEvent next_event = (RawKeyboardEvent)processed_keyboard_events.get();
|
||||
RawKeyboardEvent next_event = processed_keyboard_events.get();
|
||||
event.set(next_event);
|
||||
processed_keyboard_events.compact();
|
||||
return true;
|
||||
|
|
@ -262,7 +262,7 @@ final class RawDevice {
|
|||
processed_mouse_events.compact();
|
||||
return false;
|
||||
}
|
||||
RawMouseEvent next_event = (RawMouseEvent)processed_mouse_events.get();
|
||||
RawMouseEvent next_event = processed_mouse_events.get();
|
||||
if ((next_event.getFlags() & MOUSE_MOVE_ABSOLUTE) != 0) {
|
||||
event_relative_x = next_event.getLastX() - event_last_x;
|
||||
event_relative_y = next_event.getLastY() - event_last_y;
|
||||
|
|
@ -284,10 +284,10 @@ final class RawDevice {
|
|||
}
|
||||
|
||||
public final void setBufferSize(int size) {
|
||||
keyboard_events = new DataQueue(size, RawKeyboardEvent.class);
|
||||
mouse_events = new DataQueue(size, RawMouseEvent.class);
|
||||
processed_keyboard_events = new DataQueue(size, RawKeyboardEvent.class);
|
||||
processed_mouse_events = new DataQueue(size, RawMouseEvent.class);
|
||||
keyboard_events = new DataQueue<>(size, RawKeyboardEvent.class);
|
||||
mouse_events = new DataQueue<>(size, RawMouseEvent.class);
|
||||
processed_keyboard_events = new DataQueue<>(size, RawKeyboardEvent.class);
|
||||
processed_mouse_events = new DataQueue<>(size, RawMouseEvent.class);
|
||||
}
|
||||
|
||||
public final int getType() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue