Big Mouth Billy Bass automation library
Diff: song.cpp
- Revision:
- 8:ad0c038ebfc1
- Parent:
- 7:dba9221acf48
--- a/song.cpp Thu Jun 20 04:10:22 2013 +0000 +++ b/song.cpp Thu Jun 20 15:03:49 2013 +0000 @@ -84,17 +84,6 @@ bool Song::addAction(float _time, int _state, DigitalOut* _out, char _code) { - Action *priorAction = (numActions > 0) ? actions + numActions - 1 : 0; - if (priorAction ) { - if (priorAction->output == _out) { - if (priorAction->actionTime >= _time && priorAction->desiredState != _state) - return true; - if (priorAction->actionTime < _time && priorAction->desiredState == _state) { - priorAction->actionTime = _time; - return true; - } - } - } if (numActions >= MAX_ACTIONS_PER_SONG) return false; actions[numActions++].set(_time, _state, _out, _code); return true; @@ -148,14 +137,16 @@ goto done; } +#if FIX_TIMES startTime -= onDelay; - startTime -= remainder(startTime, SECONDS_PER_CHUNK); if (startTime < 0.0) startTime = 0.0; - endTime -= offDelay; - endTime += remainder(endTime, SECONDS_PER_CHUNK); if (endTime < startTime + minOnTime) endTime = startTime + minOnTime; +#endif + + startTime -= remainder(startTime, SECONDS_PER_CHUNK); + endTime += remainder(endTime, SECONDS_PER_CHUNK); fprintf(stderr, "%d %f %f %s\r\n", line, startTime, endTime, outName); @@ -164,9 +155,11 @@ } fprintf(stderr, "Added %d actions\r\n", numActions); qsort(actions, numActions, sizeof(Action), &Action::compare); +#if 0 for (int i = 0; i < numActions; i++ ) { fprintf(stderr, "%f %c\r\n", actions[i].actionTime, actions[i].code); } +#endif retval = true; done: