Gigabeat S: Improve headphone thread implementation.

Implement scanning as binary tree in array.

Make the ADC calls fewer without compromising read quality.

Declare the thread function as 'noreturn' to save some stack. Reduce
stack size (regardless, % use is now a bit lower).

Change-Id: I239792fd2a0a2c019d1ec4af1d6d4b466cdf0ef5
Oscilloscope: Fix loading of the speed setting for waveform view

Somehow, a long long time ago, I put MAX*/MAX* in the config data range
fields instead of MIN*/MAX* which forced the settings loader to acknowledge
only 100 as a valid setting other than the default.

Change-Id: Ifbfcafad27e239942449848d6a09426173bbde54
Greatly reduce volume-change zipper artifacts with SW volume.

Uses a cosine factor to smoothly shift the PCM level from the old level
to the new one over the length of a frame.

Implements indirect calls to PCM scaling function instead of testing
conditions on every callback, cleanly assigning a different call to
do the volume transition. The volume change call then assigns the final
scaling function.

Change-Id: If1004b92a91c5ca766dd0e4014ec274636e8ed26
Reviewed-on: http://gerrit.rockbox.org/763
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
imx233: add lcdif underflow irq support

Change-Id: Ie3fe223ff40abff38bb9b09f398eb5411fa0be4c
zen: handle lcd underflow by hand

Contrary to the imx233, the stmp37xx lcdif doesn't know how to properly
recover from underflow and things are worse because of the errata which
makes the lcdif not clear the fifo. Workaround this by detecting underflow
and taking action: stop dotclk mode (will clear fifo) and schedule next frame.
The dma transfers now write the ctrl register as part of the PIO writes,
making the code simpler.

Change-Id: I15abc24567f322cd03bf2ef7903094f7f0178427
imx233: fix regulator code on stmp3700

For some reason the power subsystem needs to know the relationship between
the VDD{D,A,IO} and uses a weird register to do so.

Change-Id: I7fcc75f6cc0460b4997914986deda7ca544a4940
imx233: prepare frequency scaling for stmp3700

Add entry for stmp3700 maximum frequency which is 320MHz.

Change-Id: I6db4aad4efa0a7c1347a1ceb262a0295f63057ae
imx233: add function to change cpu/hbus frequency safely

Change-Id: I88e9ad54ba65846ae4d94ae03009b3656f2489f2
imx233: rewrite frequency scaling to use the new function

Change-Id: I0f9968de76ce17710d31f7bc609440654e68b6f1
zen(xfi): enable frequency scaling

With the lcd underflow code at work, it results in small flicker when
switching frequency but it should be fine because it doesn't happen very
often and I don't think there is a way to avoid it without disabling EMI
frequency scaling.

Change-Id: I458732d52bbf27cda2510c3836539db1fb24ea15
zenxfi: enable speaker

Change-Id: I603112d2a348abf92d5c8975ea76d3a57fda7cfc
android: Get the port up and running again

The build system needed fixes because the tools paths changed and one tool that
we used (apkbuilder) was removed entirely. Recent NDKs don't ship gcc 4.4.3
anymore, therefore switch to 4.6. The code itself needed a fix for a jni
reference bug that was uncovered by KitKat.

The port now builds with latest sdk (r22) and ndk (r9d).

Change-Id: Id74fa54ba93bbb0ee30373fbe79e92c5ff03201d
Fix ipod6g build.

Change-Id: I218e1721b8ddbb067581f4bc686a20f4c88694ae
ypr1: Add some commands to rockbox.sh which are needed for playback

Change-Id: I2772e218174b5d1fbc7c066fee41d6fb06c01900
Implement time-based resume and playback start.

This complements offset-based resume and playback start funcionality.
The implementation is global on both HWCODEC and SWCODEC.

Basically, if either the specified elapsed or offset are non-zero,
it indicates a mid-track resume.

To resume by time only, set elapsed to nonzero and offset to zero.
To resume by offset only, set offset to nonzero and elapsed to zero.

Which one the codec uses and which has priority is up to the codec;
however, using an elapsed time covers more cases:

* Codecs not able to use an offset such as VGM or other atomic
formats

* Starting playback at a nonzero elapsed time from a source that
contains no offset, such as a cuesheet

The change re-versions pretty much everything from tagcache to nvram.

Change-Id: Ic7aebb24e99a03ae99585c5e236eba960d163f38
Reviewed-on: http://gerrit.rockbox.org/516
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
Implements starting playback from a cuesheet.

Before time-based resume this was impossible since playback could not
be started at a specified elapsed time, only seeked with playback already
running.

Right now the "FILE" field is used, if present, to do the lookup from
from the .cue to the audio file when it is separate from the audio file.
If no path is specified, the .cue and audio file must be in the same
directory.

When the cuesheet is embedded, the containing file is used and the FILE
field is ignored.

Supports starting playback and seeking to cue points from the cuesheet
browser even without Cuesheet Support turned on.

Change-Id: Ib5b534c406f179a7f8c7042a31572b24a62c0731
Reviewed-on: http://gerrit.rockbox.org/522
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested: Michael Sevakis <jethead71@rockbox.org>
android: Fix installToolchain.sh script.

Change-Id: I6c22043956cea5c5aec3e411045082e1a9b69442
ab_repeat: Move GUI bits to the skin engine. This allows ab_repeat to be compiled headless.

Change-Id: I4fa3b8ef7139313891ca70df11f7f17c5df38cb7
Merge branch 'master' into lab-general

Conflicts:
	android/android.make
Remove redundant code