Commit graph

30614 commits

Author SHA1 Message Date
Michael Sevakis
c9bcbe202d Fundamentally rewrite much of the audio DSP.
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>
2012-04-29 10:00:56 +02:00
Rafaël Carré
c9c1349773 usb-s3c6400: merge the 2 drivers
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
2012-04-28 16:01:57 -04:00
Dominik Riebeling
c1a71ab9ae Fix a typo and remove line splicing.
Change-Id: Ifce9224e352b2a3efef92aff4bbdde9fc8714587
2012-04-28 21:46:33 +02:00
Dominik Riebeling
8bdecac0b0 Don't assume the compiler to be gcc / g++.
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
2012-04-28 16:49:09 +02:00
Dominik Riebeling
bdb00fa1fb Remove useless operation.
Change-Id: I378be5202d96cf6b44fb448cb7e620465ff36961
2012-04-28 16:49:08 +02:00
Dominik Riebeling
8a3824f36a ipodpatcher: replace ipod2c with bin2c.
Change-Id: I3b339e05c9a5f4a8a60bd7581ec402b4784542e2
2012-04-28 12:06:55 +02:00
Dominik Riebeling
308f099874 Move bin2c handling to libtools.make
Change-Id: I60353bb9f9fd2658d66ba7f352e04f7489c7bf5d
2012-04-28 12:05:50 +02:00
Dominik Riebeling
b4424ca2f3 Add "ipod" mode to bin2c.
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
2012-04-28 12:05:11 +02:00
Sean Bartell
fe3d58004c rbcodec refactoring: get_audio_base_data_type
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>
2012-04-28 09:07:40 +02:00
Frank Gevaerts
b794cbbdca Replace a \n-using sed expression with a more compatible tr
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
2012-04-28 00:55:07 +02:00
Michael Sevakis
0048e5b8ce Some whitespace correction in dsp_*.S
Change-Id: I6ee14c0adc9dd456c8a2d171952cbaedb3752428
2012-04-27 16:55:16 -04:00
Michael Sevakis
fdd363481f Fix up some more type stuff in pcmbuf.c.
(Never seem to find it all at once :-)

Change-Id: I4b3d145c6d90be13f9afc8a72d8d87a92de88d88
2012-04-27 16:51:54 -04:00
Sean Bartell
a6dea9e13d rbcodec refactoring: dsp_set_eq_coefs
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>
2012-04-27 16:33:27 +02:00
Marcin Bukat
79a667d3e2 rk27xx: Add failsafe mode to the bootloader
Change-Id: Iba8fdc50b3c71831a6f55d15779fee8d1f12cb4f
2012-04-27 16:19:42 +02:00
Marcin Bukat
2bafdae6b1 rk27xx: Do not turn off clocks in bootloader as this breaks OF loading
Change-Id: I8e2fb06e82f33c3cf841a125c13e56401c58b12d
2012-04-27 16:19:42 +02:00
Michael Sevakis
0842d7f7e1 Consolidate compressor settings into a struct.
Doing that makes things cleaner for later on.

Change-Id: I4e279aa57ace16a348acc0fc09059592325ec95f
2012-04-26 17:19:16 -04:00
Michael Sevakis
97a535d83c Oops, Shoulda been "int16_t" not "uint16_t".
Change-Id: Ic2a54e9f283acb1c362857a3f1422ed3c532249f
2012-04-26 16:24:12 -04:00
Michael Sevakis
3c391ad51b Coldfire (m68k): Add macros for tpf.w/l instructions.
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
2012-04-26 16:04:44 -04:00
Michael Sevakis
cfc32fe75f Adjust some typing in voice_thread.c. Constants are also counts, not sizes.
Change-Id: I05700f6c87c775e98f05323d2ab0550fad8befd7
2012-04-26 16:04:44 -04:00
Michael Sevakis
e5c3327cef Add a more correct absolute difference function to dsp-util.
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
2012-04-26 16:04:43 -04:00
Michael Sevakis
2866063c3c Add a NO_INLINE attribute to gcc_extensions.
Will want later.

Change-Id: Ia1509e17f2346374305146ee98546c72f2f8a1ed
2012-04-26 16:04:43 -04:00
Michael Sevakis
c51fe40a7d test_codec: Fix some problems with writing WAV with DSP
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
2012-04-26 16:04:43 -04:00
Michael Sevakis
263955e3f0 MPEGPlayer: Fixup typecasting for PCM buffer a bit.
Change-Id: I96cca97c1effe5fe2cf84271b123928ebe38e2a7
2012-04-26 16:04:42 -04:00
Dominik Riebeling
7f9bb7b823 MI4 bootloader: check for copy result.
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
2012-04-26 22:01:33 +02:00
Dominik Riebeling
b623b97d40 Check for bootloader file on device before copying.
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
2012-04-26 21:19:56 +02:00
Dominik Riebeling
07798ae526 Add missing basque and english-us languages.
Change-Id: I99767adb9231b25092bee976921a42a8e309599b
2012-04-26 21:19:56 +02:00
Dominik Riebeling
51f1fcbe26 Voicefile: remove < and > from voice strings before speaking.
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
2012-04-26 21:19:56 +02:00
Andrew Ryabinin
ab01d5d8c2 Fix red.
Change-Id: I4e132dfd8c4821715e123decbfb6b130903d6d4a
2012-04-26 14:32:06 +04:00
Andrew Ryabinin
56e406d9b6 hm60x/hm801: Increase backlight frequency. This will remove background hiss.
Change-Id: I3b51dc5592c069745a62f21f6f9004c79a1f3985
Reviewed-on: http://gerrit.rockbox.org/225
Tested-by: Andrew Ryabinin <ryabinin.a.a@gmail.com>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2012-04-26 12:25:37 +02:00
Sean Bartell
f40bfc9267 Add codecs to librbcodec.
Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97
Reviewed-on: http://gerrit.rockbox.org/137
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
2012-04-25 22:13:20 +02:00
Amaury Pouly
a0009907de imxtools: fix missing '\n'
Change-Id: I93630f5c303064deb5880421202425046aa3074f
2012-04-25 13:36:38 +02:00
Amaury Pouly
b9f9d0da51 imxtools: fix missing '\n'
Change-Id: I8d6a70e644225211b35e7b160bdf06e12c611198
2012-04-25 13:36:38 +02:00
Dominik Riebeling
fa6563b7b8 Refresh mountpoint from UI before checking for existence.
Fixes "invalid mountpoint" errors that could happen if the preselected
mountpoint was never changed and no previous configuration available.

Change-Id: Ief5f1b7a0b24267a03028f5d402e8763a5a3fc70
2012-04-24 23:02:24 +02:00
Dominik Riebeling
885db72b8b gitscraper: support Python3.
Make gitscraper and tarball script work with both Python 2 and Python 3. Tested
with 2.7 and 3.2.

Change-Id: I31b2580660d764d013bca6fe59d5663ae9f7f5aa
2012-04-22 21:34:01 +02:00
Bertrik Sikken
0ca7b83595 cook: fix incorrect memset size argument
Change-Id: I927380cd789c1a86ac2d4d6af667c6f39cf933d9
2012-04-22 16:21:12 +02:00
Bertrik Sikken
f3211e6461 libgme: fix incorrect memset size argument
Change-Id: If663b3881cedaefd837a06e3f60e4d28938c2295
2012-04-22 16:20:51 +02:00
Bertrik Sikken
7901aa6f19 Simplify warning suppression for unused argument
Change-Id: If8d6e3669dca3ba8351e949ef901809e87f94366
2012-04-22 16:20:31 +02:00
Jonathan Gordon
705e7fe5e9 event classes are single bits
Change-Id: I4c65b25a94b60d4f0ef8db750807a91242d63ea3
2012-04-22 22:41:50 +10:00
Marty Miller
84f7f60b8f Fix Rockblox plugin display issues on Clip Zip
Added Rockblox background, layout and detection for 96x96x16 displays

Change-Id: I4585d5e679851b5696542269fe2123cf7df200de
2012-04-22 12:33:12 +02:00
Andrew Ryabinin
1060d30bdd hm60x: Fix charger detection.
Change-Id: Icde96e90303a9b6f3d399f3c25f24cc0b7d8576b
2012-04-22 00:00:24 +04:00
Jonathan Gordon
2d3c43dffe skin_engine: rework the parser to be closer to the langauge grammar.
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
2012-04-22 00:24:16 +10:00
Björn Stenberg
2315a23c04 Missed a comma. 2012-04-20 15:23:49 +02:00
Andrew Ryabinin
0e19067624 Add rockchip targets to builds.pm.
Change-Id: I9c0e51b865aac0f47b66a8291af9846dcdc1fa2a
Reviewed-on: http://gerrit.rockbox.org/221
Reviewed-by: Björn Stenberg <bjorn@haxx.se>
2012-04-20 15:19:09 +02:00
Andrew Ryabinin
6d73d6efc6 rk27generic: Disable plugins.
Change-Id: I86b289501ef654393c2987129f7d7f57411fcc3d
2012-04-20 17:09:12 +04:00
Andrew Ryabinin
f5559042f1 rk27xx: Fix warnings.
Change-Id: I05e3b946b921592bc17eff5ca705bfc1e71b2f0f
2012-04-20 13:20:07 +04:00
Andrew Ryabinin
fe5f9e0619 Fix typo.
Change-Id: Ib9bd947ac71370e11e7e3d67dbc5f16da0b15ae3
2012-04-20 13:11:43 +04:00
Andrew Ryabinin
220f9385da rk27xx: Remove debug use of timer1 in sd driver.
Change-Id: I720426de3c66c10273fff5f3a01ef6b692218a29
2012-04-20 13:04:51 +04:00
Andrew Ryabinin
95a333b57d hm801: Update keymaps.
Change-Id: Ie1ecf4bcffd59493f6c8c0031a25b34b147984cd
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
17930909ed hm60x: Update keymaps.
Change-Id: I0d4d8c7cc739154e879bb01e1e9efa0f1095f8ce
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
6ee3fc81d9 hm801: Add support for plugins.
Change-Id: I81654db87d38324d8680a56bcdb7e9922ee5b619
2012-04-19 17:31:13 +04:00