Skip to content

Commit 2dc1eed

Browse files
GodFuperBrutus5000
authored andcommitted
Fix opening the Debug window if initially Debug.ENABLE_DEBUG_WINDOW was false.
1 parent a6cfba7 commit 2dc1eed

1 file changed

Lines changed: 44 additions & 15 deletions

File tree

ice-adapter/src/main/java/com/faforever/iceadapter/debug/DebugWindow.java

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public class DebugWindow extends Application implements Debugger {
4343
private static final int WIDTH = 1200;
4444
private static final int HEIGHT = 700;
4545

46-
private ObservableList<DebugPeer> peers = FXCollections.observableArrayList();
46+
private final ObservableList<DebugPeer> peers = FXCollections.observableArrayList();
4747

4848

4949
@Override
@@ -89,6 +89,7 @@ public void start(Stage stage) {
8989
public void showWindow() {
9090
runOnUIThread(() -> stage.show());
9191
initStaticVariables();
92+
initPeers();
9293
}
9394

9495
@Override
@@ -107,6 +108,20 @@ public void initStaticVariables() {
107108
});
108109
}
109110

111+
public void initPeers() {
112+
runOnUIThread(() -> {
113+
synchronized (peers) {
114+
peers.clear();
115+
for (Peer peer : IceAdapter.gameSession.getPeers().values()) {
116+
DebugPeer p = new DebugPeer(peer);
117+
p.stateChangedUpdate(peer);
118+
p.connectivityUpdate(peer);
119+
peers.add(p);
120+
}
121+
}
122+
});
123+
}
124+
110125
@Override
111126
public void rpcStarted(CompletableFuture<JJsonPeer> peerFuture) {
112127
runOnUIThread(() -> {
@@ -143,11 +158,7 @@ public void gameStateChanged() {
143158
public void connectToPeer(int id, String login, boolean localOffer) {
144159
new Thread(() -> {
145160
synchronized (peers) {
146-
DebugPeer peer = new DebugPeer();
147-
peer.id.set(id);
148-
peer.login.set(login);
149-
peer.localOffer.set(localOffer);
150-
peers.add(peer);//Might callback into jfx
161+
peers.add(new DebugPeer(id, login, localOffer));//Might callback into jfx
151162
}
152163
}).start();
153164
}
@@ -166,10 +177,7 @@ public void peerStateChanged(Peer peer) {
166177
new Thread(() -> {
167178
synchronized (peers) {
168179
peers.stream().filter(p -> p.id.get() == peer.getRemoteId()).forEach(p -> {
169-
p.connected.set(peer.getIce().isConnected());
170-
p.state.set(peer.getIce().getIceState().getMessage());
171-
p.localCandidate.set(Optional.ofNullable(peer.getIce().getComponent()).map(Component::getSelectedPair).map(CandidatePair::getLocalCandidate).map(Candidate::getType).map(CandidateType::toString).orElse(""));
172-
p.remoteCandidate.set(Optional.ofNullable(peer.getIce().getComponent()).map(Component::getSelectedPair).map(CandidatePair::getRemoteCandidate).map(Candidate::getType).map(CandidateType::toString).orElse(""));
180+
p.stateChangedUpdate(peer);
173181
});
174182
}
175183
}).start();
@@ -180,11 +188,7 @@ public void peerConnectivityUpdate(Peer peer) {
180188
runOnUIThread(() -> {
181189
synchronized (peers) {
182190
peers.stream().filter(p -> p.id.get() == peer.getRemoteId()).forEach(p -> {
183-
Optional<PeerConnectivityCheckerModule> connectivityChecker = Optional.ofNullable(peer.getIce().getConnectivityChecker());
184-
p.averageRtt.set(connectivityChecker.map(PeerConnectivityCheckerModule::getAverageRTT).orElse(-1.0f).intValue());
185-
p.lastReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getLastPacketReceived).map(last -> System.currentTimeMillis() - last).orElse(-1L).intValue());
186-
p.echosReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getEchosReceived).orElse(-1L).intValue());
187-
p.echosReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getEchosReceived).orElse(-1L).intValue());
191+
p.connectivityUpdate(peer);
188192
});
189193
}
190194
});
@@ -218,6 +222,16 @@ public static class DebugPeer {
218222
public SimpleStringProperty localCandidate = new SimpleStringProperty("");
219223
public SimpleStringProperty remoteCandidate = new SimpleStringProperty("");
220224

225+
public DebugPeer(Peer peer) {
226+
this(peer.getRemoteId(), peer.getRemoteLogin(), peer.isLocalOffer());
227+
}
228+
229+
public DebugPeer(int id, String login, boolean localOffer) {
230+
this.id.set(id);
231+
this.login.set(login);
232+
this.localOffer.set(localOffer);
233+
}
234+
221235
public int getId() {
222236
return id.get();
223237
}
@@ -301,5 +315,20 @@ public String getRemoteCandidate() {
301315
public SimpleStringProperty remoteCandidateProperty() {
302316
return remoteCandidate;
303317
}
318+
319+
public void stateChangedUpdate(Peer peer) {
320+
connected.set(peer.getIce().isConnected());
321+
state.set(peer.getIce().getIceState().getMessage());
322+
localCandidate.set(Optional.ofNullable(peer.getIce().getComponent()).map(Component::getSelectedPair).map(CandidatePair::getLocalCandidate).map(Candidate::getType).map(CandidateType::toString).orElse(""));
323+
remoteCandidate.set(Optional.ofNullable(peer.getIce().getComponent()).map(Component::getSelectedPair).map(CandidatePair::getRemoteCandidate).map(Candidate::getType).map(CandidateType::toString).orElse(""));
324+
}
325+
326+
public void connectivityUpdate(Peer peer) {
327+
Optional<PeerConnectivityCheckerModule> connectivityChecker = Optional.ofNullable(peer.getIce().getConnectivityChecker());
328+
averageRtt.set(connectivityChecker.map(PeerConnectivityCheckerModule::getAverageRTT).orElse(-1.0f).intValue());
329+
lastReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getLastPacketReceived).map(last -> System.currentTimeMillis() - last).orElse(-1L).intValue());
330+
echosReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getEchosReceived).orElse(-1L).intValue());
331+
echosReceived.set(connectivityChecker.map(PeerConnectivityCheckerModule::getEchosReceived).orElse(-1L).intValue());
332+
}
304333
}
305334
}

0 commit comments

Comments
 (0)