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; }
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; }
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; }
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; }
int hb_filter_tune_index(int filter_id, const char *tune) { if (tune == NULL) return -1; int tune_count; hb_filter_param_t *tune_table; hb_filter_param_t *tune_entry; 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 tune_entry->index; }
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; }