Core, codecs and plugins link it separately so this gets rid of SOURCES trickery.
Don't build it for hosted targets.
Change-Id: If15ef90e93cd218a4352ae8e89eea95d3122452f
Using the stack pointer for anything else than pointing to the
current stack can have in very bad effects, especially on hosted
platforms (e.g. when mixed with signals). Remove this at
very slight performance cost.
Signals are by default executed on the user stack, i.e. the stack of
the currently active thread. This has two problems:
1) The stack size of the current stack is likely insufficient (unless
using sigaltstack threads) because our stack sizes are normally
below MINSIGSTKSIZE which is needed to deliver a signal.
2) Some of our asm code does nasty tricks with the stack pointer. When a
signal comes in during this bad things can happen, e.g. random memory
being overwritten or simply a crash.
Using a well defined stack fixes this. This is comparable with the
separate irq stack on native targets.
The debug screen gets un-smoothed battery status via battery_read_info().
The level and runtime that is normally presented to the user needs to be
based on smoothed voltage.
Change-Id: Icb448853973aa1d5832e9094176938cfa12b2e48
Instead of storing the return value and ignoring it use it directly to check if
an error occured. Addresses FS#12542.
Change-Id: I447afa006366acfd1851d5b13cae5f1561050283
Instead of simply assuming the wav file that is supposed to be created by the
TTS engine check if the file actually exists and return an error if not.
Change-Id: I9e4a85a061b44b48931614602683b1dfe7dfce67
The reasons for not using / don't seem to be valid (It can lead to //,
true, but not on any system where // is actually special, and
create_*_filename() handles / fine albeit not perfectly (more //)).
Handling /./ is desirable, but we can't afford to leave all automatic
filename generation broken indefinitely while people discuss possible
approaches.
Change-Id: I6718ea28d7c91e19f7da89f76c8cefd92e12fe5e
Depending on the firmware version the filename is different, so it's necessary
to look for all the possible filenames when searching the file inside the zip.
The player happily accepts any of the filenames, so (as before) the first one
is used. Additional firmware filenames might be necessary for other players as
well.
Change-Id: If78444a8d9b7fe167ce0be1d58407038a4f9052b
Several devices require the original firmware to be able installing the
bootloader. Most vendors distribute the firmware file in zip format. Extend
reading the original firmware file to support reading the file from the zip
directly instead of requiring the user to separately extract it.
Change-Id: Ic4e89053456d8f7d6adc294f6657aceddbc354ba
Pass the threshold value for wavtrim to the TalkGenerator object instead of
using the default value. Makes wavtrim to be actually used.
Furthermore, check the result of the wavtrim call and respect its return value.
As done with the screenshots display an error notice when the main image is
missing. Same is done for the remote image for targets that do have a remote.
\IfFileExists requires to use the full filename, not the stem as
\includegraphics accepts happily, so 36489d9 actually broke the main image for
all players.
Running TTS and encoders with multiple threads is causing problems on Windows
since introduction of the feature (FS#12106, FS#11994). The current
implementation also makes wrong assumptions (having multiple threads talk to
the SAPI script doesn't make it run faster since it's still one thread
responsible for creation).
Completely remove multithreading support for that for now -- a different
implementation is necessary.
Change-Id: Icafa223644efc370a09186ce28ac83c22902e0c0
C99-ify variables to keep them localized
Use sum of absolute differences instead of sum of squared differences for
autocorrelation which should reach the same conclusion and avoid 64-bit
multiplication.
Change-Id: If4f3715a36225420db3b05e9814b81766d04f0f3
duplicate of FS#12433
duplicate of FS#12456
duplicate of FS#12386
duplicate of FS#12342
Signed-off-by: Rafaël Carré <funman@videolan.org>
Change-Id: If69d5fdb3a969d3c2c04df62ce841185f2864326
Mostly for the sake of reducing latency for audio servicing where other service
routines can take a long time to complete, leading to occasional drops of a
few samples, especially in recording, where they are fairly frequent.
One mystery that remains is GPIOA IRQ being interrupted causes strange
undefined instruction exceptions, most easily produced on my Fuze V2 with a
scrollwheel. Making GPIOA the top ISR for now, thus not interruptible, cures it.
SVC mode is used during the actual calls. Hopefully the SVC stack size is
sufficient. Prologue and epilogue code only uses the IRQ stack and is large
enough.
Any routine code that should not be interrupted should disable IRQ itself from
here on in.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31642 a1c6a512-1295-4272-9138-f99709370657