Big Mouth Billy Bass automation library

Dependents:   BillyBass_with_SD

Committer:
bikeNomad
Date:
Tue Jun 18 14:10:34 2013 +0000
Revision:
4:f009306756b3
Parent:
0:84aaade0de8f
Child:
7:dba9221acf48
working. re-used one Song for memory reduction.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bikeNomad 0:84aaade0de8f 1
bikeNomad 0:84aaade0de8f 2 #include "billybass.hpp"
bikeNomad 0:84aaade0de8f 3 #include <string.h>
bikeNomad 0:84aaade0de8f 4
bikeNomad 0:84aaade0de8f 5 // class static
bikeNomad 0:84aaade0de8f 6 BillyBass* BillyBass::fish[ MAX_FISH ];
bikeNomad 0:84aaade0de8f 7 unsigned BillyBass::numFish;
bikeNomad 0:84aaade0de8f 8 char const * BillyBass::mouthName = "mouth";
bikeNomad 0:84aaade0de8f 9 char const * BillyBass::bodyName = "body";
bikeNomad 0:84aaade0de8f 10 char const * BillyBass::tailName = "tail";
bikeNomad 0:84aaade0de8f 11
bikeNomad 0:84aaade0de8f 12 DigitalOut *BillyBass::outputNamed(char const *_outputName, char const **_pName)
bikeNomad 0:84aaade0de8f 13 {
bikeNomad 0:84aaade0de8f 14 DigitalOut *output = 0;
bikeNomad 0:84aaade0de8f 15
bikeNomad 0:84aaade0de8f 16 if (!strcmp(_outputName, mouthName)) {
bikeNomad 0:84aaade0de8f 17 output = &mouth;
bikeNomad 0:84aaade0de8f 18 if (_pName) *_pName = mouthName;
bikeNomad 4:f009306756b3 19 } else if (!strcmp(_outputName, "head") || !strcmp(_outputName, bodyName)) {
bikeNomad 0:84aaade0de8f 20 output = &body;
bikeNomad 0:84aaade0de8f 21 if (_pName) *_pName = bodyName;
bikeNomad 4:f009306756b3 22 } else if (!strcmp(_outputName, tailName)) {
bikeNomad 0:84aaade0de8f 23 output = &tail;
bikeNomad 0:84aaade0de8f 24 if (_pName) *_pName = tailName;
bikeNomad 0:84aaade0de8f 25 }
bikeNomad 0:84aaade0de8f 26
bikeNomad 0:84aaade0de8f 27 return output;
bikeNomad 0:84aaade0de8f 28 }
bikeNomad 4:f009306756b3 29
bikeNomad 4:f009306756b3 30 char const *BillyBass::outputName(DigitalOut const *out) const
bikeNomad 4:f009306756b3 31 {
bikeNomad 4:f009306756b3 32 if (out == &tail) return tailName;
bikeNomad 4:f009306756b3 33 else if (out == &body) return bodyName;
bikeNomad 4:f009306756b3 34 else if (out == &mouth) return mouthName;
bikeNomad 4:f009306756b3 35 else return "unknown";
bikeNomad 4:f009306756b3 36 }