Variant Variant::operator=(string value) { if (internaltype == VARTYPE_UNINITIALISED) { SetType(VARTYPE_STRING); } switch (internaltype) { case VARTYPE_STRING: stringvalue = value; break; case VARTYPE_ULONG: ulongvalue = atol(value.c_str()); break; case VARTYPE_INT: intvalue = atoi(value.c_str()); break; case VARTYPE_DOUBLE: dblvalue = atof(value.c_str()); break; case VARTYPE_BOOL: if (strToBool(value.c_str())) intvalue = true; else intvalue = false; } return *this; }
static void buildJsonAppendValue(IXmlType* type, StringBuffer& out, const char* tag, const char *value, unsigned flags) { JSONField_Category ct = xsdTypeToJSONFieldCategory(type->queryName()); if (ct==JSONField_Present && (!value || !*value)) return; if (tag && *tag) out.appendf("\"%s\": ", tag); StringBuffer sample; if ((!value || !*value) && (flags & REQSF_SAMPLE_DATA)) { type->getSampleValue(sample, NULL); value = sample.str(); } if (value) { switch (ct) { case JSONField_String: appendJSONValue(out, NULL, value); break; case JSONField_Integer: appendJSONNumericString(out, value, false); break; case JSONField_Real: appendJSONNumericString(out, value, true); break; case JSONField_Boolean: if (strieq(value, "default")) out.append("null"); else appendJSONValue(out, NULL, strToBool(value)); break; case JSONField_Present: appendJSONValue(out, NULL, true); break; } } else out.append("null"); }
Variant::operator bool() { switch (internaltype) { case VARTYPE_STRING: if (strToBool(stringvalue.c_str())) intvalue = true; else intvalue = false; break; case VARTYPE_DOUBLE: intvalue = (int) dblvalue; break; case VARTYPE_ULONG: intvalue = (int) ulongvalue; break; case VARTYPE_BOOL: case VARTYPE_INT: break; case VARTYPE_UNINITIALISED: intvalue = false; break; } return intvalue; }
void WebBrowserObject::BrowserEvent(const char *etype, const char *data) { if (!strcmp(etype, "key")) { int key = NoSymbol, state = 0; // Check for modifiers if (!strncmp(data, "ctrl:", 5)) { state = ControlMask; data += 5; } else if (!strncmp(data, "shift:", 6)) { state = ShiftMask; data += 6; } else if (!strncmp(data, "mod1:", 5)) { state = Mod1Mask; data += 5; } // Predefined key codes if (!strcmp(data, "home")) { key = XK_Home; } else if (!strcmp(data, "end")) { key = XK_End; } else if (!strcmp(data, "prevpage")) { key = XK_Page_Up; } else if (!strcmp(data, "nextpage")) { key = XK_Page_Down; } else if (!strcmp(data, "up")) { key = XK_Up; } else if (!strcmp(data, "down")) { key = XK_Down; } else if (!strcmp(data, "prev")) { key = XK_Left; } else if (!strcmp(data, "next")) { key = XK_Right; } else if (!strcmp(data, "accept")) { key = XK_Return; } else if (!strcmp(data, "nexttrack")) { key = XK_Tab; } else if (!strcmp(data, "prevtrack")) { key = XK_Tab; state = ShiftMask; } else { key = XStringToKeysym(data); } if (key && toplevel) { XKeyEvent event; event.display = GDK_WINDOW_XDISPLAY(toplevel->window); event.window = GDK_WINDOW_XID(toplevel->window); event.root = DefaultRootWindow(event.display); event.subwindow = None; event.time = CurrentTime; event.x = 1; event.y = 1; event.x_root = 1; event.y_root = 1; event.same_screen = TRUE; event.type = KeyPress; event.state = state; XLockDisplay(event.display); event.keycode = XKeysymToKeycode(event.display,key); XSendEvent(event.display, event.window, TRUE, KeyPressMask, (XEvent *)&event); XUnlockDisplay(event.display); } } else if (!strcmp(etype, "focus")) { if (!strcmp(data, "mozilla") && toplevel) { XLockDisplay(GDK_WINDOW_XDISPLAY(toplevel->window)); XRaiseWindow(GDK_WINDOW_XDISPLAY(toplevel->window), GDK_WINDOW_XID(toplevel->window)); XSync(GDK_WINDOW_XDISPLAY(toplevel->window), False); XUnlockDisplay(GDK_WINDOW_XDISPLAY(toplevel->window)); gtk_widget_grab_focus(toplevel); } else if (!strcmp(data, "url") && toplevel) { gtk_widget_grab_focus(urlEntry); } } else if (!strcmp(etype, "toolbar")) { if (!strToBool(data)) { if (toolbar_flag && toplevel) { gtk_container_remove(GTK_CONTAINER(toolbarHBox), toolbar); gtk_container_remove(GTK_CONTAINER(toolbarHBox), urlEntry); } toolbar_flag = 0; } else { if (!toolbar_flag && toplevel) { gtk_box_pack_start(GTK_BOX(toolbarHBox), toolbar, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(toolbarHBox), urlEntry, TRUE, TRUE, 0); } toolbar_flag = 1; } } }
// Main program int main(int argc, char** argv) { // Overall program timer auto overallstart = std::chrono::steady_clock::now(); // Print program header std::cout<<std::endl; std::cout<<"PGURE-SVT Denoising"<<std::endl; std::cout<<"Author: Tom Furnival"<<std::endl; std::cout<<"Email: [email protected]"<<std::endl<<std::endl; std::cout<<"Version 0.3.0 - April 2016"<<std::endl<<std::endl; ///////////////////////////// // // // PARAMETER IMPORT // // // ///////////////////////////// // Read in the parameter file name if( argc != 2) { std::cout<<" Usage: ./PGURE-SVT paramfile"<<std::endl; return -1; } std::map<std::string, std::string> programOptions; std::ifstream paramFile(argv[1], std::ios::in); // Parse the parameter file ParseParameters(paramFile, programOptions); // Check all required parameters are specified if(programOptions.count("filename") == 0 || programOptions.count("start_image") == 0 || programOptions.count("end_image") == 0) { std::cout<<"**WARNING** Required parameters not specified"<<std::endl; std::cout<<" You must specify filename, start and end frame"<<std::endl; return -1; } // Extract parameters // File path std::string filename = programOptions.at("filename"); int lastindex = filename.find_last_of("."); std::string filestem = filename.substr(0, lastindex); // Frames to process int startimg = std::stoi(programOptions.at("start_image")); int endimg = std::stoi(programOptions.at("end_image")); int num_images = endimg - startimg + 1; // Move onto optional parameters // Patch size and trajectory length // Check sizes to ensure SVD is done right way round int Bs = (programOptions.count("patch_size") == 1) ? std::stoi(programOptions.at("patch_size")) : 4; //int Overlap = (programOptions.count("patch_overlap") == 1) ? std::stoi(programOptions.at("patch_overlap")) : 1; int T = (programOptions.count("trajectory_length") == 1) ? std::stoi(programOptions.at("trajectory_length")) : 15; T = (Bs*Bs<T) ? (Bs*Bs)-1 : T; std::string casoratisize = std::to_string(Bs*Bs) + "x" + std::to_string(T); // Noise parameters initialized at -1 unless user-defined double alpha = (programOptions.count("alpha") == 1) ? std::stod(programOptions.at("alpha")) : -1.; double mu = (programOptions.count("mu") == 1) ? std::stod(programOptions.at("mu")) : -1.; double sigma = (programOptions.count("sigma") == 1) ? std::stod(programOptions.at("sigma")) : -1.; // SVT thresholds and noise parameters initialized at -1 unless user-defined bool pgureOpt = (programOptions.count("pgure") == 1) ? strToBool(programOptions.at("pgure")) : true; double lambda; if(!pgureOpt) { if(programOptions.count("lambda") == 1) { lambda = std::stod(programOptions.at("lambda")); } else { std::cout<<"**WARNING** PGURE optimization is turned OFF but no lambda specified in parameter file"<<std::endl; return -1; } } // Move onto advanced parameters // Motion neigbourhood size int MotionP = (programOptions.count("motion_neighbourhood") == 1) ? std::stoi(programOptions.at("motion_neighbourhood")) : 7; // Size of median filter int MedianSize = (programOptions.count("median_filter") == 1) ? std::stoi(programOptions.at("median_filter")) : 5; // PGURE tolerance double tol = 1E-7; if(programOptions.count("tolerance") == 1) { std::istringstream osTol(programOptions.at("tolerance")); double tol; osTol >> tol; }
bool Tokenizer::getBool() { // expect "true" or "false" String s = next(); return strToBool(s.cstr()); }
void appendVariableParmInfo(IArrayOf<IPropertyTree> &parts, IResultSetFactory *resultSetFactory, IConstWUResult &var, unsigned hashWebserviceSeq=0) { Owned<IResultSetMetaData> meta = resultSetFactory->createResultSetMeta(&var); StringAttr noinput; if (var.getResultFieldOpt("noinput", StringAttrAdaptor(noinput)).length() && strToBool(noinput.length(), noinput.get())) //developer specified not to show field on form return; SCMStringBuffer varname; var.getResultName(varname); int seq = var.getResultSequence(); WUResultFormat fmt = var.getResultFormat(); SCMStringBuffer eclschema; var.getResultEclSchema(eclschema); StringBuffer width, height, fieldSeq, isPassword, select; var.getResultFieldOpt("fieldwidth", StringBufferAdaptor(width)); var.getResultFieldOpt("fieldheight", StringBufferAdaptor(height)); var.getResultFieldOpt("password", StringBufferAdaptor(isPassword)); var.getResultFieldOpt("select", StringBufferAdaptor(select)); if (hashWebserviceSeq) fieldSeq.append(hashWebserviceSeq); else var.getResultFieldOpt("sequence", StringBufferAdaptor(fieldSeq)); SCMStringBuffer s; Owned<IPropertyTree> part = createPTree("part"); if (!var.isResultScalar()) { meta->getXmlSchema(s, false); part->setProp("@name", varname.str()); part->setProp("@type", "tns:XmlDataset"); if (fieldSeq.length()) part->setProp("@sequence", fieldSeq); } else { meta->getColumnEclType(s, 0); DisplayType dt = meta->getColumnDisplayType(0); StringAttr ptype; switch (dt) { case TypeBoolean: ptype.set("xsd:boolean"); break; case TypeInteger: ptype.set("xsd:integer"); break; case TypeUnsignedInteger: ptype.set("xsd:integer"); break; case TypeReal: ptype.set("xsd:real"); break; case TypeSet: ptype.set("tns:EspStringArray"); break; case TypeDataset: case TypeData: ptype.set("tns:XmlDataSet"); break; case TypeUnicode: case TypeString: ptype.set("xsd:string"); break; case TypeUnknown: case TypeBeginIfBlock: case TypeEndIfBlock: case TypeBeginRecord: default: ptype.set("xsd:string"); break; } part->setProp("@name", varname.str()); part->setProp("@type", ptype.str()); if (width.length()) part->setProp("@width", width); if (height.length()) part->setProp("@height", height); if (fieldSeq.length()) part->setProp("@sequence", fieldSeq); if (isPassword.length()) part->setProp("@password", isPassword); if (select.length()) { StringArray optionList; optionList.appendList(select, ","); IPropertyTree *selectTree = ensurePTree(part, "select"); ForEachItemIn(i, optionList) { const char *value = optionList.item(i); bool selected = '*'==*value; if (selected) value++; StringAttr name; const char *eq = strchr(value, '='); if (!eq) name.set(value); else { name.set(value, eq-value); value = eq + 1; } Owned<IPropertyTree> optionTree = createPTree(); optionTree->setProp("@name", name); optionTree->setProp("@value", value); if (selected) optionTree->setPropBool("@selected", true); selectTree->addPropTree("option", optionTree.getClear()); } } }