Add name to all controlled components.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / filter / ExternalMp3Decoder.java
index cc52e41..f81d532 100644 (file)
 
 package net.pterodactylus.sonitus.data.filter;
 
-import static com.google.common.base.Preconditions.*;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.$Preconditions.checkState;
+
+import java.io.IOException;
 
-import net.pterodactylus.sonitus.data.ConnectException;
 import net.pterodactylus.sonitus.data.Metadata;
-import net.pterodactylus.sonitus.data.Source;
 
 /**
- * Basic {@link ExternalFilter} implementation that verifies that the connected
- * source is MP3-encoded and returns a PCM-encoded stream.
+ * Basic {@link net.pterodactylus.sonitus.data.filter.ExternalFilter}
+ * implementation that verifies that the connected source is MP3-encoded and
+ * returns a PCM-encoded stream.
  *
  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
  */
 public abstract class ExternalMp3Decoder extends ExternalFilter {
 
+       /**
+        * Creates a new external MP3 decoder.
+        *
+        * @param name
+        *              The name of the filter
+        */
+       protected ExternalMp3Decoder(String name) {
+               super(name);
+       }
+
        @Override
        public Metadata metadata() {
                return super.metadata().encoding("PCM");
        }
 
        @Override
-       public void connect(Source source) throws ConnectException {
-               checkNotNull(source, "source must not be null");
-               checkState(source.metadata().encoding().equalsIgnoreCase("MP3"), "source must be MP3-encoded");
+       public void open(Metadata metadata) throws IOException {
+               checkNotNull(metadata, "metadata must not be null");
+               checkState(metadata.encoding().equalsIgnoreCase("MP3"), "source must be MP3-encoded");
 
-               super.connect(source);
+               super.open(metadata);
        }
 
 }