diff --git a/client/src/main/java/ctbrec/ui/CamrecApplication.java b/client/src/main/java/ctbrec/ui/CamrecApplication.java index a10e5d4e..517ff09c 100644 --- a/client/src/main/java/ctbrec/ui/CamrecApplication.java +++ b/client/src/main/java/ctbrec/ui/CamrecApplication.java @@ -510,7 +510,7 @@ public class CamrecApplication extends Application { bytesPerSecond = 0; } String humanReadable = ByteUnitFormatter.format(bytesPerSecond); - var status = String.format("Recording %s / %s models @ %s/s", activeRecordings, recorder.getModelCount(), humanReadable); + var status = String.format("Recording %s / %s models (%s grouped) @ %s/s", activeRecordings, recorder.getModelCount(), recorder.getGroupedModelCount(), humanReadable); Platform.runLater(() -> statusLabel.setText(status)); } diff --git a/common/src/main/java/ctbrec/recorder/Recorder.java b/common/src/main/java/ctbrec/recorder/Recorder.java index dfe9b3e4..0fd7d06c 100644 --- a/common/src/main/java/ctbrec/recorder/Recorder.java +++ b/common/src/main/java/ctbrec/recorder/Recorder.java @@ -174,6 +174,13 @@ public interface Recorder { * @return */ int getModelCount(); + + /** + * Returns the number of model groups + ungrouped models + * + * @return + */ + int getGroupedModelCount(); Set getModelGroups(); diff --git a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java index 8c7773f9..ad2adcdd 100644 --- a/common/src/main/java/ctbrec/recorder/RemoteRecorder.java +++ b/common/src/main/java/ctbrec/recorder/RemoteRecorder.java @@ -672,6 +672,17 @@ public class RemoteRecorder implements Recorder { return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).count(); } + @Override + public int getGroupedModelCount() { + Map urlToGroup = new HashMap<>(); + for (var group : getModelGroups()) { + for (var url : group.getModelUrls()) { + urlToGroup.putIfAbsent(url, group.getName()); + } + } + return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).map(m -> urlToGroup.getOrDefault(m.getUrl(), m.getName())).distinct().count(); + } + @Override public Set getModelGroups() { modelGroupLock.lock(); diff --git a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java index 52e80cfc..9e5eed51 100644 --- a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java @@ -918,6 +918,17 @@ public class SimplifiedLocalRecorder implements Recorder { return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).count(); } + @Override + public int getGroupedModelCount() { + Map urlToGroup = new HashMap<>(); + for (var group : getModelGroups()) { + for (var url : group.getModelUrls()) { + urlToGroup.putIfAbsent(url, group.getName()); + } + } + return (int) models.stream().filter(m -> !m.isMarkedForLaterRecording()).map(m -> urlToGroup.getOrDefault(m.getUrl(), m.getName())).distinct().count(); + } + @Override public Set getModelGroups() { modelGroupLock.lock();