Skip to content

Commit

Permalink
Refactor code to Java 17 (#244)
Browse files Browse the repository at this point in the history
  • Loading branch information
ImUrX committed Nov 12, 2022
1 parent f38360e commit d9988cc
Show file tree
Hide file tree
Showing 65 changed files with 713 additions and 963 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/gradle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ jobs:
with:
submodules: recursive

- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "11"
java-version: "17"
distribution: "adopt"

- name: Setup Gradle
Expand All @@ -40,10 +40,10 @@ jobs:
with:
submodules: recursive

- name: Set up JDK 11
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: "11"
java-version: "17"
distribution: "adopt"

- name: Setup Gradle
Expand Down
18 changes: 9 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ plugins {
id "com.diffplug.spotless" version "6.5.1"
}

sourceCompatibility = 1.11
targetCompatibility = 1.11
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17

// Set compiler to use UTF-8
compileJava.options.encoding = 'UTF-8'
Expand Down Expand Up @@ -55,16 +55,16 @@ dependencies {
implementation 'com.github.jonpeterson:jackson-module-model-versioning:1.2.2'
implementation 'org.apache.commons:commons-math3:3.6.1'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'net.java.dev.jna:jna:5.10.0'
implementation 'net.java.dev.jna:jna-platform:5.10.0'
implementation 'net.java.dev.jna:jna:5.+'
implementation 'net.java.dev.jna:jna-platform:5.+'
implementation 'com.illposed.osc:javaosc-core:0.8'
implementation 'com.fazecast:jSerialComm:2.9.0'
implementation 'com.google.protobuf:protobuf-java:3.19.4'
implementation "org.java-websocket:Java-WebSocket:1.5.2"
implementation 'com.melloware:jintellitype:1.4.0'
implementation 'com.fazecast:jSerialComm:2.+'
implementation 'com.google.protobuf:protobuf-java:3.+'
implementation 'org.java-websocket:Java-WebSocket:1.+'
implementation 'com.melloware:jintellitype:1.+'

// Use JUnit test framework
testImplementation platform('org.junit:junit-bom:5.8.2')
testImplementation platform('org.junit:junit-bom:5.9.0')
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.junit.platform:junit-platform-launcher'
}
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/dev/slimevr/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,12 @@ public static void main(String[] args) {
e1.printStackTrace();
}

if (!SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_11)) {
LogManager.severe("SlimeVR start-up error! A minimum of Java 11 is required.");
if (!SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_17)) {
LogManager.severe("SlimeVR start-up error! A minimum of Java 17 is required.");
JOptionPane
.showMessageDialog(
null,
"SlimeVR start-up error! A minimum of Java 11 is required.",
"SlimeVR start-up error! A minimum of Java 17 is required.",
"SlimeVR: Java Runtime Mismatch",
JOptionPane.ERROR_MESSAGE
);
Expand Down
36 changes: 12 additions & 24 deletions src/main/java/dev/slimevr/VRServer.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public VRServer(String configPath) {
"\\\\.\\pipe\\SlimeVRDriver",
shareTrackers
);
tasks.add(() -> driverBridge.startBridge());
tasks.add(driverBridge::startBridge);
bridges.add(driverBridge);

// Create named pipe bridge for SteamVR input
Expand All @@ -103,21 +103,21 @@ public VRServer(String configPath) {
"steamvr_feeder",
"SteamVR Feeder Bridge",
"\\\\.\\pipe\\SlimeVRInput",
new FastList<ShareableTracker>()
new FastList<>()
);
tasks.add(() -> feederBridge.startBridge());
tasks.add(feederBridge::startBridge);
bridges.add(feederBridge);
}

// Create WebSocket server
WebSocketVRBridge wsBridge = new WebSocketVRBridge(hmdTracker, shareTrackers, this);
tasks.add(() -> wsBridge.startBridge());
tasks.add(wsBridge::startBridge);
bridges.add(wsBridge);

// Create VMCBridge
try {
VMCBridge vmcBridge = new VMCBridge(39539, 39540, InetAddress.getLocalHost());
tasks.add(() -> vmcBridge.startBridge());
tasks.add(vmcBridge::startBridge);
bridges.add(vmcBridge);
} catch (UnknownHostException e) {
e.printStackTrace();
Expand Down Expand Up @@ -176,9 +176,7 @@ public void trackerUpdated(Tracker tracker) {

@ThreadSafe
public void addSkeletonUpdatedCallback(Consumer<Skeleton> consumer) {
queueTask(() -> {
humanPoseProcessor.addSkeletonUpdatedCallback(consumer);
});
queueTask(() -> humanPoseProcessor.addSkeletonUpdatedCallback(consumer));
}

@Override
Expand Down Expand Up @@ -210,7 +208,7 @@ public void run() {
// final long time = System.currentTimeMillis() - start;
try {
Thread.sleep(1); // 1000Hz
} catch (InterruptedException e) {}
} catch (InterruptedException ignored) {}
}
}

