Lines Matching refs:card
144 static void card_set_profile(struct userdata *u, pa_card *card, bool revert_to_a2dp) in card_set_profile() argument
150 PA_HASHMAP_FOREACH(profile, card->profiles, state) { in card_set_profile()
163 pa_log_debug("Setting card '%s' to profile '%s'", card->name, profile->name); in card_set_profile()
165 if (pa_card_set_profile(card, profile, false) != 0) { in card_set_profile()
172 pa_hashmap_put(u->will_need_revert_card_map, card, PA_INT_TO_PTR(1)); in card_set_profile()
179 static void switch_profile(pa_card *card, bool revert_to_a2dp, void *userdata) { in switch_profile() argument
184 s = pa_proplist_gets(card->proplist, PA_PROP_DEVICE_BUS); in switch_profile()
190 if (!pa_hashmap_remove(u->will_need_revert_card_map, card)) in switch_profile()
194 if (!pa_streq(card->active_profile->name, "headset_head_unit")) in switch_profile()
198 if (pa_streq(card->active_profile->name, "a2dp_sink")) in switch_profile()
202 if (!pa_streq(card->active_profile->name, "a2dp_sink")) in switch_profile()
206 if (pa_streq(card->active_profile->name, "headset_head_unit")) in switch_profile()
210 card_set_profile(u, card, revert_to_a2dp); in switch_profile()
257 pa_card *card; in switch_profile_all() local
260 PA_IDXSET_FOREACH(card, cards, idx) in switch_profile_all()
261 switch_profile(card, revert_to_a2dp, userdata); in switch_profile_all()
292 static pa_hook_result_t card_init_profile_hook_callback(pa_core *c, pa_card *card, void *userdata) { in card_init_profile_hook_callback() argument
297 pa_assert(card); in card_init_profile_hook_callback()
303 s = pa_proplist_gets(card->proplist, PA_PROP_DEVICE_BUS); in card_init_profile_hook_callback()
308 if (card->active_profile && in card_init_profile_hook_callback()
309 !pa_streq(card->active_profile->name, "a2dp_sink")) in card_init_profile_hook_callback()
313 card_set_profile(u, card, false); in card_init_profile_hook_callback()
316 pa_hashmap_put(u->will_need_revert_card_map, card, PA_INT_TO_PTR(1)); in card_init_profile_hook_callback()
320 static pa_hook_result_t card_unlink_hook_callback(pa_core *c, pa_card *card, void *userdata) { in card_unlink_hook_callback() argument
322 pa_assert(card); in card_unlink_hook_callback()
323 switch_profile(card, true, userdata); in card_unlink_hook_callback()
327 static pa_card_profile *find_best_profile(pa_card *card) { in find_best_profile() argument
330 pa_card_profile *result = card->active_profile; in find_best_profile()
332 PA_HASHMAP_FOREACH(profile, card->profiles, state) { in find_best_profile()
346 pa_card *card; in profile_available_hook_callback() local
353 pa_assert_se((card = profile->card)); in profile_available_hook_callback()
356 s = pa_proplist_gets(card->proplist, PA_PROP_DEVICE_BUS); in profile_available_hook_callback()
364 is_active_profile = card->active_profile == profile; in profile_available_hook_callback()
370 …if (card->active_profile->available == PA_AVAILABLE_YES && card->active_profile->priority >= profi… in profile_available_hook_callback()
378 pa_assert_se((selected_profile = find_best_profile(card))); in profile_available_hook_callback()
380 if (selected_profile == card->active_profile) in profile_available_hook_callback()
384 pa_log_debug("Setting card '%s' to profile '%s'", card->name, selected_profile->name); in profile_available_hook_callback()
386 if (pa_card_set_profile(card, selected_profile, false) != 0) in profile_available_hook_callback()
393 pa_card *card; in handle_all_profiles() local
396 PA_IDXSET_FOREACH(card, core->cards, state) { in handle_all_profiles()
400 PA_HASHMAP_FOREACH(profile, card->profiles, state2) in handle_all_profiles()