import net.pterodactylus.sonitus.data.ConnectException;
import net.pterodactylus.sonitus.data.Filter;
import net.pterodactylus.sonitus.data.Format;
+import net.pterodactylus.sonitus.data.Metadata;
import net.pterodactylus.sonitus.data.ReusableSink;
import net.pterodactylus.sonitus.data.Source;
import net.pterodactylus.sonitus.data.event.SourceFinishedEvent;
/** The connection. */
private Connection connection;
- /** The format. */
- private Format format;
-
@Inject
public MultiSourceFilter(EventBus eventBus) {
this.eventBus = eventBus;
@Override
public Format format() {
- return format;
+ synchronized (syncObject) {
+ return connection.source.format();
+ }
+ }
+
+ @Override
+ public Metadata metadata() {
+ synchronized (syncObject) {
+ return connection.source.metadata();
+ }
}
@Override
@Override
public void connect(Source source) throws ConnectException {
checkNotNull(source, "source must not be null");
- if (format != null) {
- checkArgument(format.equals(source.format()), "source’s format must equal this sink’s format");
- } else {
- format = source.format();
+ if ((connection != null) && (connection.source != null)) {
+ checkArgument(connection.source.format().equals(source.format()), "source’s format must equal this sink’s format");
}
if (connection == null) {
}
}
+ @Override
+ public void metadataUpdated() {
+ /* ignore. */
+ }
+
/**
* The connection feeds the input from the currently connected source to the
* input stream that {@link #get(int)} will get its data from.