Big Mouth Billy Bass automation library
Diff: billybass.cpp
- Revision:
- 7:dba9221acf48
- Parent:
- 4:f009306756b3
--- a/billybass.cpp Thu Jun 20 03:04:36 2013 +0000 +++ b/billybass.cpp Thu Jun 20 04:10:22 2013 +0000 @@ -9,21 +9,33 @@ char const * BillyBass::bodyName = "body"; char const * BillyBass::tailName = "tail"; -DigitalOut *BillyBass::outputNamed(char const *_outputName, char const **_pName) +DigitalOut *BillyBass::outputNamed(char const *_outputName, char const **_pName, float *_pOnDelay, float *_pOffDelay, float *_pMinOnTime) { DigitalOut *output = 0; + float onDelay = 0.0, offDelay = 0.0, minOnTime = 0.0; + char const *name = 0; if (!strcmp(_outputName, mouthName)) { output = &mouth; - if (_pName) *_pName = mouthName; + name = mouthName; + onDelay = MOUTH_ON_DELAY; + offDelay = MOUTH_OFF_DELAY; + minOnTime = MOUTH_ON_DELAY / 2; } else if (!strcmp(_outputName, "head") || !strcmp(_outputName, bodyName)) { output = &body; - if (_pName) *_pName = bodyName; + name = bodyName; + minOnTime = onDelay = BODY_ON_DELAY; + offDelay = BODY_OFF_DELAY; } else if (!strcmp(_outputName, tailName)) { output = &tail; - if (_pName) *_pName = tailName; + name = tailName; + minOnTime = onDelay = TAIL_ON_DELAY; + offDelay = TAIL_OFF_DELAY; } - + if (_pOnDelay) *_pOnDelay = onDelay; + if (_pOffDelay) *_pOffDelay = offDelay; + if (_pMinOnTime) *_pMinOnTime = minOnTime; + if (_pName) *_pName = name; return output; }