Expand All @@ -237,33 +235,23 @@ public void registerTracker(Tracker tracker) {
}

public void resetTrackers() {
queueTask(() -> {
humanPoseProcessor.resetTrackers();
});
queueTask(humanPoseProcessor::resetTrackers);
}

public void resetTrackersYaw() {
queueTask(() -> {
humanPoseProcessor.resetTrackersYaw();
});
queueTask(humanPoseProcessor::resetTrackersYaw);
}

public void setLegTweaksEnabled(boolean value) {
queueTask(() -> {
humanPoseProcessor.setLegTweaksEnabled(value);
});
queueTask(() -> humanPoseProcessor.setLegTweaksEnabled(value));
}

public void setSkatingReductionEnabled(boolean value) {
queueTask(() -> {
humanPoseProcessor.setSkatingCorrectionEnabled(value);
});
queueTask(() -> humanPoseProcessor.setSkatingCorrectionEnabled(value));
}

public void setFloorClipEnabled(boolean value) {
queueTask(() -> {
humanPoseProcessor.setFloorClipEnabled(value);
});
queueTask(() -> humanPoseProcessor.setFloorClipEnabled(value));
}

public int getTrackersCount() {
Expand Down
82 changes: 35 additions & 47 deletions src/main/java/dev/slimevr/autobone/AutoBone.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ public class AutoBone {
private static final File loadDir = new File("Load AutoBone Recordings");

// This is filled by reloadConfigValues()
public final EnumMap<BoneType, Float> offsets = new EnumMap<BoneType, Float>(
public final EnumMap<BoneType, Float> offsets = new EnumMap<>(
BoneType.class
);

public final FastList<BoneType> adjustOffsets = new FastList<BoneType>(
public final FastList<BoneType> adjustOffsets = new FastList<>(
new BoneType[] {
BoneType.HEAD,
BoneType.NECK,
Expand All @@ -56,7 +56,7 @@ public class AutoBone {
}
);

public final FastList<BoneType> heightOffsets = new FastList<BoneType>(
public final FastList<BoneType> heightOffsets = new FastList<>(
new BoneType[] {
BoneType.NECK,
BoneType.CHEST,
Expand All @@ -70,7 +70,7 @@ public class AutoBone {
}
);

public final FastList<SkeletonConfigOffsets> legacyHeightConfigs = new FastList<SkeletonConfigOffsets>(
public final FastList<SkeletonConfigOffsets> legacyHeightConfigs = new FastList<>(
new SkeletonConfigOffsets[] {
SkeletonConfigOffsets.NECK,
SkeletonConfigOffsets.TORSO,
Expand All @@ -79,7 +79,7 @@ public class AutoBone {
}
);

public final EnumMap<SkeletonConfigOffsets, Float> legacyConfigs = new EnumMap<SkeletonConfigOffsets, Float>(
public final EnumMap<SkeletonConfigOffsets, Float> legacyConfigs = new EnumMap<>(
SkeletonConfigOffsets.class
);

Expand Down Expand Up @@ -115,32 +115,24 @@ public static File getLoadDir() {
}

public float computeBoneOffset(BoneType bone, SkeletonConfig skeletonConfig) {
switch (bone) {
case HEAD:
return skeletonConfig.getOffset(SkeletonConfigOffsets.HEAD);
case NECK:
return skeletonConfig.getOffset(SkeletonConfigOffsets.NECK);
case CHEST:
return skeletonConfig.getOffset(SkeletonConfigOffsets.CHEST);
case WAIST:
return -skeletonConfig.getOffset(SkeletonConfigOffsets.CHEST)
+ skeletonConfig.getOffset(SkeletonConfigOffsets.TORSO)
- skeletonConfig.getOffset(SkeletonConfigOffsets.WAIST);
case HIP:
return skeletonConfig.getOffset(SkeletonConfigOffsets.WAIST);
case LEFT_HIP:
case RIGHT_HIP:
return skeletonConfig.getOffset(SkeletonConfigOffsets.HIPS_WIDTH) / 2f;
case LEFT_UPPER_LEG:
case RIGHT_UPPER_LEG:
return skeletonConfig.getOffset(SkeletonConfigOffsets.LEGS_LENGTH)
- skeletonConfig.getOffset(SkeletonConfigOffsets.KNEE_HEIGHT);
case LEFT_LOWER_LEG:
case RIGHT_LOWER_LEG:
return skeletonConfig.getOffset(SkeletonConfigOffsets.KNEE_HEIGHT);
}
return switch (bone) {
case HEAD -> skeletonConfig.getOffset(SkeletonConfigOffsets.HEAD);
case NECK -> skeletonConfig.getOffset(SkeletonConfigOffsets.NECK);
case CHEST -> skeletonConfig.getOffset(SkeletonConfigOffsets.CHEST);
case WAIST -> -skeletonConfig.getOffset(SkeletonConfigOffsets.CHEST)
+ skeletonConfig.getOffset(SkeletonConfigOffsets.TORSO)
- skeletonConfig.getOffset(SkeletonConfigOffsets.WAIST);
case HIP -> skeletonConfig.getOffset(SkeletonConfigOffsets.WAIST);
case LEFT_HIP, RIGHT_HIP -> skeletonConfig.getOffset(SkeletonConfigOffsets.HIPS_WIDTH)
/ 2f;
case LEFT_UPPER_LEG, RIGHT_UPPER_LEG -> skeletonConfig
.getOffset(SkeletonConfigOffsets.LEGS_LENGTH)
- skeletonConfig.getOffset(SkeletonConfigOffsets.KNEE_HEIGHT);
case LEFT_LOWER_LEG, RIGHT_LOWER_LEG -> skeletonConfig
.getOffset(SkeletonConfigOffsets.KNEE_HEIGHT);
default -> -1f;
};

return -1f;
}

public void reloadConfigValues() {
Expand Down Expand Up @@ -176,20 +168,13 @@ public Vector3f getBoneDirection(
}

switch (node) {
case LEFT_HIP:
case RIGHT_HIP:
node = rightSide ? BoneType.RIGHT_HIP : BoneType.LEFT_HIP;
break;

case LEFT_UPPER_LEG:
case RIGHT_UPPER_LEG:
node = rightSide ? BoneType.RIGHT_UPPER_LEG : BoneType.LEFT_UPPER_LEG;
break;

case LEFT_LOWER_LEG:
case RIGHT_LOWER_LEG:
node = rightSide ? BoneType.RIGHT_LOWER_LEG : BoneType.LEFT_LOWER_LEG;
break;
case LEFT_HIP, RIGHT_HIP -> node = rightSide ? BoneType.RIGHT_HIP : BoneType.LEFT_HIP;
case LEFT_UPPER_LEG, RIGHT_UPPER_LEG -> node = rightSide
? BoneType.RIGHT_UPPER_LEG
: BoneType.LEFT_UPPER_LEG;
case LEFT_LOWER_LEG, RIGHT_LOWER_LEG -> node = rightSide
? BoneType.RIGHT_LOWER_LEG
: BoneType.LEFT_LOWER_LEG;
}

TransformNode relevantTransform = skeleton.getTailNodeOfBone(node);
Expand Down Expand Up @@ -479,7 +464,7 @@ public AutoBoneResults processFrames(
null
);

EnumMap<BoneType, Float> intermediateOffsets = new EnumMap<BoneType, Float>(
EnumMap<BoneType, Float> intermediateOffsets = new EnumMap<>(
offsets
);

Expand Down Expand Up @@ -783,7 +768,10 @@ public String getLengthsString() {
configInfo.append(", ");
}

configInfo.append(key.toString() + ": " + StringUtils.prettyNumber(value * 100f, 2));
configInfo
.append(key.toString())
.append(": ")
.append(StringUtils.prettyNumber(value * 100f, 2));
});

return configInfo.toString();
Expand Down Expand Up @@ -833,7 +821,7 @@ public void saveRecording(PoseFrames frames) {
}

public List<Pair<String, PoseFrames>> loadRecordings() {
List<Pair<String, PoseFrames>> recordings = new FastList<Pair<String, PoseFrames>>();
List<Pair<String, PoseFrames>> recordings = new FastList<>();
if (loadDir.isDirectory()) {
File[] files = loadDir.listFiles();
if (files != null) {
Expand Down
Loading

0 comments on commit d9988cc

Please sign in to comment.