void ofxRemoteUIServer::shareParam(string paramName, string* param, ofColor c, int nothingUseful ){ RemoteUIParam p; p.type = REMOTEUI_PARAM_STRING; p.stringValAddr = param; p.stringVal = *param; p.group = upcomingGroup; setColorForParam(p, c); addParamToDB(p, paramName); cout << "ofxRemoteUIServer Sharing String Param '" << paramName << "'" <<endl; }
void ofxRemoteUIServer::shareParam(string paramName, int* param, int min, int max, ofColor c ){ RemoteUIParam p; p.type = REMOTEUI_PARAM_INT; p.intValAddr = param; p.maxInt = max; p.minInt = min; p.group = upcomingGroup; setColorForParam(p, c); p.intVal = *param = ofClamp(*param, min, max); addParamToDB(p, paramName); cout << "ofxRemoteUIServer Sharing Int Param '" << paramName << "'" << endl; }
void ofxRemoteUIServer::shareParam(string paramName, unsigned char* param, ofColor bgColor, int nothingUseful){ RemoteUIParam p; p.type = REMOTEUI_PARAM_COLOR; p.redValAddr = param; p.redVal = param[0]; p.greenVal = param[1]; p.blueVal = param[2]; p.alphaVal = param[3]; p.group = upcomingGroup; setColorForParam(p, bgColor); addParamToDB(p, paramName); cout << "ofxRemoteUIServer Sharing Color Param '" << paramName << "'" <<endl; }
void ofxRemoteUIClient::trackParam(string paramName, unsigned char* param){ RemoteUIParam p; map<string,RemoteUIParam>::iterator it = params.find(paramName); if ( it == params.end() ){ //not found! we add it p.type = REMOTEUI_PARAM_COLOR; }else{ p = params[paramName]; if (p.type != REMOTEUI_PARAM_COLOR ){ cout << "wtf called trackParam(color) on a param that's not a color!" << endl; } } p.redValAddr = param; addParamToDB(p, paramName); }
void ofxRemoteUIClient::trackParam(string paramName, bool* param){ RemoteUIParam p; map<string,RemoteUIParam>::iterator it = params.find(paramName); if ( it == params.end() ){ //not found! we add it p.type = REMOTEUI_PARAM_BOOL; }else{ p = params[paramName]; if (p.type != REMOTEUI_PARAM_BOOL ){ cout << "wtf called trackParam(bool) on a param that's not a bool!" << endl; } } p.boolValAddr = param; addParamToDB(p, paramName); }
void ofxRemoteUIClient::trackParam(string paramName, int* param, vector<string> list){ //TODO! RemoteUIParam p; map<string,RemoteUIParam>::iterator it = params.find(paramName); if ( it == params.end() ){ //not found! we add it p.type = REMOTEUI_PARAM_ENUM; }else{ p = params[paramName]; if (p.type != REMOTEUI_PARAM_ENUM ){ cout << "wtf called trackParam(int) on a param that's not a int!" << endl; } } p.intValAddr = param; addParamToDB(p, paramName); }
void ofxRemoteUI::updateParamFromDecodedMessage(ofxOscMessage m, DecodedMessage dm){ string paramName = dm.paramName; RemoteUIParam original; bool newParam = true; unordered_map<string, RemoteUIParam>::iterator it = params.find(paramName); if ( it != params.end() ){ //found the param, we already had it original = params[paramName]; newParam = false; } RemoteUIParam p = original; int arg = 0; switch (dm.argument) { case FLT_ARG: p.type = REMOTEUI_PARAM_FLOAT; p.floatVal = m.getArgAsFloat(arg); arg++; if(m.getNumArgs() > 1){ p.minFloat = m.getArgAsFloat(arg); arg++; p.maxFloat = m.getArgAsFloat(arg); arg++; } if (p.floatValAddr){ *p.floatValAddr = p.floatVal; }break; case INT_ARG: p.type = REMOTEUI_PARAM_INT; p.intVal = m.getArgAsInt32(arg); arg++; p.minInt = m.getArgAsInt32(arg); arg++; p.maxInt = m.getArgAsInt32(arg); arg++; if (p.intValAddr){ *p.intValAddr = p.intVal; }break; case COLOR_ARG: p.type = REMOTEUI_PARAM_COLOR; p.redVal = (int)m.getArgAsInt32(arg); arg++; p.greenVal = (int)m.getArgAsInt32(arg); arg++; p.blueVal = (int)m.getArgAsInt32(arg); arg++; p.alphaVal = (int)m.getArgAsInt32(arg); arg++; if (p.redValAddr){ *p.redValAddr = p.redVal; *(p.redValAddr+1) = p.greenVal; *(p.redValAddr+2) = p.blueVal; *(p.redValAddr+3) = p.alphaVal; }break; case ENUM_ARG:{ p.type = REMOTEUI_PARAM_ENUM; p.intVal = m.getArgAsInt32(arg); arg++; p.minInt = m.getArgAsInt32(arg); arg++; p.maxInt = m.getArgAsInt32(arg); arg++; if (p.intValAddr){ *p.intValAddr = p.intVal; } int n = m.getNumArgs() - 5 - 3; // 3 >> the int vals, 5 >> 4 colors + 1 group int i = 0; p.enumList.clear(); for (i = 0; i < n; i++) { p.enumList.push_back( m.getArgAsString(arg + i) ); } arg = arg + i; }break; case BOL_ARG: p.type = REMOTEUI_PARAM_BOOL; p.boolVal = m.getArgAsInt32(arg) == 0 ? false : true; arg++; if (p.boolValAddr){ *p.boolValAddr = p.boolVal; }break; case STR_ARG: p.type = REMOTEUI_PARAM_STRING; p.stringVal = m.getArgAsString(arg); arg++; if (p.stringValAddr){ *p.stringValAddr = p.stringVal; }break; case SPACER_ARG: p.type = REMOTEUI_PARAM_SPACER; p.stringVal = m.getArgAsString(arg); arg++; break; case NULL_ARG: RUI_LOG_ERROR << "updateParamFromDecodedMessage NULL type!"; break; default: RUI_LOG_ERROR << "updateParamFromDecodedMessage unknown type!"; break; } if(m.getNumArgs() > 1){ p.r = m.getArgAsInt32(arg); arg++; p.g = m.getArgAsInt32(arg); arg++; p.b = m.getArgAsInt32(arg); arg++; p.a = m.getArgAsInt32(arg); arg++; p.group = m.getArgAsString(arg); arg++; } if ( !p.isEqualTo(original) || newParam ){ // if the udpdate changed the param, keep track of it paramsChangedSinceLastCheck.insert(paramName); } //here we update our param db //params[paramName] = p; if(newParam) addParamToDB(p, paramName); else params[paramName] = p; }