package lancs.mobilemedia.core.ui.controller;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.List;
import lancs.mobilemedia.core.ui.MainUIMidlet;
import lancs.mobilemedia.core.ui.datamodel.AlbumData;
import lancs.mobilemedia.core.ui.screens.AddMediaToAlbum;
import lancs.mobilemedia.core.ui.screens.AlbumListScreen;
import lancs.mobilemedia.core.ui.screens.CaptureVideoScreen;
import lancs.mobilemedia.core.util.Constants;
import lancs.mobilemedia.lib.exceptions.InvalidImageDataException;
import lancs.mobilemedia.lib.exceptions.PersistenceMechanismException;
import de.ovgu.cide.jakutil.*;
public class VideoCaptureController extends AbstractController {
private CaptureVideoScreen pmscreen;
private AddMediaToAlbum saveVideoToAlbum;
public VideoCaptureController( MainUIMidlet midlet, AlbumData albumData, List albumListScreen, CaptureVideoScreen pmscreen){
super(midlet,albumData,albumListScreen);
this.pmscreen=pmscreen;
}
public boolean handleCommand( Command command){
String label=command.getLabel();
System.out.println("<* VideoCaptureController.handleCommand() *> " + label);
if (label.equals("Start")) {
pmscreen.startCapture();
return true;
}
else if (label.equals("Stop")) {
pmscreen.pauseCapture();
saveVideoToAlbum=new AddMediaToAlbum("Save Video");
saveVideoToAlbum.setItemName("Capture video");
saveVideoToAlbum.setLabePath("Save to Album:");
saveVideoToAlbum.setCommandListener(this);
saveVideoToAlbum.setCapturedMedia(pmscreen.getByteArrays());
Display.getDisplay(midlet).setCurrent(saveVideoToAlbum);
return true;
}
else if (label.equals("Save Item")) {
String videoname=((AddMediaToAlbum)getCurrentScreen()).getItemName();
String albumname=((AddMediaToAlbum)getCurrentScreen()).getPath();
try {
getAlbumData().addVideoData(videoname,albumname,saveVideoToAlbum.getCapturedMedia());
}
catch ( InvalidImageDataException e) {
e.printStackTrace();
}
catch ( PersistenceMechanismException e) {
e.printStackTrace();
}
}
else if ((label.equals("Back")) || (label.equals("Cancel"))) {
pmscreen.pauseCapture();
((AlbumListScreen)getAlbumListScreen()).repaintListAlbum(getAlbumData().getAlbumNames());
setCurrentScreen(getAlbumListScreen());
ScreenSingleton.getInstance().setCurrentScreenName(Constants.ALBUMLIST_SCREEN);
return true;
}
return false;
}
}