X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsonitus%2Fdata%2Ffilter%2FTimeCounterFilter.java;h=0eb82818325ab9f65b7e0e73b01c45b51dd135c9;hb=1b5da82617f1ba7e569c63daf4fb981d0fd7f406;hp=96b40524ddcbe9adddb0d7c114de201fc467316d;hpb=4371ab7e900c5cc47aa4c18e6b125581a3accb2e;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 96b4052..0eb8281 100644 --- a/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java +++ b/src/main/java/net/pterodactylus/sonitus/data/filter/TimeCounterFilter.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; +import net.pterodactylus.sonitus.data.AbstractFilter; import net.pterodactylus.sonitus.data.Filter; import net.pterodactylus.sonitus.data.Metadata; @@ -31,7 +32,7 @@ import net.pterodactylus.sonitus.data.Metadata; * * @author David ‘Bombe’ Roden */ -public class TimeCounterFilter extends DummyFilter { +public class TimeCounterFilter extends AbstractFilter implements Filter { /** The byte counter. */ private final AtomicLong counter = new AtomicLong(); @@ -95,7 +96,7 @@ public class TimeCounterFilter extends DummyFilter { } // - // DUMMYFILTER METHODS + // FILTER METHODS // @Override @@ -104,14 +105,14 @@ public class TimeCounterFilter extends DummyFilter { if (resetOnMetadataUpdate) { reset(); } - updateTimestamp(); + updateTimestamp(true); } @Override public void process(byte[] buffer) throws IOException { super.process(buffer); counter.getAndAdd(buffer.length); - updateTimestamp(); + updateTimestamp(false); } // @@ -119,10 +120,10 @@ public class TimeCounterFilter extends DummyFilter { // /** Updates the timestamp in the metadata. */ - private void updateTimestamp() { + private void updateTimestamp(boolean now) { long timestamp = getMillis() / 1000; - if (lastTimestamp.get() != timestamp) { - super.metadataUpdated(parentMetadata.get().comment(String.format("%02d:%02d", timestamp / 60, timestamp % 60))); + if (now || (lastTimestamp.get() != timestamp)) { + super.metadataUpdated(parentMetadata.get().comment(String.format("%s%02d:%02d", (timestamp >= 3600) ? String.format("%d:", timestamp / 3600) : "" , (timestamp % 3600) / 60, timestamp % 60))); lastTimestamp.set(timestamp); } }