Processing the screenshot is now threaded to prevent holdups.
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
161a56201e
commit
54dff58f17
@ -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);
|
|
||||||
newImg.interpretBoxes(p);
|
|
||||||
HashMap<String,HashMap<String,List<String>>> DATA = sigPlace.SONG_DATABASE;
|
|
||||||
List<String> RECENT_PLAYS = sigPlace.RECENT_PLAYS;
|
|
||||||
List<String> RECENT_RECORDS = sigPlace.RECENT_RECORDS;
|
|
||||||
HashMap<String,List<String>> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>());
|
|
||||||
List<String> RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>());
|
|
||||||
boolean found=false;
|
|
||||||
for (int i=0;i<RECORDS.size();i++) {
|
|
||||||
String s = RECORDS.get(i);
|
|
||||||
int score = getScore(s);
|
|
||||||
if (score<newImg.getScore()) {
|
|
||||||
//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_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() {
|
public void run() {
|
||||||
|
newImg.result_screenshot=p;
|
||||||
|
//Path getGamePath = gamePath(newImg);
|
||||||
|
newImg.interpretBoxes(p);
|
||||||
|
HashMap<String,HashMap<String,List<String>>> DATA = sigPlace.SONG_DATABASE;
|
||||||
|
List<String> RECENT_PLAYS = sigPlace.RECENT_PLAYS;
|
||||||
|
List<String> RECENT_RECORDS = sigPlace.RECENT_RECORDS;
|
||||||
|
HashMap<String,List<String>> SONG_DATA=DATA.getOrDefault(newImg.getClass().getSimpleName(),new HashMap<>());
|
||||||
|
List<String> RECORDS = SONG_DATA.getOrDefault(convertTitle(newImg.getTitle()),new ArrayList<>());
|
||||||
|
boolean found=false;
|
||||||
|
for (int i=0;i<RECORDS.size();i++) {
|
||||||
|
String s = RECORDS.get(i);
|
||||||
|
int score = getScore(s);
|
||||||
|
if (score<newImg.getScore()) {
|
||||||
|
//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_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);
|
||||||
//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…
x
Reference in New Issue
Block a user