void handDataSource_NewDataAvailable(HandCollection data)
{
if (data.Count == 1)
{
var hand = data.Hands.First();
if (hand.FingerCount >= 4)
{
this.StopMode();
}
if (hand.FingerCount == 1)
{
this.Select(hand.FingerPoints.First());
}
}
if (data.Count == 2)
{
var leftHand = data.Hands.OrderBy(h => h.Location.X).First();
var rightHand = data.Hands.OrderBy(h => h.Location.X).Last();
if (leftHand.FingerCount == 2 && rightHand.FingerCount == 2)
{
SurfaceMode(data);
}
else if (leftHand.FingerCount >= 4 && rightHand.FingerCount == 0)
{
StopMode();
}
else if (leftHand.FingerCount >= 4 && rightHand.FingerCount >= 1)
{
TimeShiftMode(rightHand);
}
else if (rightHand.FingerCount == 0 && leftHand.FingerCount == 0)
{
isNew = true;
DisabeMoveMode();
}
else if (leftHand.FingerCount == 0)
{
DisabeMoveMode();
}
else if (rightHand.FingerCount >= 4 && leftHand.FingerCount == 1)
{
CancelMode(leftHand);
}
}
else
{
isNew = true;
}
}