[win32] replace usage of IsVistaOrHigher and IsWindows8OrHigher with unified function IsWindowsVersionAtLeast
[win32] Remove CSysInfo::IsVistaOrHigher and CSysInfo::IsWindows8OrHigher functions
Merge pull request #2741 from Karlson2k/win32_sysinfo_clean

Small cleanup for CSysInfo
jni: fix crashes when finding external storage. Regression from jni merge.
fixed: peripheral settings must be visible for peripherals that are detected
fixed: when doing a format conversion from float to 32 bit int, multiply with INT32_MAX - 127, since this is the maximum value that can be stored in 32 bit float and int, if INT32_MAX gets converted to float, it gets rounded to INT32_MAX + 1 which can cause wrap around distortion
rename: MUL32 -> AE_MUL32
Merge pull request #2748 from bobo1on1/32bitmul

Was tested, works.
Drop played parts of video files from the fs cache.

Patch by Steinar H. Gunderson:

This patch fixes a persistent problem I've been seing on my Linux HTPC
in that if I adjust the volume from the XBMC Android remote, the video
glitches for a few (4–5) frames. Seemingly this is because loading the
video file has caused the graphics for the volume control to be swapped
out (it does not happen if I recently used the volume control).

One could argue that the right fix for this would be to reduce
/proc/sys/vm/swappiness, but it might not seem reasonable to expect
end-users to fiddle with VM parameters (and the user might not even have
root access). I view this fix as complimentary in nature.

What we do is to use posix_fadvise() to tell the kernel that previously
read parts of the video file will no longer be used, causing it to drop
those from its buffer cache. This makes other things, like in my case,
the volume control graphics, stay cached. This is, of course, assuming
you don't have other processes that trash your cache, but as long as
XBMC is running relatively undisturbed, this shouldn't be a big problem.

The patch is conservative:
 * We only drop data after we've read 16MB past it. (This counter is
   reset on seeks.)
 * We never drop data from the first 16MB of a file (this makes sure we
   don't drop _anything_ from files <32MB, ie. graphics, configuration
   files, etc.).
 * In order to avoid making tons of extra syscalls, we only drop in 1MB
   chunks.

Unfortunately Linux as of 3.1.0 has no way of just _hinting_ that we
will no longer need these parts -- when we issue posix_fadvise(), the
data is immediately and unconditionally dropped from the buffer cache.
(If you read the manpage, it might seem otherwise, until you come to the
point where it tells how these flags are actually interpreted by the
kernel.) Future kernels might remedy this.
Merge pull request #2065 from sandsmark/master

Drop played parts of video files from the fs cache.
[libdvdread] Revert previous fixups
[libdvdread] Remove symlink checking as this is not needed by xbmc
[libdvdread] added patch file elimination of symlink resolution
[libdvdread] add missing stat() filesystem wrapper - fixes reading VIDEO_TS dvds on Android
Merge pull request #2753 from Voyager1/libdvdread-fix

Better Libdvdread fix for SMB/NFS VIDEO_TS dvd files (non-Windows and now including Android) with special thanks to @theuni !
CGUIWindowSettingsCategory: remove unused m_currentSettings member variable
CGUIWindowSettingsCategory: only handle delayed settings during GUI_MSG_FOCUSED if the focused setting is not the delayed setting

When using a mouse to control XBMC changing the value of a spinner with a left
click results in a GUI_MSG_FOCUSED message. If that setting is delayed a left
click lead to the early evaluation of the delayed setting even though it's
still being changed (which should just result in a reset of the delay timer).
This lead to crashes if a setting changed callback executed a skin reload.