Blob Blame History Raw
#ifndef __LENSTOOL_AUXFUN_H__
#define __LENSTOOL_AUXFUN_H__

// atof() with sanity checks
static float _atof (const char *s)
{
    char *end = NULL;
    float r = strtof (s, &end);
    if (end && *end)
    {
        g_print ("ERROR: Invalid number `%s', parsed as %g\n", s, r);
        g_print ("Use your locale-specific number format (e.g. ',' or '.' etc)\n");
        exit (-1);
    }
    return r;
}

static bool smartstreq (const char *str, const char *pattern)
{
    const char *src = str;
    while (*src)
    {
        char cs = toupper (*src++);
        char cp = toupper (*pattern++);
        if (!cs)
            return (src != str);
        if (!cp)
            return false;
        if (cs != cp)
            return false;
    }
    return true;
}

static void PrintCamera (const lfCamera *camera, const lfDatabase *ldb)
{
    g_print ("  %s / %s %s%s%s\n",
             lf_mlstr_get (camera->Maker),
             lf_mlstr_get (camera->Model),
             camera->Variant ? "(" : "",
             camera->Variant ? lf_mlstr_get (camera->Variant) : "",
             camera->Variant ? ")" : "");
    g_print ("    |- Mount: %s\n", lf_db_mount_name (ldb, camera->Mount));
    g_print ("    |- Crop factor: %g\n", camera->CropFactor);
}

static void PrintLens (const lfLens *lens, const lfDatabase *ldb)
{
    g_print ("  %s / %s\n",
             lf_mlstr_get (lens->Maker),
             lf_mlstr_get (lens->Model));
    g_print ("    |- Crop factor: %g\n", lens->CropFactor);
    g_print ("    |- Aspect ratio: %g\n", lens->AspectRatio);

    if (lens->MinFocal != lens->MaxFocal)
        g_print ("    |- Focal: %g-%gmm\n", lens->MinFocal, lens->MaxFocal);
    else
        g_print ("    |- Focal: %gmm\n", lens->MinFocal);

    g_print ("    |- Min-Aperture: f/%g\n", lens->MinAperture);
    g_print ("    |- Center: %g,%g\n", lens->CenterX, lens->CenterY);
    g_print ("    |- Compatible mounts: ");
    if (lens->Mounts)
        for (int j = 0; lens->Mounts [j]; j++)
            g_print ("%s, ", lf_db_mount_name (ldb, lens->Mounts [j]));    
    g_print ("\n");

    g_print ("    |- Calibration data: ");
    if (lens->CalibTCA)
        g_print ("tca, ");
    if (lens->CalibVignetting)
        g_print ("vign, ");
    if (lens->CalibDistortion)
        g_print ("dist,");
    g_print ("\n");

}


#endif