This reverts commit b14056e90f.
Reason for revert: Not mathematically equivalent, inconsistent with other code paths, and leads to audio artifacts on ARM targets.
Change-Id: I71646e6e8df2aa2c57decdb5360daff870670c87
it appears callback is only set once in skin_parse() and then its never touched again
making repeatd checks pointless anyway
Change-Id: Iae4cb064b17f9c4e89a3ef772110ead17332cba2
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
synth.c is using a negative offset which gcc doesn't like
equlivalent code just uses pointer math instead
Change-Id: Ia1282c5608409cdff05cd4b90c4d4b695174482a
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
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
Tested on MacOS Sequoia (Apple Silicon) with the
latest Xcode command line tools, gcc 14
(Homebrew GCC 14.2.0_1) and sdl2 (Homebrew 2.30.9)
Make sure 'gcc' (and 'gcc-ar') is in your PATH
ahead of the Xcode-provided "gcc"(clang). E.g.
by setting up symlinks in /usr/local/bin that
point to gcc-14 and gcc-ar-14.
Notes:
- The appropriate bmp from uisimulator/bitmaps
has to be manually copied to your build folder
and renamed to UI256.bmp, if you want the sim
background to be displayed
Change-Id: I559f33d2165065f913f30c016b85906af380fb81
since we now have the length of tag names thru the param_pos var
we can simplify the find tag function to skip if the length doesn't match
this allows us to no longer make a string copy in order to terminate
the buffer
move some of the more frequently encountered tags to the top of the
lookup list
only SKIN_TOKEN_UNKNOWN position matters as its empty string is used
as the sentinel
Change-Id: Ib82d081a9ebedc228768845ae54a3d9466faaef1
This reverts commit 4ec34f6986.
Reason for revert:
-fshort-enums makes them smaller if the explicitrly enumerated values will fit in a smaller type
Change-Id: I834dfd2b2039eda91bc02c9cf95a0f9dfc5783f6
IMPORTANT: There is no guarantee this will compile cleanly much less
_work_ on any given target. This is purely to enable future hackery.
Change-Id: Ib58f21b717719fd4325622b446a60779406ae035
skin_tags have name and sometimes valid parameters
storing a pointer results in a lot of wasted space
instead record size of name and write the parameter string just after
Change-Id: Ied32f9e820deec9092dc6b97a93e2660d7abc8b2
This is a preparation to introduce support for the following SoC models: S5L8720 (iPod Nano 4G, iPod Touch 2G), S5L8730 (iPod Nano 5G), S5L8723 (iPod Nano 6G) and S5L8740 (iPod Nano 7G)
The whole family consists of SoCs which are similar, running ARMv6 and Thumb2 instructions, but some peripherals are located at a different address.
No functional change is to be expected so far.
Change-Id: If1f7669c49cf110ccc52c5234cc42ffd6f2b4e80
Increase buffer size by 368 bytes by using id3v1buf.
Limit tag size only if metadata fails to fit without limitation.
Change-Id: I82d551ac75c2e8fcb9ff0ef318445e0e6a1f8148
We can't assume that album art file starts right after album art type (apparently it can contain also additional info like filename).
Related to FS#12576 (album art is now shown)
Change-Id: I68c7a1dc536ff13a47fb73ea84539b2f7a44265b
This is actually the root fix for the crash; the fix in
772eff8ca6 didn't restrict it to 2 channels, just sanity
checked the file vs MAX_CHANNELS.
Change-Id: If5a0a9b946a179ad47d6e7955f7c025de3aaaa0e
It's not clear that we've ever intended to support >2ch files, based on
'#define MAX_CHANNELS 2' and other logic that only seems to care about
mono vs not.
Change-Id: I15e92fb29cceef32e63fc3a821f6e96bbde930b6
Due to a typo, only the high byte of the embedded load address was
checked to be empty. For a full check, high and low byte must be
evaluated, of course. Also, fixed in cRSID 1.3.
Change-Id: Ib0b701622b006ab4bb1791f07bf17b3b06a70719
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
Was accidently disabled in 14c6bb798d
(in January 2019)
(Had to make a minor change due argument differences)
Change-Id: If7c128cdeaa9ed82b2b33de1b75ca7cc4a95abdd
Not sure this is a great idea from disk and battery standpoint
but there is no reason you can't..
using the name buffer to fill title data
prevent hitting the disk for each screen scroll
add get_metadata_ex to allow flags
METADATA_EXCLUDE_ID3_PATH
prevent copying the filename to the ID3 struct
METADATA_CLOSE_FD_ON_EXIT
instead of seeking to the beginning the file is closed before
get_metadata returns
add logic to allow a invalid fd to signal that get_metadata
should open and close the file within its call
bugfix per Chris_s don't use the tagcache for the trackinfo
Change-Id: Ic7a595b39a8d7a57f975312bc9c8bb4111f22a88
* Only codecs and plugins are enabled
* Only native builds (so far)
* Only tested on xDuoo X3 (MIPS, monochrome)
* opus & speex generate some warnings
* Significant compile time impact
Change-Id: I519b0d179631a54b2103cd67225bd5ec6ad3bd2f