From 54dff58f170b6b75fb75a32a581fa00f489c1cdb Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 20 Aug 2022 20:01:56 -0500 Subject: [PATCH] Processing the screenshot is now threaded to prevent holdups. Co-authored-by: sigonasr2 --- ArcadeReader.java | 82 +++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/ArcadeReader.java b/ArcadeReader.java index 0e23a50..5972ab1 100644 --- a/ArcadeReader.java +++ b/ArcadeReader.java @@ -697,49 +697,48 @@ public class ArcadeReader { BufferedImage img; try { img = ImageIO.read(p.toFile()); - Reader newImg = interpret(img); - newImg.result_screenshot=p; - //Path getGamePath = gamePath(newImg); - newImg.interpretBoxes(p); - HashMap>> DATA = sigPlace.SONG_DATABASE; - List RECENT_PLAYS = sigPlace.RECENT_PLAYS; - List RECENT_RECORDS = sigPlace.RECENT_RECORDS; - HashMap> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>()); - List RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>()); - boolean found=false; - for (int i=0;i>> DATA = sigPlace.SONG_DATABASE; + List RECENT_PLAYS = sigPlace.RECENT_PLAYS; + List RECENT_RECORDS = sigPlace.RECENT_RECORDS; + HashMap> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>()); + List RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>()); + boolean found=false; + for (int i=0;i20) { + RECENT_PLAYS.remove(RECENT_PLAYS.size()-1); + } + RECORDS.add(i, newImg.toStringWithScreenshot()); + break; + } + } + if (!found) { + RECORDS.add(newImg.toStringWithScreenshot()); RECENT_RECORDS.add(0,newImg.toStringWithScreenshot()); + RECENT_PLAYS.add(0,newImg.toStringWithScreenshot()); + if (RECENT_PLAYS.size()>20) { + RECENT_PLAYS.remove(RECENT_PLAYS.size()-1); + } } - RECENT_PLAYS.add(0,newImg.toStringWithScreenshot()); - if (RECENT_PLAYS.size()>20) { - RECENT_PLAYS.remove(RECENT_PLAYS.size()-1); + if (RECENT_RECORDS.size()>20) { + RECENT_RECORDS.remove(RECENT_RECORDS.size()-1); } - RECORDS.add(i, newImg.toStringWithScreenshot()); - break; - } - } - if (!found) { - RECORDS.add(newImg.toStringWithScreenshot()); - RECENT_RECORDS.add(0,newImg.toStringWithScreenshot()); - RECENT_PLAYS.add(0,newImg.toStringWithScreenshot()); - if (RECENT_PLAYS.size()>20) { - RECENT_PLAYS.remove(RECENT_PLAYS.size()-1); - } - } - if (RECENT_RECORDS.size()>20) { - RECENT_RECORDS.remove(RECENT_RECORDS.size()-1); - } - SONG_DATA.put(convertTitle(newImg.getTitle()),RECORDS); - DATA.put(newImg.getClass().getSimpleName(),SONG_DATA); - - new Thread(){ - public void run() { + SONG_DATA.put(convertTitle(newImg.getTitle()),RECORDS); + DATA.put(newImg.getClass().getSimpleName(),SONG_DATA); //Threaded database update. for (String reader : sigPlace.SONG_DATABASE.keySet()) { for (String song : sigPlace.SONG_DATABASE.get(reader).keySet()) { @@ -765,7 +764,8 @@ public class ArcadeReader { e.printStackTrace(); } } - }.start(); + }; + t.start(); } catch (IOException e) { e.printStackTrace(); }