int pa_classify_is_card_typeof(struct userdata *u, struct pa_card *card, const char *type, struct pa_classify_card_data **d, int *priority) { struct pa_classify *classify; struct pa_classify_card_def *defs; const char *name; pa_assert(u); pa_assert_se((classify = u->classify)); pa_assert(classify->cards); pa_assert_se((defs = classify->cards->defs)); if (!card || !type) return FALSE; name = pa_card_ext_get_name(card); return card_is_typeof(defs, name, type, d, priority); }
static const char *object_name(struct pa_policy_object *object) { const char *name; switch (object->type) { case pa_policy_object_module: name = pa_module_ext_get_name((struct pa_module *)object->ptr); break; case pa_policy_object_card: name = pa_card_ext_get_name((struct pa_card *)object->ptr); break; case pa_policy_object_sink: name = pa_sink_ext_get_name((struct pa_sink *)object->ptr); break; case pa_policy_object_source: name = pa_source_ext_get_name((struct pa_source *)object->ptr); break; case pa_policy_object_sink_input: name = pa_sink_input_ext_get_name((struct pa_sink_input *)object->ptr); break; case pa_policy_object_source_output: name = pa_source_output_ext_get_name( (struct pa_source_output *)object->ptr); break; default: name = "<unknown>"; break; } return name; }
int pa_classify_card(struct userdata *u, struct pa_card *card, uint32_t flag_mask, uint32_t flag_value, char *buf, int size) { struct pa_classify *classify; struct pa_classify_card_def *defs; const char *name; char **profs; int len; pa_assert(u); pa_assert_se((classify = u->classify)); pa_assert(classify->cards); pa_assert_se((defs = classify->cards->defs)); name = pa_card_ext_get_name(card); profs = pa_card_ext_get_profiles(card); len = cards_classify(defs, name,profs, flag_mask,flag_value, buf,size); pa_xfree(profs); return len; }