root menu: add the shutdown option to all builds

Shutdown can now be added to the main menu on all builds. Allowing those
that wish to to add it to their main menu without affecting those who do not.
This option is disabled by default unless the build already offered this item
before this change (PLAYER_PAD).

Change-Id: I7fe0a7fc095d81d886f7fdc32a3627a36a5fcba1
skin engine: Switch from offsets to actual pointers in all skin structs.

The skin engine was previously using offsets into the skins buflib
handles buffer. This was slightly error prone and bloated. Switch
back to using plain pointers and make sure to move them on the very
rare time when the handle moves.

Benefits of this include crahsing if there is a mistake instead of
randomly not working as correctly!

version 2:
 * Builds (hopefully) on everything except charcell
 * Finished removing the offset ptr macros!

Change-Id: I1d9555c5fe240b6d19d172edc6efc6e8b496b4f7
Improved viewers.config

Change-Id: I2f299207bc3ac77670581c751fcf028319996cc0
Worked around DOOM bug on iPod Classic

Change-Id: Ibb3665481332f6d75d953a1aed95375e1756ed09
patched G#913

call the setting callbacks from the touchregions

-fix two callback functions
-settings_save() before callback

Change-Id: I3ce9ac69c55e572c35187c2810b334adf202963d
patch g#913 parts 2

-add missing callback functions to eq gain,q, and cutoffs
-add callback to eq enable

Change-Id: I4443adbb30f3dddce9f4a853ff36e61c6f30bd98
Clean up - Removes whitespaces from tools/rockboxdev.sh

Change-Id: I31d5a3fb8b4059d21adbc44a28e707ebc1c12582
Cleanup unused function

Change-Id: I10aac94906607a74f05a687cb3d0029cb6faea6e
application: Map /.rockbox to the actual ROCKBOX_DIR on config load

application ports may not use /.rockbox for various reasons (one being that / is a
read-only filesystem). To make themes loadable anyway introduce a special case
for theme (and other) files that are attempted to be loaded from /.rockbox.

This is one way, it will not map from arbiratry dirs to /.rockbox.

Change-Id: I8e7515841d01a0ef28d89bc17da14f405ffb2b60
Add USB Audio 1.0 support (EXPERIMENTAL)

This commit add preliminary support for the USB Audio 1.0 class to Rockbox.
To enable USB Audio, go to the Debug Menu, then select "USB Audio".
On device with very little endpoints, make sure to disable HID, and
possibly disable mass storage by pressing a button on USB plug.

At the moment, on the USB ARC driver is supported, which limits the working
devices to:
sansac200, creativezenxfi2, vibe500, ipodmini2g, ipod4g, creativezenxfi,
creativezenxfi3, sansaview, ipodcolor, creativezenxfistyle, samsungypz5,
sansafuzeplus, iriverh10_5gb, tatungtpj1022, gigabeats, faketarget,
samsungyh820, gogearhdd1630, samsungyh925, ipodmini1g, ipodvideo,
creativezenmozaic, sonynwze370, creativezen, gogearsa9200,
gogearhdd6330, sonynwze360, sansae200, mrobe100, iriverh10,
creativezenv, ipodnano1g, samsungyh920

Only the Fuze+ was tested, with a Linux host running Debian unstable.

There are still many things to do or improve:
- test this code under Windows
- test this code with frequencies other than 44100 (the device reports all
  sample rates supported by the hardware)
- allocate the usb buffers from the audio buffer instead of statically
- rework the code to use pcm_mixer with its own channel
- add some kind of nice interface or setting to enable usb audio
- remove this horrible hack to get sound volume
Extensions of this work include:
- export other playback sinks like line-out
- add support for speaker enable ? or handle it as another sink ?
- add support for recording, possibly from several sources
  like microphone, line-in and maybe radio
- radio has an interesting challenge: how to handle frequency tuning ?
  the usb audio spec allows for vendor defined controlled but as far as
  I know, those are hardly exported to userland on Linux, which make them
  uneasy to work with.

On the technical side, it should be noted that this patch requires some
slight changes to the usb drivers:
- proper blocking on control OUT transfers, to make sure the data is
  received *before* using it, the usb_core should probably use that too
- drivers can now support interface alternate settings
- drivers can be notificed of completion by a new fast handler, which
  is called directly from the driver; this is is necessary for isochronous
  transfers because going through the usb queue is way too slow

Change-Id: I246b455e99fd4a4b5d7dad2ea36a0c968e0f0d77
Superdom bugpatch:

Just commented out the "bad" code for now

Change-Id: I9a79f8e08367c70c0892adf2e174f58834f74351
regtools/headergen: Make generator more flexible

Change-Id: I2328ec021ed990a40257d4ce6f4fc5b3db2ba998
Fix typos in documentation

Change-Id: I3c7e204bcf67bf0004314fe4b2aec98cae145273
Two more typo fixes

Change-Id: Id3ec7c1da356cb7c617a1d9ad57c9e0ae9fa6611
More standard conforming codec_realloc()

- Leave original ptr untouched if allocation fails
  (bail out early)
- Behave like malloc() in case ptr is NULL

Change-Id: Ib854ca19bd0e069999b7780d2d9a533ece705add
XWorld: cleanup

 - Comment keymaps.h
 - Tie XWORLD_DEBUG into ROCKBOX_HAS_LOGF to ease debugging
 - Fix up the manual a little bit

Change-Id: I12cfb58001199036cd67dbaa27f164e6790a199d
Reviewed-on: http://gerrit.rockbox.org/1084
Reviewed-by: Michael Giacomelli <giac2000@hotmail.com>
Fix return value check of buflib_alloc() / core_alloc()

Zero is not a valid buflib handle. This commit is
inspired by a similar fix in the skin engine.

Change-Id: I033028b439c3eaec537162d972e7e228386fc14c
soc_desc: new version (WIP)

Fix qeditor and hwstub_shell to use the old soc_desc_v1.

Change-Id: I9fefbff534bfaa5c3603bb3dd8307a2b76e88cfc
Document 'union buflib_data'

Change-Id: Ia98fa8e7887338d6c0b7a5795a0ae5c7a13014ba
Add missing newline in debug output

Change-Id: Ifd67dbcc80db328391464ec93316c48f914bc590