[PATCH] card: Only set active_profile with available profile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi David,

On Thu, Oct 31, 2013 at 11:22 AM, David Henningsson
<david.henningsson at canonical.com> wrote:
> On 10/30/2013 11:58 AM, Luiz Augusto von Dentz wrote:
>> From: Luiz Augusto von Dentz <luiz.von.dentz at intel.com>
>>
>> If the profile available flag is set to PA_AVAILABLE_NO it means the
>> profile shall not be use.
>
> Please add to the comment that this only happens when the card is
> created, and only if the active profile has not been specified earlier.

Sure will add it np.

>
>> ---
>>  src/pulsecore/card.c | 6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
>> index e6e0836..ba2222e 100644
>> --- a/src/pulsecore/card.c
>> +++ b/src/pulsecore/card.c
>> @@ -195,9 +195,13 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
>>              c->save_profile = data->save_profile;
>>
>>      if (!c->active_profile) {
>> -        PA_HASHMAP_FOREACH(profile, c->profiles, state)
>> +        PA_HASHMAP_FOREACH(profile, c->profiles, state) {
>> +            if (profile->available == PA_AVAILABLE_NO)
>> +                continue;
>> +
>>              if (!c->active_profile || profile->priority > c->active_profile->priority)
>>                  c->active_profile = profile;
>> +        }
>
> Maybe also add a safeguard if all profiles are unavailable, e g like below:
>
>         if (!c->active_profile) {
>                c->active_profile = /* The first, or random, profile,
> just something */;
>                 pa_log_warn("No available profiles, selecting
> unavailable profile %s", c->active_profile->name);
>         }

What about assert if there is no profile that can be used? It already
asserts if the profile hash table is empty which is kind similar
situation here when no profile is available so perhaps we should
assert?

-- 
Luiz Augusto von Dentz


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux