Signed-off-by: David Henningsson <david.henningsson at canonical.com> --- src/pulsecore/device-port.c | 11 +++++++++++ src/pulsecore/device-port.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c index 906ab1f..5807d3e 100644 --- a/src/pulsecore/device-port.c +++ b/src/pulsecore/device-port.c @@ -21,6 +21,7 @@ #include "device-port.h" #include <pulsecore/card.h> +#include <pulsecore/core-util.h> PA_DEFINE_PUBLIC_CLASS(pa_device_port, pa_object); @@ -65,6 +66,15 @@ void pa_device_port_new_data_done(pa_device_port_new_data *data) { pa_xfree(data->description); } +void pa_device_port_set_preferred_profile(pa_device_port *p, const char *new_pp) { + pa_assert(p); + + if (!pa_safe_streq(p->preferred_profile, new_pp)) { + pa_xfree(p->preferred_profile); + p->preferred_profile = pa_xstrdup(new_pp); + } +} + void pa_device_port_set_available(pa_device_port *p, pa_available_t status) { pa_assert(p); @@ -100,6 +110,7 @@ static void device_port_free(pa_object *o) { if (p->profiles) pa_hashmap_free(p->profiles); + pa_xfree(p->preferred_profile); pa_xfree(p->name); pa_xfree(p->description); pa_xfree(p); diff --git a/src/pulsecore/device-port.h b/src/pulsecore/device-port.h index f35d07c..e3224fd 100644 --- a/src/pulsecore/device-port.h +++ b/src/pulsecore/device-port.h @@ -43,6 +43,7 @@ struct pa_device_port { char *name; char *description; + char *preferred_profile; unsigned priority; pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */ @@ -80,6 +81,7 @@ pa_device_port *pa_device_port_new(pa_core *c, pa_device_port_new_data *data, si void pa_device_port_set_available(pa_device_port *p, pa_available_t available); void pa_device_port_set_latency_offset(pa_device_port *p, int64_t offset); +void pa_device_port_set_preferred_profile(pa_device_port *p, const char *new_pp); pa_device_port *pa_device_port_find_best(pa_hashmap *ports); -- 1.9.1