Op 13-03-11 11:19, Jonathan Gordon schreef:
Hi all,
I want to finally commit http://www.rockbox.org/tracker/task/11615
which allows runtime LCD size detection for the sdl app. no
significant changes to targets without HAVE_DYNAMIC_LCD_SIZE defined
(a few checks go from preprocessor to c if's but shouldn't be a big
hit)...

So, I'll wait untill midweek for further comments before commiting.

Enabling this does take credits and pictureflow and some other plugins
out of the build, and they may not be easy to put back in BUT untill
RaaA builds are done automatically (i.e not relying on individuals to
do the builds) I don't see this as a big issue. And even then, this is
only being enabled for sdlapp for now.

This does leave a few questions open but I think unless this starts
getting commited nothing will happen..
* Do we load screen sized bmp/jpg logos from disk instead of compiling
in? It should only be the boot logo affected.

I'd liked to have these fixed before the patch is committed.

My thinking was to create a new build utility which would create several arrays containing these bitmaps (instead of 1 for each now)
and add some glue code which would pick the correct one at runtime.

However, adding them to the zip and loading them from disk doesn't sound bad 
either.

* plugins (We *could* build each .rock for multiple hardcoded sizes
which will work with the dynamic screen size build. android (as an
example) could download the .zip for the devices screen size which
would also include the cabbie theme)

Same here, but I don't think much plugins should be included for RaaA (only credits, pictureflow, properties, ..).

* a few settings have hard coded (but mostly arbitrary) values which
are calculated from the screen size, how do we deal with that?

Is there a possibility to set these at runtime? Something like:

struct setting_list* get_setting_by_name(const char *name)
{
  foreach (settings as setting) {
    if (setting.cfg_name == name)
      return setting;
  }
}

void settings_init(void)
{
  get_setting_by_name("scrollbar width")->int_setting->max = MAX(LCD_WIDTH/10, 
25);
  /* etc */
}

--
Maurus Cuelenaere

Reply via email to