예제 #1
0
파일: ofApp.cpp 프로젝트: vberthiaume/vid
string ofApp::getMsgContent(ofxOscMessage m){
    bool DISPLAY_ALL = false;
    string msg_string = "";
    int iTotalArg = m.getNumArgs(), i = -1;
    
    if (DISPLAY_ALL){
        msg_string += ", port: " + m.getAddress();
    }
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += "NAME: " + m.getArgAsString(i);
    if (++i < iTotalArg)                msg_string += " " + m.getArgAsString(i);    //STATUS
    if (++i < iTotalArg)                msg_string += " " + m.getArgAsString(i);    //FILE
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", POSITION: " + ofToString(m.getArgAsInt(i));
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", DURATION: " + ofToString(m.getArgAsInt(i));
    if (++i < iTotalArg)                msg_string += ", LOOPING: " + ofToString(m.getArgAsInt(i));
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", VOLUME: " + ofToString(m.getArgAsInt(i));
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", MUTE: " + m.getArgAsString(i);
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", ZOOM: " + ofToString(m.getArgAsInt(i));
    if (++i < iTotalArg && DISPLAY_ALL) msg_string += ", BLUR: " + ofToString(m.getArgAsInt(i));
    
    return msg_string;
}
예제 #2
0
파일: ofApp.cpp 프로젝트: vberthiaume/vid
void ofApp::confirmMessage(ofxOscMessage m){
    //figure out which pi
    string sIp = m.getRemoteIp();
    string msgContent = getMsgContent(m);
    int iCurPi = -1;
    if (hasEnding(sIp, pi1_ip)){
        iCurPi = 0;
        m_bOscConfirmations[0] = true;
        logMsg("got msg from 1: " + msgContent);
    }
    else if (hasEnding(sIp, pi2_ip)){
        iCurPi = 1;
        m_bOscConfirmations[1] = true;
        logMsg("got msg from 2: " + msgContent);
    }
    else if (hasEnding(sIp, pi3_ip)){
        iCurPi = 2;
        m_bOscConfirmations[2] = true;
        logMsg("got msg from 3: " + msgContent);
    }
    else if (hasEnding(sIp, pi4_ip)){
        iCurPi = 3;
        m_bOscConfirmations[3] = true;
        logMsg("got msg from 4: " + msgContent);
    } else {
        logMsg("got msg from UNKNOWN " + sIp + ": " + msgContent);
    }
    
    //update corresponding status
    string sCurStatus = "";
    int iCurArg = 1;
    string sStatus  = m.getArgAsString(iCurArg++);
    string sFile    = m.getArgAsString(iCurArg++);
    iCurArg += 2;
    bool bLoop      = m.getArgAsInt(iCurArg++);
    if (hasEnding(sStatus, "stoped")){
        sCurStatus += "Stopped";
    } else {
        if (bLoop){
            sCurStatus += "Loop\t";
        } else {
            sCurStatus += "Play\t";
        }
        sCurStatus += sFile;
    }
    m_sRpiStatuses[iCurPi] = sCurStatus;
}
예제 #3
0
int getOscMessageArg(const ofxOscMessage& message, int i) {
  return message.getArgAsInt(i);
}
예제 #4
0
void ofxTidalISF::oscReceiveEvent(ofxOscMessage &m){
    //ISF
    if(m.getAddress() == "/ofplay"){
        //get layer num
        int l = 0;
        for (int i = 0; i < m.getNumArgs(); i+=2) {
            string argName = m.getArgAsString(i);
            if (argName == "l") {
                l = m.getArgAsInt(i+1);
            }
        }
        //set current inst
        for (int i = 0; i < m.getNumArgs(); i+=2) {
            string argName = m.getArgAsString(i);
            if (argName == "s") {
                isfLayers[l]->currentISF = m.getArgAsString(i+1);
            }
        }
        //send params
        for (int i = 0; i < m.getNumArgs(); i+=2) {
            string argName = m.getArgAsString(i);
            //find argName in floatArgs
            vector<string>::iterator cIter = find(floatArgs.begin(),floatArgs.end() , argName);
            if (cIter != floatArgs.end()) {
                float argValue = m.getArgAsFloat(i+1);
                for(int j = 0; j < isfLayers[l]->isfs.size(); j++){
                    if(isfLayers[l]->isfs[j]->getName() == isfLayers[l]->currentISF){
                        isfLayers[l]->isfs[j]->setUniform<float>(argName, argValue);
                    }
                }
            }
        }
    }
    
    //PostProcess
    if(m.getAddress() == "/post"){
        //reset postprocess
        restPostProcess();
        //set postProcess name
        for (int i = 0; i < m.getNumArgs(); i+=2) {
            string argName = m.getArgAsString(i);
            string postName;
            if (argName == "s") {
                postName = m.getArgAsString(i+1);
                if (postName == "bloom") bloom->setEnabled(true);
                if (postName == "kaleido") kaleido->setEnabled(true);
                if (postName == "noise") noise->setEnabled(true);
                if (postName == "rgb") rgb->setEnabled(true);
                if (postName == "edge") edge->setEnabled(true);
                if (postName == "pixel") pixel->setEnabled(true);
                if (postName == "darken") darken->setEnabled(true);
                if (postName == "contrast") contrast->setEnabled(true);
                if (postName == "conv") conv->setEnabled(true);
                if (postName == "dof") dof->setEnabled(true);
                if (postName == "sss") sss->setEnabled(true);
                if (postName == "fxaa") fxaa->setEnabled(true);
                if (postName == "vtilt") vtilt->setEnabled(true);
                if (postName == "htilt") htilt->setEnabled(true);
                if (postName == "god") god->setEnabled(true);
                if (postName == "bleach") bleach->setEnabled(true);
                if (postName == "lut") lut->setEnabled(true);
                if (postName == "toon") toon->setEnabled(true);
            }
        }
    }
}