Mercurial > hg > screen-ui
changeset 31:417deb31dd4e
Added a switch to control snap-to-true-position behaviour of tokens;
reduced default amplitude of voices.
author | samer |
---|---|
date | Tue, 07 Feb 2012 14:23:32 +0000 |
parents | 9e8c19c90986 |
children | 06a2fdb333ca |
files | src/Voice.cpp src/melodyTriangle.cpp src/melodyTriangle.h |
diffstat | 3 files changed, 17 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Voice.cpp Mon Feb 06 11:50:03 2012 +0000 +++ b/src/Voice.cpp Tue Feb 07 14:23:32 2012 +0000 @@ -12,7 +12,7 @@ inline static double min(double x,double y) { return (x<y) ? x : y; } Voice::Voice(int id): - isActive(true), inTriangle(false), octave(0), amplitude(0.6), + isActive(true), inTriangle(false), octave(0), amplitude(0.5), status(pending), id(id), posx(0), posy(0), truex(-1), truey(-1) {} void Voice::draw(bool highlight){
--- a/src/melodyTriangle.cpp Mon Feb 06 11:50:03 2012 +0000 +++ b/src/melodyTriangle.cpp Tue Feb 07 14:23:32 2012 +0000 @@ -7,7 +7,7 @@ melodyTriangle::melodyTriangle(const char *host, int port, int numVoices, bool enableKeys,int voiceIdOffset,int receivePort): - numVoices(numVoices), receivePort(receivePort), + numVoices(numVoices), receivePort(receivePort), snapTruePos(enableKeys), enableKeys(enableKeys), allowExit(true), ratio(2), tempoIndex(4), display_msg(""), display_frames(0) { @@ -201,6 +201,7 @@ case ' ': send("/marker"); break; case 'S': send("/save"); break; + case 'r': send("/report"); break; case 'C': sendReplyTo(); sendCalibrate(); break; case 'F': ofToggleFullscreen(); break; case 'R': reset(); break; @@ -255,7 +256,7 @@ void melodyTriangle::mouseReleased(int x, int y, int button){ if (voiceGrabbed!=NULL) { Voice *v=voiceGrabbed; - if (v->status==Voice::clear) { + if (v->status==Voice::clear && v->truex>=0) { v->posx=v->truex; v->posy=v->truey; v->truex=v->truey=-1; @@ -310,21 +311,24 @@ float x=m.getArgAsFloat(1); float y=m.getArgAsFloat(2); v->status=Voice::clear; - if (voiceGrabbed==v) { - v->truex=x; - v->truey=y; - } else { - v->posx=x; - v->posy=y; - v->truex=v->truey=-1; + if (snapTruePos) { + if (voiceGrabbed==v) { + v->truex=x; + v->truey=y; + } else { + v->posx=x; + v->posy=y; + v->truex=v->truey=-1; + } } - printf("True position of %d: %4.1f, %4.1f\n",v->id,v->truex,v->truey); + printf("True position of %d: %4.1f, %4.1f\n",v->id,x,y); } else if (msg=="position") { int x=(int)m.getArgAsFloat(1); int y=(int)m.getArgAsFloat(2); v->posx=x; v->posy=y; v->inTriangle=!clipToTriangle(&x,&y); + v->status=Voice::clear; if (voiceGrabbed==v) voiceGrabbed=NULL; } else if (msg=="running") { v->isActive = m.getArgAsInt32(1) ? true : false; @@ -362,6 +366,7 @@ void melodyTriangle::setKeyboardEnable(bool en) { enableKeys=en; + snapTruePos=en; display_msg=en ? "Keyboard enabled" : "Keybard disabled"; display_frames=40; }