Commit graph

3962 commits

Author SHA1 Message Date
Bertrik Sikken
afc96087f8 New crossfeed algorithm for Rockbox: "Meier" crossfeed
Emulates the basic "Meier" crossfeed (2 capacitors, 3 resistors)
as discussed in
http://www.meier-audio.homepage.t-online.de/passivefilter.htm

This crossfeed blends a bit of low-pass filtered L signal into
the R signal (and vice versa) while adding about 300 us delay
to the crossfed-signal. A difference with the crossfeed already
present in rockbox, is that this algorithm keeps the total
spectrum flat (the one currently in rockbox accentuates
low-frequency signals, making it sound a bit muffled).

This implementation is quite lightweight, just 3 multiplies per
left-right pair of samples. Has a default C implementation and
optimized assembly versions for ARM and Coldfire.

The crossfeed effect is quite subtle and is noticeable mostly
one albums that have very strong left-right separation (e.g.
one instrument only on the left, another only on the right).

In the user interface, the new crossfeed option appears as
"Meier" and is not configureable. The existing crossfeed is
renamed to "Custom" as it allows itself to be customised.

There is no entry for the user manual yet.

Change-Id: Iaa100616fe0fcd7e16f08cdb9a7f41501973eee1
2012-05-28 11:34:15 +02:00
Thomas Martitz
d523fd6e64 load_code/overlay: Don't close plugin handle before calling the plugin.
Doesnt fix an actual bug because closing a handle is a no-op on all
native targets and others dont use overlay.

Change-Id: Ie55e3fd4abd08b174d86ca25aed54a970dddbebd
2012-05-26 22:57:21 +02:00
Bertrik Sikken
d01a182e65 Creative Zen x-fi: fix battery bench plugin
Change-Id: Iaab6353b94cc4462b5953a9fbec315d2e19f47b3
2012-05-20 17:06:14 +02:00
Frank Gevaerts
9db0cf0f93 Fix typo in error message
Change-Id: I69c87fac21b034b639fbce4324397b273d66d41b
2012-05-19 18:53:17 +02:00
Amaury Pouly
12c64a4b79 Initial commit for the Creative ZEN X-Fi2 and X-Fi3 ports
These are really similar devices so one commit for both is ok.

Change-Id: I8bd1d3fef1eb6d00aaadfb7af56c771f62d0c9c3
2012-05-19 16:10:52 +02:00
Bertrik Sikken
4a6b875eda Make lbitlib.c include its own header (for the luaopen_bit prototype)
Change-Id: I6da9d6ff084b89c519f1abfc50ba3375a7d0f958
2012-05-19 01:19:20 +02:00
Nils Wallménius
d29a11b7a8 Rename HAVE_PITCHSCREEN to HAVE_PITCHCONTROL
Also move the definition to config.h

Change-Id: I36bb5020c5e06b2344292bc05e8c13ccc7a6a1ff
Reviewed-on: http://gerrit.rockbox.org/234
Reviewed-by: Nils Wallménius <nils@rockbox.org>
2012-05-09 14:32:38 +02:00
Nils Wallménius
7803f31c53 Don't reinvent ctype.h functions
Remove ctype.h functions in text_editor and rockboy,
fix #define name clash in mpegplayer.

Change-Id: Icb40cf45e27b793c62cb095197757a27f508f344
2012-05-07 18:43:12 +02: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
Wieland Hoffmann
84355f3493 brickmania: Disable resuming after game over 2012-04-30 12:06:05 +02: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
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
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
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
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
6ee3fc81d9 hm801: Add support for plugins.
Change-Id: I81654db87d38324d8680a56bcdb7e9922ee5b619
2012-04-19 17:31:13 +04:00
Andrew Ryabinin
397863ab3d hm60x: Add support for plugins.
Change-Id: I4cad0881c8249f163680a280f70d1a0b36248da8
2012-04-19 17:31:13 +04:00
Bertrik Sikken
c26ab37aca mikmod plugin: make functions static when possible
Change-Id: Ic0102071318c55c19952029be6998ecf5f33eb98
2012-04-14 17:31:14 +02:00
Bertrik Sikken
cf1e54b21e superdom plugin: make functions/variables static where possible
Change-Id: Ibe0d8daacd9b7b9da506b3efe46092b9433d52ef
2012-04-14 17:19:02 +02:00
Dominik Riebeling
b7bc240489 Use two lined display in properties.
Depending on the length of the values to display having both entry title and
value in the same line can be hard to read if the display isn't wide enough.
Similar to the metadata view use two lines for each entry.

Change-Id: I9a2dfe78e02b0460add1681115b0c4781d74af17
2012-04-09 18:56:08 +02:00
Thomas Martitz
4b56ee048a Refactor and unify objcopy calls in the build system. Also now properly handles DEBUG builds on hosted targets to keep debug symbols if necessary.
Change-Id: I884031b79c6d49479e4d95752f35ced68872dd5d
2012-04-04 21:48:19 +02:00
Thomas Martitz
c56950ea3a tlsf: move to /lib (it's also used by plugins).
Change-Id: I5e37b28c1ce4608d60b036343f280af3311ad490
2012-03-28 23:02:39 +02:00
Thomas Martitz
d26bbb9cfb (Hopefully) fix overlay plugins.
Change-Id: I210db2109493d296dcc644d643e8814862101652
2012-03-26 23:41:38 +02:00
Thomas Martitz
f269aa0060 build system: unify/simplify library handling a bit.
libs in $ROOT/lib now add to $(CORE_LIBS) and $(EXTRA_LIBS) and are
automatically linked by the core and codecs/plugins respectively.

Change-Id: Iff482c792a8c8142718f6a16a450c6e2f1497c9a
2012-03-26 22:27:40 +02:00
Marcin Bukat
b0df323391 Don't hardcode cpu frequency in test_codec
Change-Id: Idcd7b024edb7a550b42b935fadfb3d869bab14c6
2012-03-22 18:41:05 +01:00
Marcin Bukat
313034df29 revert changes in test_disk.c introduced by accident in r30459
Change-Id: Ib133070e8f307be7d54b422c37a33ddac67ec639
2012-03-22 18:37:55 +01:00
Nick Peskett
be10817e1c Option to constrain get_next_dir() to directories below global_settings.start_directory.
When enabled, if the user has set "Start File Browser Here" (config.cfg:
start directory) to anything other than root and "Auto-Change Directory"
is set to "Yes" or "Random", the directory returned when an auto change
is required will be constrained to the value of "start directory" or below.

Change-Id: Iaab773868c4cab5a54f6ae67bdb22e84642a9e4b
Reviewed-on: http://gerrit.rockbox.org/182
Reviewed-by: Nick Peskett <rockbox@peskett.co.uk>
Tested-by: Nick Peskett <rockbox@peskett.co.uk>
2012-03-19 11:49:55 +01:00
Sean Bartell
b5716df4cb Build librbcodec with DSP and metadata.
All associated files are moved to /lib/rbcodec.

Change-Id: I572ddd2b8a996aae1e98c081d06b1ed356dce222
2012-03-18 12:00:39 +01:00
Jean-Louis Biasini
dcc78cb867 Fuze+/calendar's plugin update keymaps and manual
- fuze+ keymaps for calculator updated
- manual updated accordingly
- also correct a little problem with a line only used by mpio hd300
manual but that appears on all other target's manual.

Change-Id: I9c4d3c21dc6174079edbde8035bad318e09ec74a
Reviewed-on: http://gerrit.rockbox.org/125
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-03-15 11:31:19 +01:00
Michael Sevakis
d18a5cad7f Tweak paramters of mp3_play_data and callback.
Use generic void * and size_t and make mp3_play_data and its callback
agree on types. Use mp3_play_callback_t instead of prototyping
right in the function call (so it's not so messy to look at). Change
doesn't appear to require plugin API version increment.

Change-Id: Idcab2740ee316a2beb6e0a87b8f4934d9d6b3dd8
2012-03-04 14:50:47 -05:00
Jean-Louis Biasini
db856890df test_X plugins PLA integration
1) change all keymaps to PLA
2) add alternative exit keymaps

Change-Id: I5cb8b1fcc515d2b6f9934482e72b80767b2c2fb0
Reviewed-on: http://gerrit.rockbox.org/158
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 19:55:51 +01:00
Thomas Martitz
8eb36cfe85 matrix: shorten statement.
Change-Id: I08ac097cab4c2378a4e042b47934ef5870df003d
2012-03-03 16:45:59 +01:00
Jean-Louis Biasini
36c84f9a90 Plugin Matrix PLA integration (code)
This commit changes:
1) replace all keymaps with PLA ones and remove all
now useless precompiler instruction.
2) add an alternative exit button (PLA_EXIT or PLA_CANCEL)
3) add the possibility to change values repeatily by holding key
pressed.
note: no manual for matrix yet

Change-Id: Id3ace2863dd407dd5e5ab9b7b5b460c88bb007ad
Reviewed-on: http://gerrit.rockbox.org/128
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 16:42:13 +01:00
Jean-Louis Biasini
693af46f6d Plugin mosaique PLA integration (code + manual)
This commit change:
1) replace all keymaps with PLA ones.
2) add an alternative exit button (PLA_EXIT or PLA_CANCEL)
3) do the required change to the manual in order to match
code's changes.
4) add a missing key in the manual and show them in a table

Change-Id: Ie983c7673c9dec1a9daeb34f5edaaa3c8be7dd5e
Reviewed-on: http://gerrit.rockbox.org/129
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 16:37:47 +01:00
Michael Sevakis
d05db0a90c Correct actionable offense for misappropriation of action context.
Just use a bool to indicate raw button instead of action code. No
bother with plugin version yet again so soon.

Change-Id: I4aa075c0c1fb5308c9d49bebb30ac76f671b2335
2012-03-03 07:52:13 -05:00
Michael Sevakis
f688710707 Change keyclick_click so that it may accept raw buttons or actions.
Adds a new context, CONTEXT_RAWBUTTON, that I hope is out of the way
of everything. Unfortunately have to increment min plugin API version
for the second time today to accomodate additional parameter.

Change-Id: Iaa46b926e57cf377fd4906f2d42bb98e87215033
2012-03-03 07:10:56 -05:00
Jean-Louis Biasini
a92696d40d Plugin Starfield PLA integration (code + manual)
This commit changes:
1) replace all keymaps with PLA ones.
2) do the required changes to the manual in order to match
code's changes.
3) add an alternative exit button (PLA_EXIT or PLA_CANCEL)

Change-Id: I0cea909dd2ff44b8c5a2daba11c192965c4a02c7
Reviewed-on: http://gerrit.rockbox.org/131
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 12:10:53 +01:00
Jean-Louis Biasini
10c566ed94 Plugin logo PLA integration (code + manual)
This commit changes:
1) replace all keymaps with PLA ones.
2) do the required change to the manual in order to match
code's changes.
3) add an alternative exit button (PLA_EXIT or PLA_CANCEL)
4) add the possibility to change values repeatily by holding key
pressed.

Change-Id: Ie68fd4e94830bba8a592941ee4e8b10aeacda923
Reviewed-on: http://gerrit.rockbox.org/127
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 12:05:58 +01:00
Jean-Louis Biasini
f1e1ab8d41 Plugin snow PLA integration (code + manual)
this commit changes:
1) replace all keymaps with PLA ones.
2) do the required change to the manual in order to match
code's changes.
3) add an alternative exit button (PLA_EXIT or PLA_CANCEL)

Change-Id: I8a064b98c118e369f8464de5e43c7641d8a08e9e
Reviewed-on: http://gerrit.rockbox.org/130
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-03-03 10:48:22 +01:00
Michael Sevakis
286a4c5caa Revise the PCM callback system after adding multichannel audio.
Additional status callback is added to pcm_play/rec_data instead of
using a special function to set it. Status includes DMA error
reporting to the status callback. Playback and recording callback
become more alike except playback uses "const void **addr" (because
the data should not be altered) and recording  uses "void **addr".
"const" is put in place throughout where appropriate.

Most changes are fairly trivial. One that should be checked in
particular because it isn't so much is telechips, if anyone cares to
bother. PP5002 is not so trivial either but that tested as working.

