This allows commands to be repeated differently, or not at all,
depending on arbitrary aspects of state.
'data' support will use this.
n = len(cs)
now = int(time.time()*1000)
for i in range(n):
- if self.lastrun[i] == 0 or (cs[i].repeat and
- self.lastrun[i] + cs[i].repeat <= now):
+ if self.lastrun[i] == 0:
return (i, 0)
- if cs[i].repeat:
- delay = (self.lastrun[i] + cs[i].repeat) - now;
+ repeat = cs[i].repeat
+ if repeat == None:
+ repeat = 0
+ elif type(repeat) != int:
+ repeat = repeat(self)
+
+ if repeat and self.lastrun[i] + repeat <= now):
+ return (i, 0)
+ if repeat:
+ delay = (self.lastrun[i] + repeat) - now;
if delay < mindelay:
mindelay = delay
return (0, mindelay)