Пример #1
0
 public void PlayPattern(IPattern pattern)
 {
     lock (lockObject)
     {
         long startTime = getTimeMilliseconds();
         if (pattern.GetType() == typeof(RepeatablePattern))
         {
             foreach (RepeatPattern repeatP in repeatablePatternList)
             {
                 if (repeatP.pattern.ID == ((RepeatablePattern)pattern).ID)
                 {
                     return; //Pattern already present
                 }
             }
             RepeatablePattern    repeatablePattern = (RepeatablePattern)pattern;
             List <SimplePattern> simplePatternList = repeatablePattern.GetSimplePatterns();
             repeatablePatternList.Add(new RepeatPattern(repeatablePattern, startTime + Pattern.Utils.GetMaxDuration(simplePatternList)));
             PlaySimplePatterns(simplePatternList, startTime, false);
         }
         else
         {
             PlaySimplePatterns(pattern.GetSimplePatterns(), startTime, true);
         }
     }
 }
Пример #2
0
 public void PlayPattern(IPattern pattern)
 {
     if (pattern.GetType() == typeof(RepeatablePattern))
     {
         foreach (RepeatPattern repeatP in repeatablePatternList)
         {
             if (repeatP.pattern.ID == ((RepeatablePattern)pattern).ID)
             {
                 return; //Pattern already present
             }
         }
         RepeatablePattern    repeatablePattern = (RepeatablePattern)pattern;
         List <SimplePattern> simplePatternList = repeatablePattern.GetSimplePatterns();
         repeatablePatternList.Add(new RepeatPattern(repeatablePattern, Environment.TickCount + Utils.GetMaxDuration(simplePatternList)));
         foreach (SimplePattern sp in simplePatternList)
         {
             StartPatternOnMotor(sp.GetMotor(), sp);
         }
     }
     else
     {
         foreach (SimplePattern p in pattern.GetSimplePatterns())
         {
             int motor = p.GetMotor();
             if (motor >= numberOfMotors || motor < 0)
             {
                 Console.Error.WriteLine("Invalid motor id: " + motor + ". Vibration device has " + numberOfMotors + " motorThreads.");
             }
             StartPatternOnMotor(motor, p);
         }
     }
 }