diff options
| author | Tim Redfern <tim@eclectronics.org> | 2012-08-09 20:14:02 +0100 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2012-08-09 20:14:02 +0100 |
| commit | b3548f90171f0be1ebfd7020f38f3d0acec65f8b (patch) | |
| tree | 76698256f9cf4edb797f7996e36edc8e4bf92f83 /liveengine/src/testApp.cpp | |
initial commit
Diffstat (limited to 'liveengine/src/testApp.cpp')
| -rwxr-xr-x | liveengine/src/testApp.cpp | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/liveengine/src/testApp.cpp b/liveengine/src/testApp.cpp new file mode 100755 index 0000000..9ecb92f --- /dev/null +++ b/liveengine/src/testApp.cpp @@ -0,0 +1,165 @@ +#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("liveEngine", "port", "0")); //default to 0/all
+ midiChannel=ofToInt(XML.getAttribute("liveEngine", "channel", "0"));
+ if (midiChannel) printf("listening on port %d, midi channel %d\n",midiPort,midiChannel);
+ else printf("listening on port %d, all midi channels\n",midiPort);
+ if(XML.pushTag("liveEngine")) { + /*
+ numLayers=XML.getNumTags("layer");
+ if(numLayers) {
+ layers=new globeLayer*[numLayers];
+ for (int i=0;i<numLayers;i++){
+ XML.pushTag("layer",i);
+ string layerType=XML.getAttribute("content", "type", "");
+ XML.pushTag("content");
+ float x=ofToFloat(XML.getAttribute("pos", "x", ""));
+ float y=ofToFloat(XML.getAttribute("pos", "y", ""));
+ float w=ofToFloat(XML.getAttribute("pos", "w", ""));
+ float h=ofToFloat(XML.getAttribute("pos", "h", ""));
+ int midiNote=ofToInt(XML.getAttribute("midi", "note", "0"));
+ int midiMix=ofToInt(XML.getAttribute("midi", "mix", "0"));
+ if (layerType=="player") {
+ string fileName=XML.getAttribute("media", "name", "0");
+ layers[i]=new globePlayer(x,y,w,h,midiNote,midiMix,fileName);
+ }
+ if (layerType=="grabber") { + bool deInt=ofToInt(XML.getAttribute("grab", "deInt", "0"));
+ layers[i]=new globeGrabber(x,y,w,h,midiNote,midiMix,deInt);
+ }
+ XML.popTag();
+ XML.popTag();
+ }
+ } + */
+ }
+ //if (numLayers==0) printf("no layers loaded!\n");
+ }
+
+ midiIn.listPorts();
+ midiIn.openPort(midiPort);
+ midiIn.addListener(this);
+
+ // to register only to one controller pass the id as first argument
+ // midiIn.addListener(84,this);
+
+ // to debug
+ // midiIn.setVerbose(true);
+ showFPS=false;
+} + +//-------------------------------------------------------------- +void testApp::update(){
+ //for (int i=0;i<numLayers;i++) layers[i]->update(); +} + +//-------------------------------------------------------------- +void testApp::draw(){ + ofBackground(0,0,0);
+ + //for (int i=0;i<numLayers;i++) layers[i]->draw();
+
+ 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();
+ } +} + +//-------------------------------------------------------------- +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;i<numLayers;i++){
+ // if (layers[i]->note==eventArgs.byteOne) layers[i]->setActive(noteOn);
+ //} + printf("note: %i %i\n",eventArgs.byteOne,eventArgs.byteTwo);
+ break;
+ case 176: //control change
+ //for (int i=0;i<numLayers;i++){
+ // if (layers[i]->mix==eventArgs.byteOne) layers[i]->setMixAmt(((float)eventArgs.byteTwo)/127.0f);
+ //} + printf("cc: %i %i\ n",eventArgs.byteOne,eventArgs.byteTwo);
+ }
+ }
+}
+ |
