Skip to content
Marc Capdevielle edited this page Oct 8, 2010 · 4 revisions

MeMoPlayer

This is a core part of the Open Source Mobile Widget Platform. It provides the VRML/Javascript engine to run Mobile Widgets on Java Mobile phones.

Quick overview

OSMWP widgets are described using the VRML declarative language for the UI description and resources inclusion, and Javascript to handle user interaction and application logic.

All code (VRML and Javascript) and associated resources (like graphics and audio) are embedded in a single and optimized container (M4M format).

The MeMoPlayer projet is composed of two main parts:

  • the compiler that generates the M4M files from VRML/Javascript code.
  • the player that renders the widget on the mobile phone.

Example screenshots

Project organisation

  • /compiler : the VRML/Javascript compiler (windows/mac/linux)
  • /java : the client side VRML/Javascript player
  • /android : Adapter code for the Android platform
  • /rim : Adapter code for the RIM BlackBerry platform

Dependencies

compiler

The GNU gcc toolchain is required to build the compiler. Cywin is required to build the compiler for Windows platforms.

The FreeType and FreeImage libraries are also necessary to support bitmap fonts. Pre-compiled versions of these libraries are provided for mac, linux and windows to ease compilation.

player

The latest Java ME SDK is recommended to build the java player. The Ant build system is used to build the MIDlet for Java ME.

The Android SDK is required to build the Android version.

The BlackBerry Java SDK is required to build the Blackberry version.

Third party projects

All code is under France Telecom copyright except the code mentionned here :

  • /java/lib/GZip : The TinyLine GZip library. This library is only included when project is preprocessed with the mm.gzip option.
  • /java/lib/Pushlets : The Pushlets library (LGPL Licence). This library is only included when project is preprocessed with the api.pushlet option.
  • /java/src/com/java4ever/apime/io/GZIP.java : LGPL GZip library by Carlos Araiz (caraiz@java4ever.com). This library is only included when project is preprocessed with the mm.gzip option. Not currently used.
  • /java/src/memoplayer/JSBase64Coder.java : LGPL Base64 Encode and Decoder by Christian d'Heureuse, Inventec Informatik AG, Switzerland. This code is only included when project is preprocessed with the mm.base64 option.
  • /java/src/memoplayer/JsonDecoder.java : LGPL json decoder by the Mozilla Foundation. This code is only included when project is preprocessed with the api.jsonrpc option.
  • /java/src/memoplayer/XJSArray.java, XNode.java and XParse.java : XML Parser by Michael Classen (GPL Licence). This code is only included when project is preprocessed with the api.xparse2 option.
  • /android/j2ab_android : The MIDP/CLDC wrapper classes for Android a heavily modified fork (from revision r13 under public domain) of the J2ME Android Bridge project.
  • /compiler/fontMap : The FreeType (BSD Licence) and FreeImage (GPL Licence) libraries are used unmodified by the fontExtrator tool to generate bitmap fonts from TrueType fonts.

Licence

All code, except the included third party projects mentionned in previous section, is covered by the Apache Licence version 2.