Big Mouth Billy Bass automation library
Revision 8:ad0c038ebfc1, committed 2013-06-20
- Comitter:
- bikeNomad
- Date:
- Thu Jun 20 15:03:49 2013 +0000
- Parent:
- 7:dba9221acf48
- Commit message:
- Made main loop repeat forever; eliminated time shifting
Changed in this revision
| config_sample.hpp | Show annotated file Show diff for this revision Revisions of this file |
| song.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/config_sample.hpp Thu Jun 20 04:10:22 2013 +0000 +++ b/config_sample.hpp Thu Jun 20 15:03:49 2013 +0000 @@ -1,4 +1,4 @@ -// COPY THIS FILE AS config.hpp and edit as needed +// copy this to config.hpp and edit as needed #ifndef __included_config_hpp #define __included_config_hpp @@ -28,6 +28,10 @@ #define MAX_ACTIONS_PER_SONG MAX_ACTIONS_LINES_PER_SONG*2 #define MAX_TEXT_FILE_LENGTH 2048 +// define this to 1 to make start times earlier and +// enforce minimum on times +#define FIX_TIMES 0 + // Sample configuration typedef int16_t Sample_t; // 16-bit raw, LE samples const float SAMPLE_RATE_HZ = 8000.0; @@ -41,6 +45,13 @@ #define SERIAL_BAUD 115200 #define ANALOG_OUTPUT_BIAS 0x8000 +#define BODY_ON_DELAY 0.65 +#define BODY_OFF_DELAY 0.65 +#define TAIL_ON_DELAY 0.40 +#define TAIL_OFF_DELAY 0.40 +#define MOUTH_ON_DELAY 0.10 +#define MOUTH_OFF_DELAY 0.10 +#define MOUTH_MIN_ON_TIME 0.05 // Power: // Power GND J9/14
--- 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:
Ned Konz