00001
00011 #ifndef __ARIA_H__
00012 #define __ARIA_H__
00013
00026 #include <vector>
00027 using namespace std;
00028
00029 #define MAX_PARTICIPANTS 4
00030 #define BEAT_WINDOW_SIZE 64
00031 #define HIT_WINDOW_SIZE 64
00032
00033 enum HeuristicType {
00034 HEURISTIC_METER = 0,
00035 HEURISTIC_FREQUENCY,
00036 HEURISTIC_COUNT,
00037 HEURISTIC_AVERAGE,
00038
00039 NUM_HEURISTICS
00040 };
00041
00042 struct MusicBeat {
00043 int beat;
00044 long timestamp;
00045 };
00046
00047 struct DrumHit {
00048 long timestamp;
00049 };
00050
00051 struct HitHistory {
00052 DrumHit hits[HIT_WINDOW_SIZE];
00053 int readPos;
00054 int writePos;
00055 };
00056
00057 struct SimulationStatus
00058 {
00059
00060 float ratings[MAX_PARTICIPANTS];
00061
00062
00063 MusicBeat beats[BEAT_WINDOW_SIZE];
00064 int beatsReadPos;
00065 int beatsWritePos;
00066 long avgBeatTime;
00067
00068
00069 HitHistory hits[MAX_PARTICIPANTS];
00070 };
00071
00076 enum BoidBehavior {
00077 SimpleSeek,
00078 Arrival,
00079 Circle,
00080 SeparationSeek,
00081 Peck
00082 };
00083
00091 enum BoidDestination {
00092 TREE = 0,
00093 DRUM1,
00094 DRUM2,
00095 DRUM3,
00096 DRUM4
00097 };
00098 #define AV_NUMSEEKPOINTS 5
00099
00101 enum BoidType {
00102 BLUEJAY = 0,
00103 GOLDFINCH,
00104 ORANGE,
00105 KIWI
00106 };
00107 #define AV_NUMBOIDTYPES 4
00108
00109 #endif