Commit graph

30908 commits

Author SHA1 Message Date
Michael Sevakis
88aeef9127 Remove pointless IRAM allocation from voice DSP.
It's always used in MONO mode and doesn't need the IRAM sample/
resample buffers and 1280 bytes can be freed.

M5 can now have its PCM mixer downmix buffer in IRAM.

Change-Id: I0af08be5b212b7dfe382bba588a6585eb328a038
2012-05-04 22:00:44 -04:00
Michael Sevakis
dbe5e5f2df rbcodec: Hooks for target specific functions in dsp_process loop
Use them to move tick counting, yielding and coldfire macsr handling
code to a rockbox specific file.

Change-Id: Id7417dc98c08a342eba45ba56b044a276e50564b
Reviewed-on: http://gerrit.rockbox.org/229
Tested-by: Nils Wallménius <nils@rockbox.org>
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-03 23:47:46 +02:00
Nils Wallménius
00cf2ce711 Add include path to checkwps.make to fix build.
Change-Id: I3edddee9422255bf6d944f76c74686a256a8a852
2012-05-03 14:58:44 +02:00
Sean Bartell
cadb3627fc Add rbcodecplatform.h and rbcodecconfig.h.
librbcodec users must provide these two files when the library is built.
rbcodecconfig.h provides configuration #defines and basic types, and
will be included by public librbcodec headers, so it must not conflict
with the user's code. rbcodecplatform.h provides various OS functions,
and will only be included by source files and private headers. This
system is intended to provide maximum flexibility for use on embedded
systems, where no operating system headers are included. Unix systems
can just copy rbcodecconfig-example.h and rbcodecplatform-unix.h with
minimal changes.

Change-Id: I350a2274d173da391fd1ca00c4202e9760d91def
Reviewed-on: http://gerrit.rockbox.org/143
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
2012-05-03 14:49:35 +02:00
Michael Sevakis
5f0cb71361 Silly includes going haywire. Fix the errors/warnings (hopefully).
Change-Id: I7ec2b7e8fe56ad6d65ab757e8667b4951d00ee29
2012-05-02 21:13:42 -04:00
Michael Sevakis
e189b33ff4 Clean up peak calculating code.
Mixer needn't keep peak data around that will never be used. Just
pass pcm_peaks structure to it instead of allocating for every
channel. Plugin API becomes incompatible.

vu_meter digital mode was still using global peak calculation;
switch it to playback channel like the rest.

Remove some accumulated soil peaks inside pcm.c and make it more
generic.

Change-Id: Ib4d268d80b6a9d09915eea1c91eab483c1a2c009
2012-05-02 20:53:07 -04:00
Michael Sevakis
c0208f0f64 Oops, need to init the voice_buf indexes too. :-)
Change-Id: I12e48e9e7d70e779511aac05be6e6145d30f456a
2012-05-02 18:25:34 -04:00
Michael Sevakis
7e3e9b9289 Stop the BDEBUGF format warnings in buflib.c
Change-Id: I63881da2b857cf4e462f7730f9cd54dc1743fc2f
2012-05-02 17:37:10 -04:00
Michael Sevakis
0d568bb6ce Stop lame warnings about braces and empty body of 'if' statement.
Change-Id: I9f0e3d047a91a8f49d5c64f961f8fff054f37099
2012-05-02 17:30:32 -04:00
Michael Sevakis
da6cebb6b0 Use buflib for the allocation of voice PCM resources.
Buffers are not allocated and thread is not created until the first
call where voice is required.

Adds a different callback (sync_callback) to buflib so that other
sorts of synchonization are possible, such as briefly locking-out the
PCM callback for a buffer move. It's sort of a messy addition but it
is needed so voice decoding won't have to be stopped when its buffer
is moved.

Change-Id: I4d4d8c35eed5dd15fb7ee7df9323af3d036e92b3
2012-05-02 17:22:28 -04:00
Andrew Ryabinin
3d3a144cf6 hm801: Tweak keymap.
Change-Id: I5e4f8eeae0f6d6eb836dc75570589e4d5c961a3d
2012-05-02 23:20:31 +04:00
Nils Wallménius
26e5e605d2 Delete unused stub functions.
Change-Id: I886d65b60364699845475e2ea1a741aece506a8f
2012-05-02 10:42:21 +02:00
Jean-Louis Biasini
6637e24aed Update Fuze+ manual (main files) FS#12492
- this patch add all general sections of the manual for the fuze+
     - also correct some typos

