| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- """
- CInterval-extensions module: contains methods to extend functionality
- of the CInterval class
- """
- def play(self, t0 = 0.0, duration = None, scale = 1.0):
- """ play(t0, duration)
- """
- self.stop()
- if duration: # None or 0 implies full length
- self.setupPlay(t0, t0 + duration, scale)
- else:
- self.setupPlay(t0, -1, scale)
- self.__loop = 0
- # Spawn task
- taskMgr.add(self.__playTask, self.getName() + '-play')
- def loop(self, t0 = 0.0, duration = None, scale = 1.0):
- self.play(t0, duration, scale)
- self.__loop = 1
- return
- def stop(self):
- """ stop()
- """
- # Kill task
- taskMgr.remove(self.getName() + '-play')
- return self.getT()
-
- def setFinalT(self):
- # We have to define this at the Python level so we can
- # implicitly call stop().
- self.stop()
- self.finalize()
- def isPlaying(self):
- return taskMgr.hasTaskNamed(self.getName() + '-play')
- def __playTask(self, task):
- import Task
- loopCount = self.stepPlay()
- if loopCount == 0 or self.__loop:
- return Task.cont
- else:
- return Task.done
|