Beispiel #1
0
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;
}
Beispiel #2
0
    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");
    }
Beispiel #3
0
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;
}
Beispiel #4
0
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;
        }
    }
}
Beispiel #5
0
// 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());
            }
        }
    }