Rockbox Development > Feature Ideas

Adjustments to %St tag behaviour to improve Quickscreen theming support


Recently I have experimenting with theming the quickscreen in it's entirety.  There are several exposed %St setting names that can be used to get the current Quickscreen Item's names. (%St(qs left), %St(qs right) etc.) However there is no current way to access or display each setting's output like the default Quickscreen does. It is of course possible to hard code this functionality, but doing so for every one of Rockbox's supported settings, times four creates a lot of bloat. I also think there's potential to add support for icons based on the %St output. For both of these issues and ideas I have some possible solutions.

Make Settings tag nest-able: Allowing other tags to be placed inside %St tags and processed would allow the output of the user's chosen Quickscreen items to be accessed. This would look something like %St(%St(qs left)). If qs left was set to Shuffle, the line would be processed as %St(shuffle) and the output would be "On" or "Off". I don't think there should be a need for any complicated checks, as if the output of the nested tag isn't a valid input of the %St tag, then the theme wont run. This nested behaviour can already be seen in other tags, like the %xd image tag, logic tags and the %ss tag. This addition would also lend itself to more visual feedback for users, like visual toggles for binary settings.

Add support to image tags for subimages from the %St tag: Image tags have support for choosing subimages based on a tag. An example from the wiki entry: %xd(repeatmode,%mp) picks an image from the bitmap strip depending on the state of the player. My suggestion is to make the %St work with this feature. For example, using something like %xd(repeaticons,%St(repeat)) would be functionally equivalent to %xd(repeaticons,%mm). But the biggest use case for this would be with the Quickscreen item tags for %St, allowing more visual information to users of their chosen settings. However I suspect implementing this could run into issues with the number of supported settings, around 177 are supported in the config file according to the manual, but this is only speculation on my part. If this is an issue however, the %St tag's output could be treated similarly to the List Title icon feature and in turn the built in icon system. This could be the easiest way of implementing this feature.

While I do have experience with C, and have been familiarising myself with Rockbox's sourcecode, I am not overly confident in my ability to implement these despite how much I would like to. If any member of the dev team would be interested in working on this, be it mentoring myself or helping implementing these features, it would be much appreciated! Attached, I have a screenshot of a fully functional proof of concept running on an iPod Video using the brute force method mentioned above.


[0] Message Index

Go to full version