static void add_service(obs_property_t *list, json_t *service, bool show_all, const char *cur_service) { json_t *servers; const char *name; bool common; if (!json_is_object(service)) { blog(LOG_WARNING, "rtmp-common.c: [add_service] service " "is not an object"); return; } name = get_string_val(service, "name"); if (!name) { blog(LOG_WARNING, "rtmp-common.c: [add_service] service " "has no name"); return; } common = get_bool_val(service, "common"); if (!show_all && !common && strcmp(cur_service, name) != 0) { return; } servers = json_object_get(service, "servers"); if (!servers || !json_is_array(servers)) { blog(LOG_WARNING, "rtmp-common.c: [add_service] service " "'%s' has no servers", name); return; } obs_property_list_add_string(list, name, name); }
static bool get_identifier(t_json_parser *p) { t_sub const val = JSON_VAL_STRING(p); t_json_value_t val_t; if (get_bool_val(val, &p->val_bool)) val_t = JSON_VALUE_BOOL; else if (SUB_EQU(SUBC("null"), val)) val_t = JSON_VALUE_NULL; else if (ft_subto_int(val, &p->val_int) == val.length) val_t = JSON_VALUE_INT; else if (ft_subto_float(val, &p->val_float) == val.length) val_t = JSON_VALUE_FLOAT; else return (ft_json_fail(p, SUBC("Invalid value"))); p->value_type = val_t; return (true); }