Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: FS#11615 - dynamic screen size.. time to commit

Re: FS#11615 - dynamic screen size.. time to commit

From: Maurus Cuelenaere <mcuelenaere_at_gmail.com>
Date: Sun, 13 Mar 2011 13:00:31 +0100

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
Received on 2011-03-13

Page was last modified "Jan 10 2012" The Rockbox Crew
aaa