Creates a standard buffer passing, local data passing and messaging
system for processing stages. Stages can be moved to their own source
files to reduce clutter and ease assimilation of new ones. dsp.c
becomes dsp_core.c which supports an engine and framework for effects.
Formats and change notifications are passed along with the buffer so
that they arrive at the correct time at each stage in the chain
regardless of the internal delays of a particular one.
Removes restrictions on the number of samples that can be processed at
a time and it pays attention to destination buffer size restrictions
without having to limit input count, which also allows pcmbuf to
remain fuller and safely set its own buffer limits as it sees fit.
There is no longer a need to query input/output counts given a certain
number of input samples; just give it the sizes of the source and
destination buffers.
Works in harmony with stages that are not deterministic in terms of
sample input/output ratio (like both resamplers but most notably
the timestretch). As a result it fixes quirks with timestretch hanging
up with certain settings and it now operates properly throughout its
full settings range.
Change-Id: Ib206ec78f6f6c79259c5af9009fe021d68be9734
Reviewed-on: http://gerrit.rockbox.org/200
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
Player-specific code remaining: usb_drv_(init,exit)
The iPods lack a MMU, so:
- physical, virtual, and uncached addresses are identical
- since we can't access uncached memory we discard caches when receiving data
Still not quite reliable on nano2g
Change-Id: Iebb79df64818b9ae3b68eccb8be8975ebd6c21ea
When setting up qmake to use ccache keep using the compiler as defined in the
qmakespec instead of assuming it always to be gcc / g++.
Change-Id: I00ce32158ca4a5d67517347cae2e86b77051b3c9
ipod2c is identical to bin2c except it skipping the header of the input files.
Add this behaviour as option to bin2c to be able of using bin2c instead of
ipod2c.
Change-Id: I71afcaca6f2f6b0fce4c6aa3dff6be5bb205f384
This function has been changed to rbcodec_format_is_atomic, which
doesn't require an enum from the kernel.
Change-Id: I1d537605087fe130a9b545509d7b8a340806dbf2
Reviewed-on: http://gerrit.rockbox.org/141
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
BSD sed doesn't handle \n the way GNU sed does, and in this case the
substitution is trivially done using tr anyway, so use tr.
Change-Id: Iedb459d871ae6758d76352225e91dd4dc4717a53
dsp_set_eq_coefs now has parameters for the band settings, so it doesn't
need to access global_settings.
Change-Id: I29ac19fc353b15a79cb25f0e45132aef0881e4c9
Reviewed-on: http://gerrit.rockbox.org/138
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Better than inserting ".word 0x51fc/b". Assembler doesn't support
them but does the plain "tpf" without extension words as well as
"trapf".
Change-Id: I929c0ec84c6e76e0573ff6308634542fd8aee738
Differences between signed samples cover the entire unsigned 32-bit
range. "abs" will think any difference exceeding INT32_MAX is negative
which is not corrent. Test which argument is greater and subtract the
lesser from it, outputting unsigned difference.
Change-Id: I73a8e5e418d49ff73d1a7c98eeb4731946dcfe84
On big-endian architecture, DSP output must be coverted to little-
endian first. DSP output is also always interleaved stereo, 16 bit,
NATIVE_FREQUENCY and wavinfo should be correct for this.
Also, use standard clip_sample_16 already available.
Change-Id: Ifa7b9fc77f0573070c7e79f059dc3000c437c42e
As for BootloaderInstallFile check if copying the bootloader file to the player
did actually work or if an already present file caused the copy operation to
fail.
Change-Id: I2e889610b4cb9f57f73cffc473c6230be0d11e24
QFile::copy() doesn't overwrite an already existing file. This can lead to
bootloader installation trying to place a new file on the player but failing to
do the actual copy if the file already exists. Since overwriting an already
existing file might be unexpected by the user error out in this case and notify
the user.
Change-Id: I5ffaf2f1344271ea2bad9e3232234826552385ec
Some language files have the < and > characters the original string (like "<All
tracks>") has included in the voice strings. These characters cause the
generated wave file to not contain any samples with SAPI, causing an error when
Rockbox Utility tries to encode the file.
Since those characters don't make much sense in the voice string remove them
prior to speaking. Currently affected languages are basque, chinese-simp, and
russian, for which this fixes voicefile creation.
Change-Id: Iac7ccd7921ccfb5ddc33645239a1f8f7e639e5aa
Fixes "invalid mountpoint" errors that could happen if the preselected
mountpoint was never changed and no previous configuration available.
Change-Id: Ief5f1b7a0b24267a03028f5d402e8763a5a3fc70
The parser was unconditionally scanning things which it thought
were conditional/enum lists (or tag arg lists) when they couldn't
possibly be (i.e < inside a param which should be valid).
This change fixes it (i.e %?and(%if(%pv, <, -50), %if(%mp, >i, 1))
is perfectly valid now.
This *may* break your exsiting skins if you were using %if with < or >
Change-Id: Ia24dbdf0b11fc7d8a735c1111d648c3bebd68ac6