Change-Id: Idd28675f48c0d01079d8fa01d68d3238ad2a54ce
Reviewed-on: http://gerrit.rockbox.org/116
Reviewed-by: Dominik Riebeling <Dominik.Riebeling@gmail.com>
2012-05-01 20:19:25 +02:00
Nils Wallménius
45c5b1fe17 Delete autoconf.h file in the warble source, one less headache.
Change-Id: I83c1b523de453c45aa4df3340b9a1aa63bf321ed
2012-05-01 19:10:00 +02:00
Sean Bartell
4bef502d4d rbcodec refactoring: autoresumable
Moved to playback.c, since it doesn't use metadata from the music file.

Change-Id: I5c3ad7750d94b36754f64eb302f96ec163785cb9
Reviewed-on: http://gerrit.rockbox.org/142
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-01 11:28:38 +02:00
Dominik Riebeling
9b363c6ced Bootloader installation: set file filter.
When requesting an original firmware file from the user set the filter for the
file chooser dialog to only show files with matching file extension to simplify
selection. Allow the user to select "all files" in case the file for whatever
reason has the wrong extension.

Change-Id: Ic3643c3601f6d849e6563f8753ae80a168ec0a45
2012-05-01 10:49:48 +02:00
Dominik Riebeling
92ef7bd328 Move bootloader class initialiation into helper.
Create a BootloaderInstallHelper class for handling post installation hints and
creating the installation instance depending on the player model. This removes
the base class handling its derived classes which always has been weird, and
removes the need to change the base class when adding a new installation
method, since the base shouldn't be affected.

Change-Id: I2a156d70fd1cff6c48bdd46d10c33d75c953ea90
2012-05-01 10:49:48 +02:00
Michael Giacomelli
0dd200b33a Fix audio corruption when sequentially playing low bitrate WMA files
for real this time.  Also, use English grammar.

Change-Id: I1f2156afa313280deb02b58a191511699671a761
2012-05-01 02:01:06 -04:00
Michael Sevakis
b4eec0dd42 Make INITDATA_ATTR work on everything that has INIT_ATTR enabled for code.
Change-Id: If9936bfbbd3bc3eb2a3e3e290701b8517eabfb13
2012-05-01 01:28:50 -04:00
Michael Giacomelli
87d3dde15a Fix corrupt when repeatidly playing very low bitrate WMA files.
The LSP feature in WMA requires that the noise table values be
doubled verses when it is not used.  Unfortunately, the previous
code would double the same values every time a LSP file was
decoded without first resetting them to their original values.
Change the code to check if the values are already doubled, and
then double/halve them as needed.  This is still a bit ugly,
in the future consider using the built in rockbox dither instead
of a lookup table.

Fixes playback when skipping back and forth between low and high
bitrate WMA.

Change-Id: I4c393092e4a789bc8f98d74274fe207400b9550e
Reviewed-on: http://gerrit.rockbox.org/226
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Tested-by: Michael Giacomelli <giac2000@hotmail.com>
2012-05-01 05:42:38 +02:00
Michael Sevakis
f5d9a45e3f Should've had dsp_replaygain_set_gains as static for now...
...because currently gains are only set through dsp_configure.

Change-Id: I2866473a82fdd5f41de4705b45928daa7e43f8eb
2012-04-30 17:51:05 -04:00
Michael Sevakis
8f9e3b10a5 Still need settings.h in dsp_misc.c for now for software volume.
Change-Id: I824e8f9935013f6e2a1db6ccd2db4bd406257057
2012-04-30 17:18:26 -04:00
Marcin Bukat
bde57c5df7 rk27xx: ungate all clocks before jumping into rolo'ed code. This should fix booting OF this way
Change-Id: I2c1676227a7218708d9858648c262d5fccb922f7
2012-04-30 23:17:29 +02:00
Michael Sevakis
57a20d2d63 Make DSP's replaygain independent of global_settings.
Moves replaygain definitions to lib/rbcodec/dsp/dsp_misc.h.
Intermediate functions in misc.c handle any adjustment and calling
the rbcodec APIs.

Change-Id: I9f03561bca9aedd13760cf19c4e19aa3c68e7024
Reviewed-on: http://gerrit.rockbox.org/140
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
2012-04-30 22:47:37 +02:00
Dominik Riebeling
a32cbf3346 Only update mountpoint on Accept when empty.
Always updating the mountpoint overwrites a manually entered mountpoint (only
available in debug builds).

