public void setDurations(long rotationDurationMillis, long stallDurationMillis) {
   timePeriodManager.reset();
   int subPeriodCount = 0;
   timePeriodManager.addSubPeriod(rotationDurationMillis);
   rotateUpSubPeriod = subPeriodCount;
   subPeriodCount++;
   if (stallDurationMillis > 0) {
     timePeriodManager.addSubPeriod(stallDurationMillis);
     stallUpSubPeriod = subPeriodCount;
     subPeriodCount++;
   }
   timePeriodManager.addSubPeriod(rotationDurationMillis);
   rotateDownSubPeriod = subPeriodCount;
   subPeriodCount++;
   if (stallDurationMillis > 0) {
     timePeriodManager.addSubPeriod(stallDurationMillis);
     stallDownSubPeriod = subPeriodCount;
   }
 }