bookmark: add cancelling of autoload bookmark

When autoload bookmark is set to "Ask", navigate to a file with
bookmarks in that directory. Select the file and the bookmark list
appears. Even if you chose to cancel, the track started prior to this
patch.

Change-Id: I453999a9bc20faae97f9cf2080ef613c602ad8e1
Reviewed-on: http://gerrit.rockbox.org/416
Reviewed-by: Jonathan Gordon <rockbox@jdgordon.info>
rk27xx: fix i2c driver

Change-Id: I205cc92f452c1990c64da7e91b2baf00b920c922
Change autodetection result to a list.

Both autodetection functionality and the configuration dialog assumed detection
to only return one found device. This isn't necessarily true, especially since
some players can be detected but detecting their mountpoint might be ambiguous
(only if no previous Rockbox installation is present).

Instead of returning individual results (found "ok" player, found "error"
player etc.) return a list containing an entry for each player. Current
autodetection code will never return more than one entry since it doesn't
handle multiple devices yet, and the configuration dialog will show an error if
multiple devices are found. Thus there is no user visible change yet. Both
autodetection and configuration dialog can now get extended to handle multiple
devices.

Change-Id: I79b763dbd6e7111783194bcc22ab7cc06a4061c1
Add missing USB IDs.

The new autodetection will always use USB IDs to identify players (among other
means). Add missing IDs for players the current implementation relies on other
means for detection only.

Change-Id: I037c23705518210b6ed93b4d13ccb96d933aa198
Consolidate identical fixedpoint exp and ln functions.

grey_core.c and fixedpoint.c each had their own copies. grey_core.c
can use the ones fixedpoint.c. fixedpoint.c gets the more complete and
optimized version of fp_16exp from grey_core.c.

Change-Id: I43ee3add60796b06ed12012fbbd91815d64675a6
Move fixedpoint.h to be accessible in /firmware.

Will need it soon enough.

Combine the contents of all the various fixedpoint.h files.
Not moving fixedpoint.c for now since I'm not sure where it
should be and it causes some dependency issues.

Change-Id: Ideacbca2ca78f9158c2b114b113c274f68e908d5
rk27xx: implement radio support

Change-Id: I59d3905e9b2a3df8aa235e424c7a6e0eff6d73e9
Reviewed-on: http://gerrit.rockbox.org/427
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested-by: Marcin Bukat <marcin.bukat@gmail.com>
fix yellow

Change-Id: Ide0df2c3719d6100c6dc61515bf7acf6ac11231b
Implement universal in-PCM-driver software volume control.

Implements double-buffered volume, balance and prescaling control in
the main PCM driver when HAVE_SW_VOLUME_CONTROL is defined ensuring
that all PCM is volume controlled and level changes are low in latency.

Supports -73 to +6 dB using a 15-bit factor so that no large-integer
math is needed.

Low-level hardware drivers do not have to implement it themselves but
parameters can be changed (currently defined in pcm-internal.h) to work
best with a particular SoC or to provide different volume ranges.

Volume and prescale calls should be made in the codec driver. It should
appear as a normal hardware interface. PCM volume calls expect .1 dB
units.

Change-Id: Idf6316a64ef4fb8abcede10707e1e6c6d01d57db
Reviewed-on: http://gerrit.rockbox.org/423
Reviewed-by: Michael Sevakis <jethead71@rockbox.org>
Tested-by: Michael Sevakis <jethead71@rockbox.org>
Fix f5a5b94 errors. Employ SW volume for select targets on SIM.

Onda VX747 sim was missing a limits #define; #include limits.h in
pcm_sw_volume.h.

Simply use the software volume control for the SIM volume control
rather than the SDL volume control when the target would have it
natively.

Change-Id: I8e924a2ff1b410f602452d2ea9b691efb82c931e
hm60x/hm801: Fix balance by enabling sw volume control.

Change-Id: I8760b58d5b801409f35370d812d72f8d578d2889
rk27xx: make udelay() more accurate

Change-Id: Ic448c4e5ec52af6aaeebccee4feea49954394677
rk27xx: avoid one multiply in udelay() as pointed by kugel

Change-Id: Ie33a393b0d4c4b45975ca53ced91dd9f03369db1
rk27xx: do not attenuate signal twice in analog bypass mode

Change-Id: I108091adaa05e53ccb8bbe3d60ca35e2191a39fd
Use equivalent puts_scroll() call.

Change-Id: I09e5046f153a276fa6eb047e040b8f752e73d03c
Straighten out the mad twisted state of sound.c and related areas.

This is going right in since it's long overdue. If anything is goofed,
drop me a line or just tweak it yourself if you know what's wrong. :-)

Make HW/SW codec interface more uniform when emulating HW functionality
on SWCODEC for functions such as "audiohw_set_pitch". The firmware-to-
DSP plumbing is in firmware/drivers/audiohw-swcodec.c. "sound_XXX"
APIs are all in sound.c with none in DSP code any longer.

Reduce number of settings definitions needed by each codec by providing
defaults for common ones like balance, channels and SW tone controls.

Remove need for separate SIM code and tables and add virtual codec header
for hosted targets.

Change-Id: I3f23702bca054fc9bda40f49824ce681bb7f777b
Hopefully knock out most of the red and yellow from 0c7b787.

Change-Id: Ib8dd0d011b11ee3eded3025308f19ddb5d151b59
Fix some more errors and warnings from 0c7b787.

Change-Id: Ib67d0ab344e36964cadbcc982dc2afe35733770b
Keep fixing 0c7b787 stuff

Change-Id: I0678d3307fbcad32156f9f4e0f8b90eed5a20d92
Still at it for 0c7b787. Might be done now.

Change-Id: Idf45731dc6554954747f6036dc6dfcd4b63981a1