hekeus@6: /* hekeus@6: * Voice.cpp hekeus@6: * MelodyTriangle hekeus@6: * hekeus@6: * Created by Henrik Ekeus on 12/01/2012. hekeus@6: * Copyright 2012 Queen Mary University of London. All rights reserved. hekeus@6: * hekeus@6: */ hekeus@6: hekeus@6: #include "Voice.h" hekeus@6: samer@13: inline static double min(double x,double y) { return (xid=id; hekeus@6: posx=x; hekeus@6: posy=y; hekeus@6: isActive=true; samer@10: radius=12; hekeus@6: inTriangle=false; hekeus@6: octave=0; hekeus@6: highlight=false; samer@13: amplitude=0.6; samer@18: status=clear; hekeus@6: } hekeus@6: hekeus@6: void Voice::draw(){ samer@18: int r,g,b; samer@18: switch (status) { samer@18: case clear: r=1; g=0; b=0; break; samer@18: default: r=1; g=1; b=0; break; samer@18: // case pending: r=1; g=1; b=0; break; samer@18: // case waiting: r=1; g=0; b=0; break; samer@18: // case moved: r=1; g=0; b=1; break; samer@18: // default: r=0; g=1; b=0; samer@18: } hekeus@6: samer@18: if (isActive) { r=2*r; g=2*g; b=2*b; } samer@19: ofSetColor(100*r,60*g,60*b); samer@18: ofFill(); samer@18: ofCircle(posx, posy, radius); samer@18: //ofNoFill(); samer@18: //ofCircle(posx, posy, radius); samer@18: samer@18: if (highlight) { samer@18: ofSetColor(230, 230, 230); samer@18: ofNoFill(); samer@18: ofCircle(posx, posy, radius); samer@10: } else { hekeus@6: ofNoFill(); samer@18: ofCircle(posx, posy, radius); hekeus@6: } hekeus@6: } hekeus@6: samer@13: double Voice::louder() { return amplitude=min(1,amplitude*1.125); } samer@13: double Voice::quieter() { return amplitude/=1.125; } hekeus@6: