Basically, this just replaces str(STRID) with ID2P(STRID).
The voiced version of these strings cannot not have any format
specifiers (enforced by the language tooling) and are instead more
generic.
As many of these are error conditions, it is doubly important for
them to be voiced in some way.
There are some places in the code that perform their own voicing
for splash messages (eg the shutdown code); those are left alone.
Change-Id: I7d51af351e8fa5c4beee42fbfc02719f1d6591b8
consolidate the logic for PERCENT tags to a single function
is_default() check is redundant in parse_albumart_load()
static bool isdefault(struct skin_tag_parameter *param)
{
return param->type == DEFAULT;
}
Change-Id: I7391224499624db7a95a2630f96e33827d1e7542
Investigating this issue I found that when
SBS and WPS share the same fonts the refcount prevents
the soon to be unused font from unloading
by the time the fnt is unloaded its already too late because the WPS
load failed.
What appears to work is freeing the fonts used by the skin items ahead
of time via skin_reset_buffers() in a separate loop instead of in the
loop used to load the skin files
Change-Id: Ib118163185d48b67b7c96e436bfb6fab8db546a9
Stops “Error accessing playlist control file” message
after returning from USB mode, due to control file
fd being closed
Change-Id: Ic4ecb276ef32f8dc24fe7e540742161b50934c73
remove nvram and use the existing settings framework for it
add a crc check to the user_settings data to see if we need to save
the user setting file or if we can just save the status file (resume.cfg)
move volume to the system_status struct so we don't write the whole settings file
over volume changes
allow user to still export volume with save sound settings
allow the user to also export pitch and speed
name the file .resume.cfg
Rename all the SYSTEM_STATUS save file variables to TLAs to save space and
discourage tinkering
Cleanup DEBUG_AVAIL_SETTINGS output
when saving user_settings it calls status_save as well this cause the resume
file to be written twice. instead remove the callback for status_save
when setting_save is called
remove header text when saving .resume.cfg
convert status_save() to status_save(bool force)
add SYSTEM_STATUS_UPDATE_TICKS
for ATA device set this to 5 minutes
since we arlready wait for the disk to be up before saving
we don't want to miss our window
for all other every 15 minutes
that way if the battery is too low by the time shutdown comes around you
don't lose much progress
Change-Id: I27214ffd6e5d5494ee5ca83b14f04a41ba426ad7
the manual states the following:
%V(0,0,-,-,-) %VB
Use %x(filename, 0, 0) to draw a backdrop image (If you want one!)
Then add %V(0,0,-,-,-)
if you forget then it causes display corruption
due to the uninitialized background buffer
instead make a copy of the current screen into the blank backdrop
so we won't be showing garbled data on the screen
Change-Id: I3f0df131d36537e91688e104c9445a604f657362
Positive values included a leading space, which
meant they weren't displayed center-aligned in
themes anymore.
Change-Id: Ibe75e9b81a2989c87630dd3ea78e4b90c6c74502
no functional changes.
remove some checks for screen when SCREEN_REMOTE
is not present
pack the skin_backdrop struct and use the space to remove
the static bool first_go variable
Change-Id: I17a96749d4995dd8124f3be4dd95bba58ee54b6d
should be no functional changes
looking at the blame for this file shows the buffer was made
static originally due to stack overflow.
Removing static buffer in favor of using the skin buffer
directly shouldn't cause a regression.
Change-Id: I941ed675c5ba8799bea678af61c196eb453a4788
add function get_temp_mp3entry() to return a valid mp3entry from scratch_mem
UNBUFFERED_ID3
or if playback hasn't been started used statically allocated mp3entry
NEXTTRACK_ID3
Change-Id: I3909fb585e0f5ad590f917ce827e991440f1fe75
I think with the recent refactoring we should be able to put mp3entry
on the stack
it should be moved up a level anyway
Change-Id: Idd2af598c48545e3dbc774279b5d2b264012805e
rather than a function call for each qs item along with the data
for those calls in the switch for get_token_value()
it makes more sense to just have the qs_token function
handle all of the logic
Change-Id: I3b3072496611fc2c536eec33c7cdf9fb2ec67ee0
clean-up the switch a bit by putting rtc code in its own function
move the id3 tags to the default branch and only read id3
if its actually needed
Change-Id: I0a6fe9aea646defcfdda731c4c963977173c4133
%ss did not check for the size of the resulting string before
copying it to the buffer
%ft has a search text mode
Change-Id: I1321681c249251aafe0e39bcc510b9e81f0cd0d3
%ft(filename,search_text)
finds a line beginning with search_text strips search_text and returns
the remainder of the line
Change-Id: I06fe029b89aa60e4dbf34c039d180c75213519a4
if no params are given these three supply a default
it wasn't being applied since it was guarded by the else{}
Change-Id: I2966fd7d8daa695d8b214461749c93b3e7883e51
this is fallout from allowing a scroll item redisplay timeouts
prior to eb3e5eb '[Feature] skinengine subline timeout hide line for n seconds'
the behavior could be seen sparingly
after we now have an alternator front and center with the next track scroll
unfortunately this results in strings never scrolling to completion
fix:
if the current line hasn't changed and we are not doing a
full screen refresh, don't invalidate the scroll viewport
(the scroll engine will still handle the user data changing
if that actually occurred)
Change-Id: I10d4b8a05caa28de617dc6454520ce5426d69532
the skin engine calls the tags for each conditional to check them since %ft
erases it's var if the file doesn't exist %?ft is likely only being called
to check existance of a file or line of a file
this patch allocates 2 bytes to satisify the conditional if the line exists
Change-Id: Ic74bf5fec9a5d9b6724692c49a0997bfa4cff48d
checkwps doesn't have current_tick
mp3_encoder had a divide by zero if the file wasn't encoded correctly or wrong file was passed
fix gcc warning in huffman encoder
move text for small screens
Change-Id: I9d09353e184e760ae31d1a1cd434d2790eacb7ca
builds on top of the file text patch to add hide timeouts to
subline text tags
this allows you to specify both a show time and hide time
for these elements
%t(show, hide)
also removes the 327 second limit for timeouts whne this form is used
Change-Id: If4598dcc24d0c7be4380e7595b7d91c7eba3a728
allow the skin engine to read text files and return a particular line
you then can use ss on that string to allow display of strings from the file
(Playername comes to mind)
able to be used as conditional
%?ft(filename)<Found|Not Found>
if (selected) line of file is empty the tag is treated as #COMMENT
bugfix:
%t(n)%?x<text|text>
would ignore the specified timeout defaulting to 2 seconds
bugfix: cabbiev2.128x160x16.wps was missing %Sx()
for translation on 'Next Track:'
playername.txt generated at boot if it doesn't exist contents: 'Rockbox!'
Change-Id: I04ea4fd411f74c7c6e672657949aa520c2f86f95
allow the skin engine to read text files and return a particular line
you then can use ss on that string to allow display of strings from the file
(Playername comes to mind)
able to be used as conditional
%?ft(filename)<Found|Not Found>
if (selected) line of file is empty the tag is treated as #COMMENT
scroll timeouts now persist thru trackchange
bugfix:
%t(n)%?x<text|text>
would ignore the specified timeout defaulting to 2 seconds
playername.txt generated at boot if it doesn't exist contents: 'RockBox!'
Change-Id: I961910e01be052ef902f77e6d92fc3e367ffe9d0
Move some elements around to save 720 bytes in the skin engine with cabbie
saves some code manipulating the skin_helpers arrays in skin_engine
eliminate conditionals checking for pre/post process functions
using a dummy fn(), consolidate pre/post process into a single function
adding a bool preprocess to indicate stage
Change-Id: Id2df4706b73e9025c7300be135dc02e135e587fe
replace with simplelist_reset_lines(void)
there was one user saving one short string
remove the feature to simplify list code
fix scrolling in dircache debug item
Change-Id: I71f933f224c2de5f7a68feab904a2fe0b81e1362
add simplelist_setline() to allow literal strings or owner buffer
to be shown in the simplelist
this makes simplelist more versatile by allowing static strings
to be added directly instead of copying into the simplelist buffer
(ie not consuming the simplelist text buffer)
add bounds checking to simplelist_setline/addline
No one has more than SIMPLELIST_MAX_LINES.. right?
-- there are actually a few places this isn't checked..
use new setline function in debug menu
share the simplelist buffer with the list_draw fn for gui_synclist
since they shouldn't be in-use simultaneously we can save some stack
Change-Id: I4a1e64d3a621d326ff094241da55452c0ff746ba
img may have already been loaded, in which case
bm.data will intentionally have been set to NULL
(see NOTE in load_skin_bmp)
Also see commit 01cbb79 and previous fix 35f9a5b
Change-Id: I581ed63836f30a6b669b3d1fd5886fc1b3664386
cfg_vals aren't needed for most settings
F_TABLE_SETTING, F_CHOICE_SETTING, F_BOOL_SETTING
can use cfg_vals but only a few custom settings use it otherwise
for these settings we define F_HAS_CFGVALS and use the setting union instead (as these all use UNUSED)
noticed that settings_dumper missed most cfg values so didn't show text setting values
saves ~300 bytes
Change-Id: Ie504c8cfe2a6cf471117c3afe5cf9a770a7f1784
it was hard to hit this branch, I had to comment out:
ln 555 else if (offset == 1)
ln 556 pid3 = state->nid3;
as far as I can tell the reason for the separate filename buffer
was due to the failure mode of audio_peek_track() wiping
the id3->path, stands to reason for me that we can just fill it
again
-Already found a gotcha playlist_peek() mutates the buffer
makes me like this solution less, might rework tagcache_fill_tags()
instead
--Fixed
Change-Id: I4a2ee71a8e2d0739c9e141948b71c2ed36296e3b
generate valid cue files from a playlist
uses remarks to store extra id3 info and display and playlist index
Change-Id: I00c9f6389445bb601dde6eb8f36157044024f8cb
A set of new tags for themes that allow them to display a quickscreen item's name or value like what is displayed on the default quickscreen.
There are 8 tags in total, 2 for each direction or "item".
One type of tag displays the setting name, while the other displays the setting's value.
All tags output an "ERR" string if no valid setting is found for that item.
Quickscreen Item name tags: %QT, %QR, %QB and %QL.
Quickscreen Item value tags: %Qt, %Qr, %Qb and %Ql.
Change-Id: Ia08ba5940e38065e051a0aefa2cff142c9e58684