FlintMIDP is the MIDP 2.0 compatibility profile for FlintJVM. It is kept separate from FlintJDK so devices that only need the Java base runtime do not carry MIDP, LCDUI, RMS, or MMAPI classes.
Java sources follow the conventions used by FlintJDK:
- four spaces per indentation level;
- opening braces on the declaration line;
- no space between a control-flow keyword and
(; - braces may be omitted for a single simple statement;
- one public top-level type per source file;
- imports are explicit and grouped after the package declaration;
- platform extensions use
flint.*orboard.*, not undocumented additions to portable MIDP types.
Public javax.microedition.* signatures, constants, exceptions, and lifecycle
rules follow the Oracle MIDP 2.0 / JSR-118 API. Optional MMAPI extensions follow
JSR-135 and are only advertised when a working backend exists.
Record stores are persisted under:
/data/rms/<suite-id>/<store-name>.rms
The suite id comes from ResourceLoader.setSuiteDirectory. Updates are written
to a temporary file and renamed into place. Record identifiers remain
one-based and deleted identifiers are not reused.
Implemented:
- MMAPI player states and lifecycle events;
- per-player volume and mute;
- loop count, media time, duration, seek, stop, and close;
- PCM WAV, 8-bit or 16-bit, mono or stereo;
- conversion to the FlintOS mono PCM output rate;
- MIDI-note tone playback;
file://andresource://WAV locators;- JSR-135
VideoControlAPI declaration without advertising a video codec.
Planned playback order:
- Stream WAV data without retaining the complete file in heap.
- Add MIDP tone-sequence parsing through
ToneControl. - Add a lightweight MIDI synthesizer if required by target games.
- Add MJPEG demux/decode and a real
VideoControlimplementation. - Add audio/video clock synchronization and frame dropping.
Video content is not returned by Manager.getSupportedContentTypes until a
decoder and renderer pass device tests.
FlintMIDP requires java.base.jar, flint.drawing.jar, and
flintos.device.jar from the matching FlintOS/FlintJDK version.
The authoritative API reference is:
https://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/overview-summary.html