do add zero-length intervals to ivalMgr

This commit is contained in:
David Rose 2002-10-04 22:34:55 +00:00
parent e83c431b91
commit b50b2f9fc3
2 changed files with 20 additions and 39 deletions

View File

@ -251,18 +251,14 @@ class MetaInterval(CMetaInterval):
CMetaInterval.setT(self, t) CMetaInterval.setT(self, t)
def start(self, startT = 0.0, endT = -1.0, playRate = 1.0): def start(self, startT = 0.0, endT = -1.0, playRate = 1.0):
if self.getDuration() == 0.0: self.__updateIvals()
self.privInstant() self.setupPlay(startT, endT, playRate, 0)
else: self.__manager.addInterval(self)
self.setupPlay(startT, endT, playRate, 0)
self.__manager.addInterval(self)
def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0): def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0):
if self.getDuration() == 0.0: self.__updateIvals()
self.privInstant() self.setupPlay(startT, endT, playRate, 1)
else: self.__manager.addInterval(self)
self.setupPlay(startT, endT, playRate, 1)
self.__manager.addInterval(self)
def pause(self): def pause(self):
if self.getState() == CInterval.SStarted: if self.getState() == CInterval.SStarted:
@ -272,13 +268,11 @@ class MetaInterval(CMetaInterval):
return self.getT() return self.getT()
def resume(self, t0 = None): def resume(self, t0 = None):
if self.getDuration() == 0.0: self.__updateIvals()
self.privInstant() if t0 != None:
else: self.setT(t0)
if t0 != None: self.setupResume()
self.setT(t0) self.__manager.addInterval(self)
self.setupResume()
self.__manager.addInterval(self)
def finish(self): def finish(self):
self.__updateIvals() self.__updateIvals()

View File

@ -91,12 +91,8 @@ set_t(double t) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CInterval:: void CInterval::
start(double start_t, double end_t, double play_rate) { start(double start_t, double end_t, double play_rate) {
if (get_duration() == 0.0) { setup_play(start_t, end_t, play_rate, false);
priv_instant(); _manager->add_c_interval(this, false);
} else {
setup_play(start_t, end_t, play_rate, false);
_manager->add_c_interval(this, false);
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -113,13 +109,8 @@ start(double start_t, double end_t, double play_rate) {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CInterval:: void CInterval::
loop(double start_t, double end_t, double play_rate) { loop(double start_t, double end_t, double play_rate) {
if (get_duration() == 0.0) { setup_play(start_t, end_t, play_rate, true);
// A zero-length interval can't really loop. _manager->add_c_interval(this, false);
priv_instant();
} else {
setup_play(start_t, end_t, play_rate, true);
_manager->add_c_interval(this, false);
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -149,10 +140,8 @@ pause() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CInterval:: void CInterval::
resume() { resume() {
if (get_duration() != 0.0) { setup_resume();
setup_resume(); _manager->add_c_interval(this, false);
_manager->add_c_interval(this, false);
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
@ -163,11 +152,9 @@ resume() {
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void CInterval:: void CInterval::
resume(double start_t) { resume(double start_t) {
if (get_duration() != 0.0) { set_t(start_t);
set_t(start_t); setup_resume();
setup_resume(); _manager->add_c_interval(this, false);
_manager->add_c_interval(this, false);
}
} }
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////