[pulseaudio-discuss] [PATCH] card: Log availability status when choosing initial profile

João Paulo Rechi Vita jprvita at gmail.com
Thu Jul 26 20:57:01 UTC 2018


On Fri, Jun 29, 2018 at 5:02 AM, Tanu Kaskinen <tanuk at iki.fi> wrote:
> On Wed, 2018-06-27 at 15:01 -0700, João Paulo Rechi Vita wrote:
>> ---
>>  src/pulsecore/card.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>>
>> diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
>> index 0112cffb1..4ead3a606 100644
>> --- a/src/pulsecore/card.c
>> +++ b/src/pulsecore/card.c
>> @@ -204,7 +204,10 @@ void pa_card_choose_initial_profile(pa_card *card) {
>>       * or if all profiles are unavailable, pick the profile with the highest
>>       * priority regardless of its availability. */
>>
>> +    pa_log_debug("Looking for an initial profile for card %s", card->name);
>>      PA_HASHMAP_FOREACH(profile, card->profiles, state) {
>> +        pa_log_debug("profile %s availability %s", profile->name, profile->available == PA_AVAILABLE_YES ? "yes" :
>> +                                                                  profile->available == PA_AVAILABLE_NO ? "no" : "unknown");
>>          if (profile->available == PA_AVAILABLE_NO)
>>              continue;
>>
>> @@ -213,6 +216,7 @@ void pa_card_choose_initial_profile(pa_card *card) {
>>      }
>>
>>      if (!best) {
>> +        pa_log_info("No profile with availability status 'yes' or 'unknown' found for card %s", card->name);
>>          PA_HASHMAP_FOREACH(profile, card->profiles, state) {
>>              if (!best || profile->priority > best->priority)
>>                  best = profile;
>> @@ -220,6 +224,7 @@ void pa_card_choose_initial_profile(pa_card *card) {
>>      }
>>      pa_assert(best);
>>
>> +    pa_log_info("Initial profile %s chosen for card %s", best->name, card->name);
>
> This message belongs to pa_card_put(), because at this point the
> initial profile may still change, either in the CHOOSE_INITIAL_PROFILE
> hook or by the card implementation (at least module-alsa-card supports
> overriding the automatic policy). If you need to log a message at this
> point, the wording needs to be different (I couldn't immediately come
> up with a good example).
>

(sorry it took me so long to reply to this)

Yes, I understand the initial profile may still change at this point,
but what I'm trying to log here is the whole logic to decide the
initial profile, starting from this point. Modules handling the
CHOOSE_INITIAL_PROFILE trigger should probably log a debug message
about it. The only two modules I've found that connect callbacks to
CHOOSE_INITIAL_PROFILE are module-card-restore and
module-bluetooth-policy, both of which log a message about it.

About the module-alsa-card override, I think you are referring to when
it is loaded with the "profile" modarg, we would also get a message
from pa_card_set_profile.

But I understand your point of trying to be clear that this initial
choice is subject to change before the card is active and available.
Maybe something like ("Profile %s chosen during card %s creation",
best->name, card->name) would achieve it?

--
João Paulo Rechi Vita
http://about.me/jprvita


More information about the pulseaudio-discuss mailing list