From 91f2d641fc15e4c2a4089665c8c0af604a395a94 Mon Sep 17 00:00:00 2001 From: retgal Date: Sat, 29 Jun 2024 18:47:04 +0200 Subject: [PATCH] Simplifications --- .../dayon/assisted/capture/CaptureEngine.java | 2 +- .../mpo/dayon/assisted/mouse/MouseEngine.java | 4 +-- src/main/java/mpo/dayon/common/Runner.java | 23 +++++++--------- .../mpo/dayon/common/capture/CaptureTile.java | 27 +++---------------- .../mpo/dayon/common/log/LogAppender.java | 6 ++--- .../java/mpo/dayon/common/log/LogLevel.java | 2 +- .../mpo/dayon/common/squeeze/Compressor.java | 6 ++--- 7 files changed, 23 insertions(+), 47 deletions(-) diff --git a/src/main/java/mpo/dayon/assisted/capture/CaptureEngine.java b/src/main/java/mpo/dayon/assisted/capture/CaptureEngine.java index 8b12bba7..70093237 100644 --- a/src/main/java/mpo/dayon/assisted/capture/CaptureEngine.java +++ b/src/main/java/mpo/dayon/assisted/capture/CaptureEngine.java @@ -196,7 +196,7 @@ private CaptureTile[] computeDirtyTiles(int captureId, byte[] capture) { final byte[] tileData = createTile(capture, captureDimension.width, offset, tw, th); final long cs = CaptureTile.computeChecksum(tileData, 0, tileData.length); if (cs != previousCapture[tileId]) { - dirty[tileId] = new CaptureTile(captureId, tileId, cs, new Position(tx, ty), tw, th, tileData); + dirty[tileId] = new CaptureTile(captureId, cs, new Position(tx, ty), tw, th, tileData); hasDirty = true; } ++tileId; diff --git a/src/main/java/mpo/dayon/assisted/mouse/MouseEngine.java b/src/main/java/mpo/dayon/assisted/mouse/MouseEngine.java index e72b8baf..ca16f4d6 100644 --- a/src/main/java/mpo/dayon/assisted/mouse/MouseEngine.java +++ b/src/main/java/mpo/dayon/assisted/mouse/MouseEngine.java @@ -57,7 +57,6 @@ private void mainLoop() throws InterruptedException { private static int syncOnTick(final long start, final int captureCount) throws InterruptedException { int delayedCaptureCount = 0; - while (true) { final long captureMaxEnd = start + (captureCount + delayedCaptureCount) * 50L; final long capturePause = captureMaxEnd - System.currentTimeMillis(); @@ -65,10 +64,9 @@ private static int syncOnTick(final long start, final int captureCount) throws I ++delayedCaptureCount; } else if (capturePause > 0) { Thread.sleep(capturePause); - break; + return delayedCaptureCount; } } - return delayedCaptureCount; } private boolean fireOnLocationUpdated(Point location) { diff --git a/src/main/java/mpo/dayon/common/Runner.java b/src/main/java/mpo/dayon/common/Runner.java index 5f5e14d3..5f972519 100644 --- a/src/main/java/mpo/dayon/common/Runner.java +++ b/src/main/java/mpo/dayon/common/Runner.java @@ -26,22 +26,19 @@ static void main(String[] args) { final File appHomeDir = Runner.getOrCreateAppHomeDir(); Map programArgs = Runner.extractProgramArgs(args); String language = Runner.overrideLocale(programArgs.get("lang")); - if (hasAssistant(args)) { - Runner.logAppInfo("dayon_assistant"); + SwingUtilities.invokeLater(() -> { + Runner.logAppInfo(hasAssistant(args) ? "dayon_assistant" : "dayon_assisted"); try { - SwingUtilities.invokeLater(() -> AssistantRunner.launchAssistant(language)); + if (hasAssistant(args)) { + AssistantRunner.launchAssistant(language); + } else { + AssistedRunner.launchAssisted(programArgs.get("ah"), programArgs.get("ap")); + } } catch (Exception ex) { - FatalErrorHandler.bye("The assistant is dead!", ex); + FatalErrorHandler.bye(hasAssistant(args) ? "The assistant is dead!" : "The assisted is dead!", ex); } - } else { - Runner.logAppInfo("dayon_assisted"); - try { - SwingUtilities.invokeLater(() -> AssistedRunner.launchAssisted(programArgs.get("ah"), programArgs.get("ap"))); - } catch (Exception ex) { - FatalErrorHandler.bye("The assisted is dead!", ex); - } - } - prepareKeystore(appHomeDir); + }); + new Thread(() -> prepareKeystore(appHomeDir)).start(); } static void logAppInfo(String appName) { diff --git a/src/main/java/mpo/dayon/common/capture/CaptureTile.java b/src/main/java/mpo/dayon/common/capture/CaptureTile.java index aff91bad..0368c349 100644 --- a/src/main/java/mpo/dayon/common/capture/CaptureTile.java +++ b/src/main/java/mpo/dayon/common/capture/CaptureTile.java @@ -12,8 +12,6 @@ public class CaptureTile { private final int captureId; - private final int id; - private final long checksum; private final Position position; @@ -36,7 +34,6 @@ public class CaptureTile { private CaptureTile() { this.captureId = -1; - this.id = -1; this.checksum = -1; this.position = new Position(-1, -1); this.width = -1; @@ -46,9 +43,8 @@ private CaptureTile() { this.fromCache = false; } - public CaptureTile(int captureId, int id, long checksum, Position position, int width, int height, byte[] capture) { + public CaptureTile(int captureId, long checksum, Position position, int width, int height, byte[] capture) { this.captureId = captureId; - this.id = id; this.checksum = checksum; this.position = position; this.width = width; @@ -61,9 +57,8 @@ public CaptureTile(int captureId, int id, long checksum, Position position, int /** * Assisted to assistant : result of network data decompression. */ - public CaptureTile(int captureId, int id, XYWH xywh, MemByteBuffer capture) { + public CaptureTile(int captureId, XYWH xywh, MemByteBuffer capture) { this.captureId = captureId; - this.id = id; this.checksum = computeChecksum(capture.getInternal(), 0, capture.size()); // cache usage (!) this.position = new Position(xywh.x, xywh.y); this.width = xywh.w; @@ -79,9 +74,8 @@ public CaptureTile(int captureId, int id, XYWH xywh, MemByteBuffer capture) { /** * Assisted to assistant : result of network data decompression (single level tile). */ - public CaptureTile(int captureId, int id, XYWH xywh, byte singleLevel) { + public CaptureTile(int captureId, XYWH xywh, byte singleLevel) { this.captureId = captureId; - this.id = id; this.checksum = -1; this.position = new Position(xywh.x, xywh.y); this.width = xywh.w; @@ -96,9 +90,8 @@ public CaptureTile(int captureId, int id, XYWH xywh, byte singleLevel) { /** * Assisted to assistant : result of network data decompression (from the cache). */ - public CaptureTile(int captureId, int id, XYWH xywh, CaptureTile cached) { + public CaptureTile(int captureId, XYWH xywh, CaptureTile cached) { this.captureId = captureId; - this.id = id; this.checksum = -1; this.position = new Position(xywh.x, xywh.y); this.width = xywh.w; @@ -120,14 +113,6 @@ public static long computeChecksum(byte[] data, int offset, int len) { return checksum.getValue(); } - public int getCaptureId() { - return captureId; - } - - public int getId() { - return id; - } - public long getChecksum() { return checksum; } @@ -144,10 +129,6 @@ public int getWidth() { return width; } - public int getHeight() { - return height; - } - public MemByteBuffer getCapture() { return capture; } diff --git a/src/main/java/mpo/dayon/common/log/LogAppender.java b/src/main/java/mpo/dayon/common/log/LogAppender.java index 5295d2d6..0c698b44 100644 --- a/src/main/java/mpo/dayon/common/log/LogAppender.java +++ b/src/main/java/mpo/dayon/common/log/LogAppender.java @@ -5,11 +5,11 @@ import java.util.Date; public abstract class LogAppender { - private final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss.SSS"); + private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("HH:mm:ss.SSS"); - protected String format(LogLevel level, String message) { + protected static String format(LogLevel level, String message) { return String.format("[%20.20s] [%5.5s] (%s) %s", Thread.currentThread().getName(), level, - dateFormat.format(Date.from(Instant.now())), (message == null) ? "" : message); + DATE_FORMAT.format(Date.from(Instant.now())), (message == null) ? "" : message); } public void append(LogLevel level, String message) { diff --git a/src/main/java/mpo/dayon/common/log/LogLevel.java b/src/main/java/mpo/dayon/common/log/LogLevel.java index 6f93dee4..34f92de7 100644 --- a/src/main/java/mpo/dayon/common/log/LogLevel.java +++ b/src/main/java/mpo/dayon/common/log/LogLevel.java @@ -1,5 +1,5 @@ package mpo.dayon.common.log; public enum LogLevel { - DEBUG, INFO, WARN, ERROR, FATAL, + DEBUG, INFO, WARN, ERROR, FATAL } diff --git a/src/main/java/mpo/dayon/common/squeeze/Compressor.java b/src/main/java/mpo/dayon/common/squeeze/Compressor.java index 43113d44..f3e6c6c3 100644 --- a/src/main/java/mpo/dayon/common/squeeze/Compressor.java +++ b/src/main/java/mpo/dayon/common/squeeze/Compressor.java @@ -157,10 +157,10 @@ public Capture decompress(TileCache cache, MemByteBuffer zipped) throws IOExcept final int value = in.readShort(); if (value >= 0 && value < 256) // single-level { - dirty[tidx] = new CaptureTile(cId, tidx, xywh[tidx], (byte) value); + dirty[tidx] = new CaptureTile(cId, xywh[tidx], (byte) value); } else if (value == 256) // multi-level (cached) { - dirty[tidx] = new CaptureTile(cId, tidx, xywh[tidx], cache.get(in.readInt())); + dirty[tidx] = new CaptureTile(cId, xywh[tidx], cache.get(in.readInt())); } else // multi-level (not cached) { processUncached(cache, in, cId, xywh[tidx], dirty, tidx, value); @@ -184,7 +184,7 @@ private void processUncached(TileCache cache, DataInputStream in, int cId, Captu } final MemByteBuffer out = new MemByteBuffer(); rle.runLengthDecode(out, new MemByteBuffer(tdata)); - dirty[tidx] = new CaptureTile(cId, tidx, xywh, out); + dirty[tidx] = new CaptureTile(cId, xywh, out); cache.add(dirty[tidx]); } }