summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Henningsson <david.henningsson@canonical.com>2015-11-17 15:10:31 +0100
committerTanu Kaskinen <tanuk@iki.fi>2015-11-22 04:59:23 +0200
commitb1d9b4f62c2f132292efaba862e8490114882ad2 (patch)
treeb7f37251d5f05406ba64a262312f4a4c4c3716aa
parent2a71fd7597dd76eb6abab867cd3762429792f680 (diff)
downloadpulseaudio-b1d9b4f62c2f132292efaba862e8490114882ad2.tar.gz
device-port: Add preferred_profile field to pa_device_port
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
-rw-r--r--src/pulsecore/device-port.c11
-rw-r--r--src/pulsecore/device-port.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c
index 906ab1f7d..5807d3efa 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 f35d07cc4..e3224fd48 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);