package lampiro.screens; // #mdebug //@import it.yup.util.Logger; //@ // #enddebug import java.util.Vector; import it.yup.ui.UICanvas; import it.yup.util.ResourceIDs; import it.yup.util.ResourceManager; import it.yup.util.Utils; import it.yup.xmpp.Config; import javax.microedition.lcdui.AlertType; import javax.microedition.lcdui.Canvas; import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Graphics; import javax.microedition.media.Manager; import javax.microedition.media.Player; import javax.microedition.media.control.RecordControl; import javax.microedition.media.control.VideoControl; import lampiro.LampiroMidlet; /* * MultimediaScreen */ public class MMScreen extends Canvas { private static ResourceManager rm = ResourceManager.getManager("common", "en"); /* * The default jid for the user to send the multimedia file */ private String contactToSend = null; public MMScreen(String contactToSend) { this.contactToSend = contactToSend; } protected void paint(Graphics g) { int width = getWidth(); int height = getHeight(); // Draw a green border around the VideoControl. g.setColor(0x000000); g.drawRect(0, 0, width - 1, height - 1); g.drawRect(1, 1, width - 3, height - 3); } public void showCamera() { try { Player mPlayer = null; try { //String camResolution= MMScreen.getVideoRes(true); mPlayer = Manager.createPlayer("capture://video"); mPlayer.realize(); } catch (Exception e) { //#mdebug //@ e.printStackTrace(); //@ Logger.log("In setup video 1" + e.getClass().getName() + "\n" //@ + e.getMessage()); //#enddebug } if (mPlayer == null) { RosterScreen rs = RosterScreen.getInstance(); UICanvas.getInstance().open(rs, true); UICanvas.display(null); rs.showAlert(AlertType.ERROR, rm .getString(ResourceIDs.STR_ERROR), rm .getString(ResourceIDs.STR_CAMERA_ERROR), null); return; } VideoControl mControl = (VideoControl) mPlayer .getControl("VideoControl"); InnerMMScreen ics = new InnerMMScreen(mPlayer, mControl, Config.imgType, contactToSend); Display.getDisplay(LampiroMidlet._lampiro).setCurrent(ics); mPlayer.start(); repaint(); } catch (Exception e) { // #mdebug //@ e.printStackTrace(); //@ Logger.log("In starting player " + e.getClass().getName() + "\n" //@ + e.getMessage()); //#enddebug } } public void showAudio() { // find the best audio format String prop = System.getProperty("audio.encodings"); Vector encs = Utils.tokenize(prop, new String[] { " " }, false); String foundType = "amr"; int typeIndex = 0; boolean found = false; for (int i = 0; !found && i < Config.audioTypes.length; i++) { for (int l = 0; !found && l < encs.size(); l++) { if (((String) encs.elementAt(l)).indexOf(Config.audioTypes[i]) >= 0) { foundType = ((String) Config.audioTypes[i]); typeIndex = i; found = true; break; } } } Player p = null; RecordControl rc; try { //p = Manager.createPlayer("capture://audio"); p = Manager.createPlayer("capture://audio?encoding=" + foundType); p.realize(); } catch (Exception e) { // #mdebug //@ e.printStackTrace(); //@ Logger.log("In allocate audio player " + e.getClass().getName() //@ + "\n" + e.getMessage()); //#enddebug RosterScreen.getInstance().setFreezed(false); UICanvas.getInstance().open(RosterScreen.getInstance(), true); UICanvas.display(null); return; } try { rc = (RecordControl) p.getControl("RecordControl"); } catch (Exception e) { // #mdebug //@ e.printStackTrace(); //@ Logger.log("In allocate audio player " + e.getClass().getName() //@ + "\n" + e.getMessage()); //#enddebug return; } InnerMMScreen ics = new InnerMMScreen(p, rc, Config.audioType, this.contactToSend); ics.setTypeIndex(typeIndex); Display.getDisplay(LampiroMidlet._lampiro).setCurrent(ics); repaint(); } }