Pull all interfaces into a single interface: Filter.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / TimeCounterFilter.java
index b5a081d..ce08a61 100644 (file)
@@ -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 <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
-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().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);
                }
        }