It handles exit() properly, calling the handler also when the plugin returns
normally (also make exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.
To work better together with callbacks passed to rb->default_event_handler_ex() introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases rb->default_event_handler_ex() was passed a callback which was manually called at all other return points. This can now be done via atexit().
In future plugin_crt0.c could also handle clearing bss, initializing iram and more.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27873 a1c6a512-1295-4272-9138-f99709370657
It handles exit() properly, calling the handler also when the plugin returns
normally (also it makes exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.
To work better together with callbacks passed to rb->default_event_handler_ex introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases it was passed a callback which was manually called at all other return points. This can now be done via atexit().
In future plugin_crt0.c could also handle clearing bss, initializing iram and more.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27862 a1c6a512-1295-4272-9138-f99709370657
* add parameter, wait_key to display_text().
- set this true to wait button press after all words is displayed.
* use ARRAYLEN macro instead of #define WORDS
* add macro to indicate end of style array.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24846 a1c6a512-1295-4272-9138-f99709370657
struct plugin_api *rb is declared in PLUGIN_HEADER, and pointed to by
__header.api
the loader uses this pointer to initialize rb before calling entry_point
entry_point is no longer passed a pointer to the plugin API
all plugins, and pluginlib functions, are modified to refer to the
global rb
pluginlib functions which only served to copy the API pointer are
removed
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19776 a1c6a512-1295-4272-9138-f99709370657
Use unmodified C200 keymap when possible, variation of it when not
Use Archos bitmaps when possible
Current problems:
- Pegbox plugin shows display corruption (corruption is different in the simulator)
- Bubbles plugin misses 1 or 2 bottom lines, but if we gain back these lines it occupies a too small area of the screen
- Splitted screen (yellow/blue) is a bit weird in most plugins
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19252 a1c6a512-1295-4272-9138-f99709370657
- background colour fix for small colour targets
- button define fixes (no scroll wheel on ipod, no impossible combinations etc)
- collapsed two defines into one for easier assignment and documentation
- make levels wrap and make level-1 optional (for targets with few buttons)
- updated manual accordingly
- a couple more screenshots
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16963 a1c6a512-1295-4272-9138-f99709370657
- add button defines for M3 & D2
- make screen dimension checking more strict in places
- correct button names
I'll have to think a bit about the best solution for ONDIO (and probably other) button combinations...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16959 a1c6a512-1295-4272-9138-f99709370657
- button definitions for m:robe 100 and sansa c200
- adapted graphics for m:robe 100
- use image size directly from auto-generated headers
- save data files in correct directory
- manual chapter (still missing most screenshots)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16957 a1c6a512-1295-4272-9138-f99709370657