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
I still have more plugins to finish, but this is an initial start
and I can at least get them under version control in case I need
to revise any.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23813 a1c6a512-1295-4272-9138-f99709370657
Some plugins were forgotten : mpegplayer, test_fps, test_scanrate
Some plugins use button_status() and can't use BUTTON_REL or BUTTON_REPEAT flags
rockblox1d : use single press BUTTON_HOME
doom : use single press BUTTON_HOME and BUTTON_POWER to open doors
I may have forgotten some plugins, I didn't test them one by one
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20925 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