FS#9515 - customizable quickscreen!

Attached to Project: Rockbox
Opened by Jonathan Gordon (jdgordon) - Thursday, 30 October 2008, 10:51 GMT
Last edited by Jonathan Gordon (jdgordon) - Monday, 03 November 2008, 11:11 GMT
Task Type Patches
Category Settings
Status Closed
Assigned To No-one
Operating System All players
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


this lets you choose which 3 settings you want in the quickscreen.
The new quickscreen items menu has been put under "settings > general settings > "Quickscreen Items".

This patch lets almost all settings which are accessible from the menu to be used. Unfortunately the EQ setting names aren't unique so in the setting screen the options are shown as "translated name (config name)".

from an e200 build:
Binary size: 574464
Actual size: 573384
RAM usage: 1421488

Binary size: 575488
Actual size: 574648
RAM usage: 1422784
This task depends upon

Closed by  Jonathan Gordon (jdgordon)
Monday, 03 November 2008, 11:11 GMT
Reason for closing:  Accepted
Comment by Jonathan Gordon (jdgordon) - Thursday, 30 October 2008, 13:46 GMT
new version. havnt checked the deltas because im too tired and its not commitable anyway.

this patch will give some warnings in settings_list.c, i need to fix the macro but dont see the problem now (12.45am)
saves and loads as the settings config name in the .cfg, stored in global_settings as an int.

line lengths need fixing probably.
also the QS drawing needs looking into (i think)... got some wierd placements before but forgot with which settings
Comment by Jonathan Gordon (jdgordon) - Friday, 31 October 2008, 05:53 GMT
OK, I think this is ready to commit...
I've split the patch into 2 diffs, custom_setting_type.diff adds the code needed to add settings which can read/write arbitrary stuff to the .cfg and load it accordingly.

One important thing to understand is that not every setting will work brilliantly in the quickscreen (without a bit of fiddling...) If the setting has a callback then that will be called when the value changes and it should work well, the settings which dont have a callback wont be set untill settings_apply() is called when the screen is exited. I'm leaving the handling for the default values because they wont work without special handling anyway and its there so may as well leave it.

just checked voicing and that works also :)