Exemple #1
0
int
hb_validate_filter_preset(int filter_id, const char *preset, const char *tune)
{
    if (preset == NULL && tune == NULL)
        return 1;

    int preset_count, tune_count;
    hb_filter_param_t *preset_table, *tune_table;
    hb_filter_param_t *preset_entry, *tune_entry;

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
    if (preset_entry == NULL || preset_entry->name == NULL)
        return 1;
    if (tune != NULL)
    {
        if (!strcasecmp(preset, "custom") && tune != NULL)
        {
            return hb_validate_filter_settings(filter_id, tune);
        }
        tune_table = filter_param_get_tunes_internal(filter_id, &tune_count);
        tune_entry = filter_param_get_entry(tune_table, tune, tune_count);
        if (tune_entry == NULL)
            return 1;
    }
    return 0;
}
Exemple #2
0
// Legacy: old presets store filter falues as indexes :(
static char *
generate_generic_settings_by_index(int filter_id, int preset,
                                   const char *custom)
{
    char *opt = NULL;
    int preset_count;
    hb_filter_param_t *preset_table;
    hb_filter_param_t *preset_entry;

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    preset_entry = filter_param_get_entry_by_index(preset_table, preset,
                                                   preset_count);
    if (preset_entry != NULL)
    {
        if (!strcasecmp(preset_entry->short_name, "custom") && custom != NULL)
        {
            opt = strdup(custom);
        }
        else if (preset_entry->settings == hb_filter_off)
        {
            return (char*)hb_filter_off;
        }
        else if (preset_entry->settings != NULL)
        {
            opt = hb_strdup_printf("%s", preset_entry->settings);
        }
    }
    return opt;
}
Exemple #3
0
static char *
generate_generic_settings(int filter_id, const char *preset, const char *tune)
{
    char *opt = NULL;
    int preset_count, tune_count;
    hb_filter_param_t *preset_table, *tune_table;
    hb_filter_param_t *preset_entry, *tune_entry;

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    tune_table = filter_param_get_tunes_internal(filter_id, &tune_count);
    preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
    tune_entry = filter_param_get_entry(tune_table, tune, tune_count);
    if (preset_entry != NULL)
    {
        if (!strcasecmp(preset, "custom") && tune != NULL)
        {
            opt = strdup(tune);
        }
        else if (preset_entry->settings == hb_filter_off)
        {
            return (char*)hb_filter_off;
        }
        else if (preset_entry->settings != NULL)
        {
            opt = hb_strdup_printf("%s%s%s", preset_entry->settings,
                    tune_entry != NULL ? ":" : "",
                    tune_entry != NULL ? tune_entry->settings : "");
        }
    }
    else if (preset != NULL)
    {
        return strdup(preset);
    }
    return opt;
}
Exemple #4
0
int
hb_filter_preset_index(int filter_id, const char *preset)
{
    if (preset == NULL)
        return -1;

    int preset_count;
    hb_filter_param_t *preset_table;
    hb_filter_param_t *preset_entry;

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
    if (preset_entry == NULL)
        return -1;
    return preset_entry->index;
}
Exemple #5
0
static hb_dict_t *
generate_generic_settings(int filter_id, const char *preset, const char *custom)
{
    int preset_count;
    hb_filter_param_t *preset_table;
    hb_filter_param_t *preset_entry;

    if (preset == NULL || !strcasecmp(preset, "custom"))
    {
        return hb_parse_filter_settings(custom);
    }

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
    if (preset_entry != NULL && preset_entry->settings != NULL)
    {
        return hb_parse_filter_settings(preset_entry->settings);
    }
    return NULL;
}
Exemple #6
0
// Get json array of filter preset name and short_name
char * hb_filter_get_presets_json(int filter_id)
{
    hb_value_array_t  * array = hb_value_array_init();
    int                 ii, count = 0;
    hb_filter_param_t * table;

    table = filter_param_get_presets_internal(filter_id, NULL);

    for (count = 0; table[count].name != NULL; count++);
    for (ii = 0; ii < count; ii++)
    {
        hb_dict_t * dict = hb_dict_init();
        hb_dict_set(dict, "short_name", hb_value_string(table[ii].short_name));
        hb_dict_set(dict, "name", hb_value_string(table[ii].name));
        hb_value_array_append(array, dict);
    }

    char * result = hb_value_get_json(array);
    hb_value_free(&array);
    return result;
}
Exemple #7
0
int
hb_validate_filter_preset(int filter_id, const char *preset, const char *tune,
                          const char *custom)
{
    if (preset == NULL && tune == NULL)
        return 1;

    int preset_count, tune_count;
    hb_filter_param_t *preset_table, *tune_table;
    hb_filter_param_t *preset_entry, *tune_entry;

    preset_table = filter_param_get_presets_internal(filter_id, &preset_count);
    preset_entry = filter_param_get_entry(preset_table, preset, preset_count);
    if (preset_entry == NULL || preset_entry->name == NULL)
        return 1;
    if (!strcasecmp(preset, "custom") && custom != NULL)
    {
        hb_dict_t * settings = hb_parse_filter_settings(custom);
        if (settings == NULL)
        {
            return 1;
        }
        int result = hb_validate_filter_settings(filter_id, settings);
        hb_value_free(&settings);
        return result;
    }
    if (tune != NULL)
    {
        tune_table = filter_param_get_tunes_internal(filter_id, &tune_count);
        tune_entry = filter_param_get_entry(tune_table, tune, tune_count);
        if (tune_entry == NULL)
        {
            return 1;
        }
    }
    return 0;
}
Exemple #8
0
hb_filter_param_t* hb_filter_param_get_presets(int filter_id)
{
    return filter_param_get_presets_internal(filter_id, NULL);
}