From 3a0fe9a2700596abe8e29f042ca967f57cc014d7 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Tue, 20 Dec 2011 13:55:44 +0000 Subject: initial show version --- src/testApp.cpp | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100755 src/testApp.cpp (limited to 'src/testApp.cpp') diff --git a/src/testApp.cpp b/src/testApp.cpp new file mode 100755 index 0000000..ab5fcbb --- /dev/null +++ b/src/testApp.cpp @@ -0,0 +1,199 @@ +#include "testApp.h" + + +//-------------------------------------------------------------- +void testApp::setup(){ + int midiPort=0; + midiChannel=0; + numLayers=0; + if( !XML.loadFile("settings.xml") ){ + printf("unable to load settings.xml check data/ folder\n"); + }else{ + printf("settings loaded!\n"); + midiPort=ofToInt(XML.getAttribute("globePlayer", "port", "0")); //default to 0/all + midiChannel=ofToInt(XML.getAttribute("globePlayer", "channel", "0")); + if (midiChannel) printf("listening on midi channel %d\n",midiChannel); + else printf("listening on all midi channels\n"); + if(XML.pushTag("globePlayer")) { + numLayers=XML.getNumTags("layer"); + if(numLayers) { + layers=new globeLayer*[numLayers]; + for (int i=0;ikeys; + XML.getAttributeNames("settings", keys, 0); + map settings; + for (int k=0;kupdate(); +} + +//-------------------------------------------------------------- +void testApp::draw(){ + ofBackground(0,0,0); + + for (int i=0;idraw(); + + if (showFPS) ofDrawBitmapString(ofToString(ofGetFrameRate(), 2),20,20); + +} + +//-------------------------------------------------------------- +void testApp::keyPressed (int key){ + if(key == 's'){ + XML.saveFile("settings.xml"); + printf("settings saved!\n"); + } + if(key == 'f'){ + toggleFPS(); + } + if(key=='1'){ + layers[0]->setActive(100); + layers[0]->CC(8,127); + } + if(key=='q'){ + layers[0]->setActive(0); + layers[0]->CC(8,0); + } + if(key=='2'){ + layers[1]->setActive(100); + layers[1]->CC(9,127); + } + if(key=='w'){ + layers[1]->setActive(0); + layers[1]->CC(9,0); + } + if(key=='3'){ + layers[2]->setActive(100); + layers[2]->CC(10,127); + } + if(key=='e'){ + layers[2]->setActive(0); + layers[2]->CC(10,0); + } + if(key=='7'){ + layers[2]->CC(20,3); + printf("changing to device 3\n"); + + } + if(key=='8'){ + layers[2]->CC(20,4); + printf("changing to device 4\n"); + } + //this doesn't seem to arrive + if(key=='4'){ + layers[3]->setActive(100); + layers[3]->CC(16,127); + } + if(key=='r'){ + layers[3]->setActive(0); + layers[3]->CC(16,0); + } + +} + +//-------------------------------------------------------------- +void testApp::keyReleased(int key){ + +} + +//-------------------------------------------------------------- +void testApp::mouseMoved(int x, int y ){ + +} + +//-------------------------------------------------------------- +void testApp::mouseDragged(int x, int y, int button){ + +} + +//-------------------------------------------------------------- +void testApp::mouseReleased(int x, int y, int button){ + + +} +void testApp::mousePressed(int x, int y, int button) { +} + +//-------------------------------------------------------------- +void testApp::windowResized(int w, int h){ + +} + +//-------------------------------------------------------------- +void testApp::gotMessage(ofMessage msg){ + +} + +//-------------------------------------------------------------- +void testApp::dragEvent(ofDragInfo dragInfo){ + +} + +void testApp::toggleFPS(){ + showFPS=!showFPS; +} + +void testApp::newMidiMessage(ofxMidiEventArgs& eventArgs){ + + //newMessage(eventArgs.port, eventArgs.channel, eventArgs.byteTwo, eventArgs.timestamp); + +//byteOne : message type + + /* + int port; + int channel; + int status; + int byteOne; + int byteTwo; + double timestamp; + */ + + //printf("%d %d %d %d %d\n",eventArgs.port,eventArgs.channel,eventArgs.status,eventArgs.byteOne,eventArgs.byteTwo); + + bool noteOn; //this old thing! + + if ((midiChannel==0)||(eventArgs.channel==midiChannel)) { + switch(eventArgs.status) { + case 144: //noteon-off + noteOn=(eventArgs.byteTwo==0?false:true); + for (int i=0;inote==eventArgs.byteOne) layers[i]->setActive(noteOn); + } + break; + case 176: //control change + for (int i=0;imix==eventArgs.byteOne) layers[i]->setMixAmt(((float)eventArgs.byteTwo)/127.0f); + layers[i]->CC(eventArgs.byteOne,eventArgs.byteTwo); + } + } + } +} + -- cgit v1.2.3