SPC Codec: Add ARMv5 optimized code. Easy peasy.

Why? Why not? Cuts a few MHz.

Change-Id: Ied5c70b1aedd255cbe5d42b7d3028bbe47aad01d
buflib: Remove compulsory IRQ disable during buffer move.

It can cause excessively long interrupt outages if moving a larger
buffer and disrupt audio where DMA is not at a higher interrupt priority
such as FIQ.

Some targets, like Gigabeat S, have very low audio interrupt latency
requirements and will even channel swap if they are missed. Pictureflow
will make the issue very obvious. Even then, moves could take
milliseconds or more depending on the buffer size which is far too long
for any target.

Change-Id: I8e7817213e901da67c36b7eb25d7cb1c1e3ba802
Reviewed-on: http://gerrit.rockbox.org/472
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
Remove dsp_callback because DSP is now library code, not app code.

Yep, nope, not necessary anymore. Just call functions directly.

Change-Id: I21dc35f8d674c2a9c8379b7cebd5613c1f05b5eb
Fix 6e211ab errors and warnings.

If target has HW tone controls but no HW prescaler (non-implemented or
non-existent), audiohw_set_prescaler() should, for now, do nothing.

Change-Id: If1b1a36970dca82fda1c350fbaa4d6ce068a6d32
Fix return address when data_abort_handler skips faulting instruction.

When writing a value to PC, execution continues at that location,
so subtracting 4 returns to the next instruction. Previously, two
instructions after the faulting instruction were being skipped, causing
safe_read functions to return true even if a data abort happened.

Change-Id: I3fd02d54646323ea2050d0504e38f6d22f09c749
Remove data_abort_handler from ARM crt0 files.

This causes data_abort_handler from lib/unwarminder/safe_read.S to be
used instead. It allows unwarminder to avoid data aborts when
displaying the backtrace. A data_abort_handler remains in system-arm.c,
but it is not used because it is declared as a weak symbol.

Change-Id: I832066ed514347fe697e219872e90fbdd937f477
Reviewed-on: http://gerrit.rockbox.org/475
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Boris Gjenero <boris.gjenero@gmail.com>
Add DAC's oversampling filter roll-off selection to sound settings.

Change-Id: I1258ba50dd9308f49d97965562f3a423c9bfb785
df1704: Add filter roll-off selection.

Change-Id: I732ebd3446858b497105cf03fc81e934a749a57b
Merge branch 'master' into lab-android-2012
SPC Codec ARMv5: I didn't have fast gauss quite right.

Fix wrapping hazard which did eventually manifest on the right file.

Change-Id: I996a6efd3181b56fd172b5c3a526c7434f88bbbe
Remove explicit config.h and system.h includes from DSP code.

Replace with rbcodecconfig.h and platform.h includes. Remove now-
unneeded ones as well.

Change-Id: I6111b71e90bf86d9fe272a7916f2d34a5c6dd724
Missed removing a couple unwanted includes in previous commit.

Get those too.

Change-Id: Id2a39afe7a61d6ec0cea38633b94fe1b7122204f
PP Sansa: Use better I2S divider settings for 48kHz.

The previous ones produced some crackling.

Change-Id: I70de901172aba156f58d4b1088d0038b2ed53d49
pcm_record: Track initialization state

It should not access audio hardware and change settings unless it has
been initialized first and given control of it.

Change-Id: I5004602d7caa604ded751f6838b792d1ff24b3fb
Refactor audio thread to run both recording and playback.

Eliminates the pcmrec thread and keeps playback and recording engine
operation mutually-exclusive.

audio_thread.c contains the audio thread which branches to the
correct engine depending upon the request. It also handles the main
audio initialization.

Moves pcm_init into main.c just before dsp_init because I don't want
that one in audio_init in the new file.

(Also makes revision df6e1bc pointless ;)

Change-Id: Ifc1db24404e6d8dd9ac42d9f4dfbc207aa9a26e1
Some corrections after 5857c44.

Playback needs to receive a couple of settings-related messages even
when not playing.

Put the message reply back where it was when loading an encoder for
recording.

Change-Id: I8cc80f46e42a0afd119991d698510e1ebef38ead
Just init audio thread event with Q_NULL instead of SYS_TIMEOUT.

What was I thinking? Anyway, it's a little nicer and it's reserved so
shouldn't end up as a case value anywhere.

Change-Id: If745c24951518608e3f4fc51f7419ef07d7cf2ac
Should use HAVE_RECORDING, not AUDIO_HAVE_RECORDING in playback.c

SIM should work like target, sort of, when recording is initialized.

Change-Id: I12314bb98cec53d574f4b25984ef803b2c038a96
Have voice fire an event when it starts and stops playing.

Further decouples voice_thread.c from other playback areas. Also allows
other audio sources, such as FM radio, to be attenuated when voice is
playing by implementing a callback.

Defined as another playback event rather than a new event class:
PLAYBACK_EVENT_VOICE_PLAYING

Change-Id: I2e3e218be6cd6bebbf39e7883a8c0e4ed42b62bb
Argh, move a comment to the (now) proper location. :)

Change-Id: I13847b99d9aeaa05efa5b22a8e4842f193f01a3c