X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FTimeCounterFilter.java;h=cfa93af2496e2334f7e14a0b7e0357204c0748a2;hb=70ea21939e6071954eeb05f2a42e7a92a02013f2;hp=6f3183043a8984d6d041c1a85e38b88d6a9331b9;hpb=7f47f7e6579aa91bf5e867f7a6ea8155761eb26a;p=sonitus.git diff --git a/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java b/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java index 6f31830..cfa93af 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java @@ -31,7 +31,7 @@ import net.pterodactylus.sonitus.data.Metadata; * * @author David ‘Bombe’ Roden */ -public class TimeCounterFilter extends DummyFilter { +public class TimeCounterFilter extends BasicFilter { /** The byte counter. */ private final AtomicLong counter = new AtomicLong(); @@ -95,25 +95,35 @@ public class TimeCounterFilter extends DummyFilter { } // - // DUMMYFILTER METHODS + // BASICFILTER METHODS // @Override public void metadataUpdated(Metadata metadata) { - super.metadataUpdated(metadata); parentMetadata.set(metadata); if (resetOnMetadataUpdate) { reset(); } + updateTimestamp(true); } @Override public void process(byte[] buffer) throws IOException { super.process(buffer); counter.getAndAdd(buffer.length); + updateTimestamp(false); + } + + // + // PRIVATE METHODS + // + + /** Updates the timestamp in the metadata. */ + private void updateTimestamp(boolean now) { long timestamp = getMillis() / 1000; - if (lastTimestamp.get() != timestamp) { - super.metadataUpdated(parentMetadata.get().title(String.format("%s (%02d:%02d)", parentMetadata.get().title(), timestamp / 60, timestamp % 60))); + if (now || (lastTimestamp.get() != timestamp)) { + super.metadataUpdated(parentMetadata.get().comment(String.format("%02d:%02d", timestamp / 60, timestamp % 60))); + lastTimestamp.set(timestamp); } }