[pulseaudio-discuss] [RFC v0 1/5] card: Add card profile availability

Tanu Kaskinen tanuk at iki.fi
Sat Feb 16 07:58:10 PST 2013


On Wed, 2013-02-13 at 14:48 +0100, Mikel Astiz wrote:
> From: Mikel Astiz <mikel.astiz at bmw-carit.de>
> 
> Some cards are capable to announce if a specific profile is available or
> not, effectively predicting whether a profile switch would fail or would
> likely succeed. This can for example be useful for a UI that would gray
> out any unavailable profile.
> 
> In addition, this information can be useful for internal modules
> implementing automatic profile-switching policies, such as
> module-switch-on-port-available or module-bluetooth-policy.
> 
> In particular, this information is essential when a port is associated
> to multiple card profiles and therefore the port availability flag does
> not provide enough information. The port "bluetooth-output" falls into
> this category, for example, since it doesn't distinguish HSP/HFP from
> A2DP.
> ---
>  src/pulse/def.h      | 14 ++++++++++++++
>  src/pulsecore/card.c | 20 ++++++++++++++++++++
>  src/pulsecore/card.h |  4 ++++
>  src/pulsecore/core.h |  1 +
>  4 files changed, 39 insertions(+)
> 
> diff --git a/src/pulse/def.h b/src/pulse/def.h
> index b939319..ccac28b 100644
> --- a/src/pulse/def.h
> +++ b/src/pulse/def.h
> @@ -1006,6 +1006,20 @@ typedef enum pa_port_available {
>  
>  /** \endcond */
>  
> +/** Card profile availability
> + * \since 3.1 */

IIRC, David already pointed out that this should be 4.0.

> +typedef enum pa_profile_available {
> +    PA_PROFILE_AVAILABLE_UNKNOWN = 0, /**< This card profile does not support availability or the information is not known */
> +    PA_PROFILE_AVAILABLE_NO = 1,      /**< This card profile is not available, and a profile switch would fail */
> +    PA_PROFILE_AVAILABLE_YES = 2,     /**< This card profile is available, and a profile switch would likely succeed */
> +} pa_profile_available_t;

I don't think there's any point in replicating this enum for every class
that has a three-state "available" property. So, I think we should have
a generic pa_available_t enumeration.

-- 
Tanu



More information about the pulseaudio-discuss mailing list