Change-Id: I6298cb873496d66f4836f219e89ca8ae17261de9
2012-04-30 22:11:49 +02:00
Rafaël Carré
d7ead706a7 AMSv1: rename USB interrupt handler
Fix FS#12660 (broken in c9c13497)
2012-04-30 14:24:34 -04:00
Andrew Ryabinin
b6f8a01be0 Missing semicolon.
Change-Id: I6b6bfcfdc34662052169ddd1e54369de67438545
2012-04-30 22:18:55 +04:00
Andrew Ryabinin
58dd21daea hm60x: Calibrated discharge curve.
Change-Id: I1f2ba69d37931d9ac62479c0e68f8ba251d30819
2012-04-30 22:09:45 +04:00
Andrew Ryabinin
a3e3791342 rk27xx: Print rockbox version in bootloader.
Change-Id: I7f19f45e85aa09b0b19573053f7f27794196e6fb
2012-04-30 17:54:06 +04:00
Wieland Hoffmann
84355f3493 brickmania: Disable resuming after game over 2012-04-30 12:06:05 +02:00
Michael Sevakis
5f37840e31 Warble must have a call to dsp_init before setting options or using it.
Change-Id: If5cabba99baffe87002d07f11641175f539315a1
2012-04-30 01:55:32 -04:00
Michael Sevakis
ae5656a142 Put the <string.h> channel_mode.c for memcpy.
Hmmm, how'd I miss that?

Change-Id: I30d9a1b5f053aad069687aa0a01ebdf40a6b2d76
2012-04-29 17:44:57 -04:00
Michael Sevakis
56f17c4164 Make rbcodec/dsp includes more specific.
Change-Id: Idb6af40df26f5b8499a40e8b98602261ef227044
2012-04-29 17:31:30 -04:00
Michael Sevakis
23b5f3e5e1 Make compressor_update static.
Change-Id: Ic29242b4c397e82c2bee3808492a2d0a9ffebbe6
2012-04-29 14:47:01 -04:00
Michael Sevakis
4928810354 M5/X5 (MCF5250): Scoot the core/plugin IRAM boundary forward by 0x800.
Change-Id: I482fe3f4f2f59a3f17026e796c245c4efa8279f3
2012-04-29 14:35:53 -04:00
Michael Sevakis
230f6f4326 Lower IRAM footprint on ARM.
Move a few functions to .text that probably don't see a huge benefit
from being .icode. Will scrutinize later.

Change-Id: I7bdffc326076c5cd7e6a1c57d25d31e653920327
2012-04-29 14:10:14 -04:00
Dominik Riebeling
4b256de1ec langstat: update for git.
Use gitscraper for retrieving files from the repository and update output a
bit. Fix some pep8 errors while at it.

Change-Id: Iff05bc916decb28bed99b83d9a32ce344d5c613b
2012-04-29 11:48:07 +02:00
Dominik Riebeling
91cf4a7768 gitscraper: Provide way to get timestamps for files.
When scraping files from the repository allow passing an additional list of
files for which the timestamp of the last change is retrieved. Since this is
slow (the log needs to be traversed, since a blob doesn't know about commits
its referenced by) only specified files get this retrieved.

Change-Id: I61a2ef812ac18ffb5898c01ce070046d4ca00a15
2012-04-29 11:48:07 +02:00
Michael Sevakis
a8b597e620 Database build also needs a /lib/rbcodec/dsp include path.
Change-Id: Id54ac979ce232028a0bdc133e70f6bb9ab1471da
2012-04-29 05:29:35 -04:00
Michael Sevakis
60f4757d41 CheckWPS needs an include patch to /lib/rbcodec/dsp.
Change-Id: I7092be2be4b23137e011b2344d92b40fdcf1517e
2012-04-29 05:19:06 -04:00
Michael Sevakis
3b578f018c Fix 3g warning in dsp_arm.S (which showed as an error).
Change-Id: Iccbeca66e809413dda90fec36439b4a180b8a879
2012-04-29 04:57:57 -04:00
Michael Sevakis
d8f3e3d0d1 Get warble building again.
Change-Id: Ibdb2d9064d0e948cfb745c10a7b23de1a750d55b
2012-04-29 04:41:02 -04:00
Michael Sevakis
7cc8bbdaaf Fix no newline at end warning.
Change-Id: I9edb1ebb34f91893b6290d7640fcdaede3434b40
2012-04-29 04:14:11 -04:00
Michael Sevakis
737e92f4f5 Oops forgot to remove test_codec from plugin SOURCES.
Change-Id: I2730db9430ff688f74a86e6ea8818d0c306aa511
2012-04-29 04:13:10 -04:00
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