Check for NULL TrackModel in WTrackTableView::dropEvent.
MIDI controllers have been broken since the CO/COT merge. Let scripts react to control changes they make -- this restores the <=1.11 behavior of ControllerEngine.
Micro optimize ControlObject::set() double vs double&
Fix library controls so they do not ignore no-op sets.

The collapsing of CO and COT caused a subtle change in behavior which
has broken MIDI controller use of LibraryControl's controls. In Mixxx
<=1.11, ControlObject::sync() would deliver control updates from
ControlObjectThreads to its proxies regardless of whether the control
ignored the update due to it being a no-op.

Now our control updates obey ignore-no-ops so both the CO and its COTs
do not receive an update if ignore-no-ops is enabled. Since this is
the intended behavior of ignoring no-ops, we should fix the faulty
controls rather than mimicking <=1.11.x behavior.

In this case, the problem is fixed for LibraryControl controls by
using ControlPushButton instead of ControlObject, since
ControlPushButton does not ignore no-ops.
Add container utility method for deleting values in a QMap.
Get rid of 10-deck/sampler/preview-deck hard-coding in LibraryControl. Eliminate now-unnecessary use of ControlObjectThreadMain.
Pre-allocate QByteArray size when building message to send in Controller::send.
Fix assumption in PlayerInfo that the number of decks does not change.
Change EngineXfader to use double-precision floating point.
Fix warnings here and there.
small changes due to coding guideline
Merge pull request #29 from daschuer/atomic-co

Micro optimize ControlObject::set() double vs double&
Fix mysterious build segfaults caused by build directory virtualization.

Build directory virtualization changed the build directory into a symlink and
relocated the SCons signature cache into cache/$branchname/sconsign.dblite. This
causes strange issues with SCons (and I should have listened to asantoni's
warning comment from 2008. I thought maybe the problems had been related to our
previous build system setup but it appears there is a bug in SCons).

This new method keeps each branch build directory and .sconsign.dblite file in
cache/$branchname/ as before. When you run scons in a particular branch, it
moves the build directory and .sconsign.dblite file to the root and writes a
.sconsign.branch file to keep track of the branch the files are related to.

If you run scons and the .sconsign.branch file does not match the current
branch, the build system moves the current build directory and .sconsign.dblite
file into cache/$oldbranchname/ before moving the data from cache/$branchname/
to the root.

I could reliably reproduce the segfault caused by the symlinking by starting at
SHA f47eca6c, building, and then merging up to SHA 82c4a75 and building. The
resulting binary would segfault on start. This patch fixes the segfault.
Add .sconsign files to .gitignore.
Add [Preferences],updated signal that lets other parts of Mixxx know when the preferences dialog has closed (and likely changed a preference). IMO this is prefereable to adding an individual signal for every preference option that might change (e.g. how the time-remaining widget works now).
Fix libmixxxminimal manifest to include key detector (it's already being linked in the binary). Use better name for key detector plugin.
Make some changes to WLabel to bring it more in line with WNumber.
Delete old BPM scheme code.
Delete unused tonal analyser code copied from the CLAM project.
Minor cleanups to VampAnalyser.