annotate src/Voice.cpp @ 22:4dcc4312b5fa

Bit of a tidy up, adding text display, added full screen toggle and window resize handler.
author samer
date Thu, 02 Feb 2012 18:17:24 +0000
parents 055d7524bae4
children 460c05dd74d0
rev   line source
hekeus@6 1 /*
hekeus@6 2 * Voice.cpp
hekeus@6 3 * MelodyTriangle
hekeus@6 4 *
hekeus@6 5 * Created by Henrik Ekeus on 12/01/2012.
hekeus@6 6 * Copyright 2012 Queen Mary University of London. All rights reserved.
hekeus@6 7 *
hekeus@6 8 */
hekeus@6 9
hekeus@6 10 #include "Voice.h"
hekeus@6 11
samer@13 12 inline static double min(double x,double y) { return (x<y) ? x : y; }
samer@13 13
samer@22 14 Voice::Voice(int id):
samer@22 15 radius(12), isActive(true),
samer@22 16 inTriangle(false), octave(0), highlight(false),
samer@22 17 amplitude(0.6), status(clear), id(id), posx(0), posy(0) {}
hekeus@6 18
hekeus@6 19 void Voice::draw(){
samer@18 20 int r,g,b;
samer@18 21 switch (status) {
samer@18 22 case clear: r=1; g=0; b=0; break;
samer@18 23 default: r=1; g=1; b=0; break;
samer@18 24 // case pending: r=1; g=1; b=0; break;
samer@18 25 // case waiting: r=1; g=0; b=0; break;
samer@18 26 // case moved: r=1; g=0; b=1; break;
samer@18 27 // default: r=0; g=1; b=0;
samer@18 28 }
hekeus@6 29
samer@18 30 if (isActive) { r=2*r; g=2*g; b=2*b; }
samer@19 31 ofSetColor(100*r,60*g,60*b);
samer@18 32 ofFill();
samer@18 33 ofCircle(posx, posy, radius);
samer@18 34 //ofNoFill();
samer@18 35 //ofCircle(posx, posy, radius);
samer@18 36
samer@18 37 if (highlight) {
samer@18 38 ofSetColor(230, 230, 230);
samer@18 39 ofNoFill();
samer@18 40 ofCircle(posx, posy, radius);
samer@10 41 } else {
hekeus@6 42 ofNoFill();
samer@18 43 ofCircle(posx, posy, radius);
hekeus@6 44 }
hekeus@6 45 }
hekeus@6 46
samer@22 47 double Voice::louder() { return amplitude=min(1,amplitude*1.0625); }
samer@22 48 double Voice::quieter() { return amplitude/=1.0625; }
hekeus@6 49