Change-Id: I4928d69b3b3be7fb93e259f81635232df9bd1df2
Reviewed-on: http://gerrit.rockbox.org/166
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
2012-03-03 07:23:38 +01:00
Dimitar Dimitrov
3f82f3aca1 Sansa Clip Zip: Bubble now shows a proper background image
Change-Id: If595378d58a4602bdc6b101c062c6974f6debf62
Reviewed-on: http://gerrit.rockbox.org/167
Reviewed-by: Dimitar Dimitrov <mitakas@gmail.com>
Tested-by: Dimitar Dimitrov <mitakas@gmail.com>
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Reviewed-by: Rafaël Carré <rafael.carre@gmail.com>
2012-03-03 02:54:26 +01:00
Jean-Louis Biasini
5bfbc64151 Fuze+: All games plugins keymaps
revert all games plugins keymaps that had mysteriouly disapeared

Change-Id: I648ea4c13ddacc49995254fbb79a0dbb75b2fcbc
Reviewed-on: http://gerrit.rockbox.org/160
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-03-02 11:40:02 +01:00
Thomas Martitz
3a4f8cd5d7 fireworks: ues PLA_EXIT to exit without going through the menu.
Change-Id: I0902ce839b7eab4c7e1311ef797f19f91ebc582a
2012-02-24 15:06:18 +01:00
Jean-Louis Biasini
a60bc256ab fireworks's plugin PLA integration
1) this patch replace all keymaps with PLA ones. It also clean some optionnal
compiling that are not needed anymore througt PLA
2) it also add an alternative exit button (PLA_EXIT or PLA_CANCEL)

Note: no patch for manual here as there isn't a manual for fireworks yet

Change-Id: I460096a018ce8d3890425f8b6b98194c4e3f9d76
Reviewed-on: http://gerrit.rockbox.org/114
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-02-24 13:20:24 +01:00
Jean-Louis Biasini
7c215b1be8 bounce's plugin PLA integration (main code + manual)
1) this patch replace all keymaps with PLA ones.

2) the patch also do the required change to the manual in order to match
code's changes.

3) it also add an alternative exit button (PLA_EXIT or PLA_CANCEL)

4) Also cut out the remote control related mapping as PLA handle remote controls
his own way so that we don't need them anymore

5) change scrollwheel mapping in order to have it controlling the value of selected field unstead of field selection

Change-Id: I023122d45a8337fad1e8ed8be12d4c928bdd1292
Reviewed-on: http://gerrit.rockbox.org/106
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Tested-by: Thomas Martitz <kugel@rockbox.org>
2012-02-24 13:11:51 +01:00
Jean-Louis Biasini
d8fd988cf2 stats's plugin PLA integration (main code + manual)
1) this patch replace all keymaps with PLA ones. It also clean some optionnal
 compiling that are not needed anymore througt PLA

2) the patch also made required change to the manual in order to match code's
 change.

3) it also add an alternative exit button (PLA_EXIT or  PLA_CANCEL)

TO TEST:
I'm not sure if remote control works anymore and cannot test it. I'm not
sure about the way PLA handle those so if that doesn't work let me know ;)

Change-Id: I3fb81e75ef6e4d49e19be24f09c0413599ed0c9c
Reviewed-on: http://gerrit.rockbox.org/90
Tested-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
2012-02-22 09:15:50 +01:00
Nathan Korth
bf4edb3614 Fixed clock bitmaps for Sansa Clip Zip (96x96x16)
clock_binary, clock_logo, and clock_messages are new; the rest are
provided by 132x80 and 128x128, which already had the correct sizes

Change-Id: Ib34b605705b8a21a784faea8adc9ec448dfa7457
Reviewed-on: http://gerrit.rockbox.org/110
Reviewed-by: Bertrik Sikken <bertrik@sikken.nl>
Tested-by: Bertrik Sikken <bertrik@sikken.nl>
2012-02-21 20:59:17 +01:00
Jean-Louis Biasini
d5bd4ec682 Fuze+: fractals's plugin keymaps reworks
1) Multitouch does not work on Fuze+. Unstead we can take advantage of
bottomleft and bottomright button.

2) Manual completed accordingly

Change-Id: I9535865773a2d1e21b1a71af63e4d377abcbc752
Reviewed-on: http://gerrit.rockbox.org/115
Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>
2012-02-21 18:08:08 +01:00