package com.enst.mp4box; import java.util.Collections; import java.util.HashMap; import java.util.Map; import com.enst.mp4box.R; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.util.Log; import android.view.View; public class mp4box extends Activity { private mp4terminal myTerminal; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); myTerminal = new mp4terminal(); errors = loadAllLibraries(); System.out.println( "hello world java" ); final Button button = (Button) findViewById(R.id.OkButton); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { EditText oCommandLine = (EditText) findViewById(R.id.CommandLineEdit ); CharSequence sCommandLine = oCommandLine.getText(); myTerminal.run( sCommandLine.toString() ); //showKeyboard( true ); } }); } private static Map<String, Throwable> errors = null; synchronized static Map<String, Throwable> loadAllLibraries() { if( errors != null) return errors; StringBuilder sb = new StringBuilder(); final String[] toLoad = { "GLESv1_CM", "dl", "log",//$NON-NLS-3$ //$NON-NLS-2$ //$NON-NLS-1$ "jpeg", "javaenv", //$NON-NLS-1$ //$NON-NLS-2$ "mad", "editline", "ft2", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ "js_osmo", "openjpeg", "png", "z", //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ //$NON-NLS-4$ "ffmpeg", "faad", "gpac", //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ "stdc++", "mp4box" }; // //$NON-NLS-1$ //$NON-NLS-2$ HashMap<String, Throwable> exceptions = new HashMap<String, Throwable>(); for (String s : toLoad) { try { String msg = "Loading library " + s + "...";//$NON-NLS-1$//$NON-NLS-2$ sb.append(msg); //Log.i(LOG_LIB, msg); System.loadLibrary(s); } catch (UnsatisfiedLinkError e) { sb.append("Failed to load " + s + ", error=" + e.getLocalizedMessage() + " :: " //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$ + e.getClass().getSimpleName() + "\n"); //$NON-NLS-1$ exceptions.put(s, e); //Log.e(LOG_LIB, "Failed to load library : " + s + " due to link error " + e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ } catch (SecurityException e) { exceptions.put(s, e); //Log.e(LOG_LIB, "Failed to load library : " + s + " due to security error " + e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ } catch (Throwable e) { exceptions.put(s, e); //Log.e(LOG_LIB, "Failed to load library : " + s + " due to Runtime error " + e.getLocalizedMessage(), e); //$NON-NLS-1$ //$NON-NLS-2$ } } /*if (!exceptions.isEmpty()) { try { PrintStream out = new PrintStream(config.getGpacConfigDirectory() + "debug_libs.txt", "UTF-8"); //$NON-NLS-1$//$NON-NLS-2$ out.println("$Revision: 2972 $"); //$NON-NLS-1$ out.println(new Date()); out.println("\n*** Configuration\n"); //$NON-NLS-1$ out.println(config.getConfigAsText()); sb.append("*** Libs listing: "); //$NON-NLS-1$ sb.append(config.getGpacLibsDirectory()); sb.append('\n'); listing(sb, new File(config.getGpacLibsDirectory()), 2); sb.append("*** Modules listing: "); //$NON-NLS-1$ sb.append(config.getGpacModulesDirectory()); sb.append('\n'); listing(sb, new File(config.getGpacModulesDirectory()), 2); sb.append("*** Fonts listing: \n"); //$NON-NLS-1$ sb.append(config.getGpacFontDirectory()); sb.append('\n'); listing(sb, new File(config.getGpacFontDirectory()), 2); sb.append("*** Exceptions:\n"); //$NON-NLS-1$ for (Map.Entry<String, Throwable> ex : exceptions.entrySet()) { sb.append(ex.getKey()).append(": ") //$NON-NLS-1$ .append(ex.getValue().getLocalizedMessage()) .append('(') .append(ex.getValue().getClass()) .append(")\n"); //$NON-NLS-1$ } out.println(sb.toString()); out.flush(); out.close(); } catch (Exception e) { Log.e(LOG_LIB, "Failed to output debug info to debug file", e); //$NON-NLS-1$ } }*/ errors = Collections.unmodifiableMap(exceptions); return errors; } /*public void showKeyboard(boolean showKeyboard) { if (keyboardIsVisible == showKeyboard == true) return; InputMethodManager mgr = ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)); this.keyboardIsVisible = showKeyboard; if (showKeyboard) mgr.showSoftInput(findViewById(R.id.CommandLineEdit ), 0); else mgr.hideSoftInputFromInputMethod(findViewById(R.id.CommandLineEdit ).getWindowToken(), 0); }*/