/*
* SlideshowGeneratorService.java
*
* Version 1.0 Sep 19, 2008
*
* Copyright notice
*
* Brief description
*
* (c) 2008 by dbreuer
*/
package de.fhkoeln.santiago.services;
import java.io.FileNotFoundException;
import java.net.URI;
import de.fhkoeln.cosima.components.AbstractComponent;
import de.fhkoeln.cosima.media.Media;
import de.fhkoeln.cosima.media.MediaComponent;
import de.fhkoeln.cosima.media.mediabroker.MediaBroker;
import de.fhkoeln.cosima.services.IODescriptor;
import de.fhkoeln.cosima.services.registry.ServiceRegistry;
import de.fhkoeln.cosima.util.Logger;
import de.fhkoeln.santiago.components.jmf.JMFImages2Movie;
import de.fhkoeln.santiago.components.jmf.MediaAction;
public class SlideshowGeneratorService extends AbstractComponent {
// TODO: Should be externalized into config file!
private static final String URI = "http://localhost:8080/axis2/services/SlideshowGeneratorService";
private static final String DESCRIPTION = "Producer:SlideshowGenerator";
private MediaAction mediaAction;
public SlideshowGeneratorService(ServiceRegistry registry) {
super(registry, URI, DESCRIPTION);
}
public IODescriptor execute() {
return super.execute();
}
protected IODescriptor _execute() {
Logger.info("Booting Service: " + getClass().getName());
IODescriptor output;
try {
String outputFileName = "file:///tmp/output.mov";
output = new IODescriptor();
MediaComponent outputMedia = new Media();
outputMedia.setName("MovieFromJPEGs");
mediaAction = new JMFImages2Movie(getInput().first(), outputFileName);
mediaAction.performAction();
outputMedia.setReferenceToRealData("/tmp/output.mov");
URI mediaUri = getBroker().store(outputMedia);
output.add(mediaUri.toString());
return output;
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
/* (non-Javadoc)
* @see de.fhkoeln.cosima.services.CoreService#setInput(de.fhkoeln.cosima.services.IODescriptor)
*/
public void setInput(IODescriptor descriptor) {
super.setInput(descriptor);
}
public IODescriptor getInput() {
return super.getInput();
}
public MediaBroker getBroker() {
return super.getBroker();
}
public void setBroker(MediaBroker broker) {
super.setBroker(broker);
}
/* (non-Javadoc)
* @see de.fhkoeln.cosima.services.CoreService#getDescription()
*/
public String getDescription() {
return super.getDescription();
}
/* (non-Javadoc)
* @see de.fhkoeln.cosima.services.CoreService#getUri()
*/
public String getUri() {
return super.getUri();
}
}