void handleStablePhase(Frame frame, DefaultHandInterface dhi) { OneHandInterface ohi = dhi as OneHandInterface; TwoHandInterface thi = dhi as TwoHandInterface; switch (frame.Hands.Count) { case 0: dhi.Zero(); break; case 1: if (ohi != null) { ohi.One(frame.Hands[0]); } break; case 2: if (thi != null) { thi.Two(HandUtils.designateRightLeftHands(frame)); } break; default: dhi.TooManyHands(); break; } }
void handleTransitionPhase(Frame frame, int hbtCount, float ctl, DefaultHandInterface dhi) { OneHandInterface ohi = dhi as OneHandInterface; TwoHandInterface thi = dhi as TwoHandInterface; switch (frame.Hands.Count) { case 0: if (hbtCount == 1 && ohi != null) { ohi.OneToZero(ctl); } if (hbtCount == 2 && thi != null) { thi.TwoToZero(ctl); } if (hbtCount > 2) { dhi.TooManyHands(); } break; case 1: Hand currentHand = frame.Hands[0]; if (hbtCount == 0 && ohi != null) { ohi.ZeroToOne(currentHand, ctl); } if (hbtCount == 2 && thi != null) { thi.TwoToOne(currentHand, ctl); } if (hbtCount > 2) { dhi.TooManyHands(); } break; case 2: Hand[] currentHands = HandUtils.designateRightLeftHands(frame); if (hbtCount == 0 && thi != null) { thi.ZeroToTwo(currentHands, ctl); } if (hbtCount == 1 && thi != null) { thi.OneToTwo(currentHands, ctl); } if (hbtCount > 2) { dhi.TooManyHands(); } break; default: dhi.TooManyHands(); break; } }