Processing the screenshot is now threaded to prevent holdups.

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2 3 years ago
parent 161a56201e
commit 54dff58f17
  1. 82
      ArcadeReader.java

@ -697,49 +697,48 @@ public class ArcadeReader {
BufferedImage img; BufferedImage img;
try { try {
img = ImageIO.read(p.toFile()); img = ImageIO.read(p.toFile());
Reader newImg = interpret(img); final Reader newImg = interpret(img);
newImg.result_screenshot=p; Thread t = new Thread(){
//Path getGamePath = gamePath(newImg); public void run() {
newImg.interpretBoxes(p); newImg.result_screenshot=p;
HashMap<String,HashMap<String,List<String>>> DATA = sigPlace.SONG_DATABASE; //Path getGamePath = gamePath(newImg);
List<String> RECENT_PLAYS = sigPlace.RECENT_PLAYS; newImg.interpretBoxes(p);
List<String> RECENT_RECORDS = sigPlace.RECENT_RECORDS; HashMap<String,HashMap<String,List<String>>> DATA = sigPlace.SONG_DATABASE;
HashMap<String,List<String>> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>()); List<String> RECENT_PLAYS = sigPlace.RECENT_PLAYS;
List<String> RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>()); List<String> RECENT_RECORDS = sigPlace.RECENT_RECORDS;
boolean found=false; HashMap<String,List<String>> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>());
for (int i=0;i<RECORDS.size();i++) { List<String> RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>());
String s = RECORDS.get(i); boolean found=false;
int score = getScore(s); for (int i=0;i<RECORDS.size();i++) {
if (score<newImg.getScore()) { String s = RECORDS.get(i);
//Insert here. int score = getScore(s);
found=true; if (score<newImg.getScore()) {
if (i==0) { //Insert here.
found=true;
if (i==0) {
RECENT_RECORDS.add(0,newImg.toStringWithScreenshot());
}
RECENT_PLAYS.add(0,newImg.toStringWithScreenshot());
if (RECENT_PLAYS.size()>20) {
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_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_RECORDS.size()>20) {
if (RECENT_PLAYS.size()>20) { RECENT_RECORDS.remove(RECENT_RECORDS.size()-1);
RECENT_PLAYS.remove(RECENT_PLAYS.size()-1);
} }
RECORDS.add(i, newImg.toStringWithScreenshot()); SONG_DATA.put(convertTitle(newImg.getTitle()),RECORDS);
break; DATA.put(newImg.getClass().getSimpleName(),SONG_DATA);
}
}
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() {
//Threaded database update. //Threaded database update.
for (String reader : sigPlace.SONG_DATABASE.keySet()) { for (String reader : sigPlace.SONG_DATABASE.keySet()) {
for (String song : sigPlace.SONG_DATABASE.get(reader).keySet()) { for (String song : sigPlace.SONG_DATABASE.get(reader).keySet()) {
@ -765,7 +764,8 @@ public class ArcadeReader {
e.printStackTrace(); e.printStackTrace();
} }
} }
}.start(); };
t.start();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }

Loading…
Cancel
Save