This puts the entire ~26K decoder state structure into IRAM.
(was lost as part of 14c6bb798d, Nov 2019)
Change-Id: Idbf53657e7c0581b4e47247fc5550b59842b23f1
callgrind identified check_viewport and scan_int as pretty hot code paths on startup
and playback
check_viewport uses strlen to check the string has at least 4 characters
we can just check if str[3] != '\0' without walking potentially much further
and no function call..
scan_int was building a buffer for atoi to parse when we can just do it in the loop
directly
Change-Id: Ie028980333cbed4c066d8ea547a89cf4fad76808
Revisit this after discussion with chris_s on IRC and forum
Pitch menu now changes icon when pitch has been changed
uses NVRAM to save the pitch settings unconditionally
Manual updated
Change-Id: Idcb4c2b7fe42f7a203dc4bfc46285657f370d0fd
core_alloc works well for this and we can allow the alloc to be moved
bugfix compressor_process() possible buffer overflow
Change-Id: I701c6306c39cc1c7aa72b0dbe402b9b0d1a3fcda
I meant to add this with the last patch b07d7d6
since it may supply UNBUFFERED_ID3 to the peek function
which uses UNBUFFERED_ID3 and will try to copy it back
wich is undefined behavior for memcpy
Change-Id: I91160570adac22134c84d3b37f8fcecb097d87d6
%ft(filename,search_text)
finds a line beginning with search_text strips search_text and returns
the remainder of the line
Change-Id: I06fe029b89aa60e4dbf34c039d180c75213519a4
On MacOS, gcc is a symlink for clang.
Patch gets rid of the warnings produced by clang,
when it is set as HOSTCC, and fixes voicetools
compilation on MacOS when calling make voicetools
from the simulator directory.
lua rb_defines_helper:
format specifies type 'int' but the argument has
type 'long'
codecs: opus / speex (LOGF):
format '%ld' expects argument of type 'long int',
but argument 7 has type 'off_t'
gigabeat:
variable 'size' set but not used
rdf2binary:
a function declaration without a prototype is
deprecated in all versions of C
rbspeexdec:
passing 'unsigned char *' to parameter of type
'char *' converts between pointers to integer
types where one is of the unique plain 'char'
type and the other is not
hmac-sha1.c
defining a type within 'offsetof' is a Clang
extension
Change-Id: I90539906698868f9589650585d865aee9f7e8539
configure:
Ensure Werror option doesn't get lost when simcc resets GCCOPTS
uisimulator.make:
Remove ignored duplicate SIMLIB on Darwin
codecs.make:
Eliminate some redundancy
Change-Id: Ieee6f677fd22666cb58aa6fe53eabdc0b0f8c190
Comments are converted to UTF-8.
Strings which are part of executable code are converted using C-string hex literals. A comment with the intended UTF-8 character is appended to such lines.
The "c"-looking character in mpa.c was actually a small cyrillic "s" (i.e. "с").
Change-Id: If3a889080ef60b8bf756ad9ada38baede93ce35b
Comments and notes are converted to UTF-8. Already broken multibyte characters are fixed using common sense.
This patch contains no code changes.
Change-Id: Ia511ab84936cb2495ac17309493a9b98727a7902
(L1033 + L1170)
As of commit f3e5ced, tags will be parsed
unconditionally, regardless of whether
they've been filled already.
Change-Id: I7edd4b7131b33dba34f06ebe829ebdc00a138525
calculating inside a function makes it work
adding FORCE_INLINE makes warning reappear
anything else in bounds of the array asounds ok but has digital
distortion so pretty confident the code is right
Change-Id: Ibb2babe20b1d8a980f3e3fd19b4cddaaff9213a6
Data from the iTunes seamless playback data field
(support for which was introduced in f3e5ced)
prevents proper comments from being displayed.
Change-Id: Ifb00b1229e636a79a460ba6d706191fcf28b1502
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