[pulseaudio-discuss] [PATCH 13/21] device-port: Add a device_class field to ports

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Wed Jun 19 08:40:10 PDT 2013


I'm going to use the port device class for generating the name for
port nodes.
---
 src/modules/bluetooth/module-bluetooth-device.c | 2 ++
 src/pulsecore/device-port.c                     | 8 ++++++++
 src/pulsecore/device-port.h                     | 5 +++++
 3 files changed, 15 insertions(+)

diff --git a/src/modules/bluetooth/module-bluetooth-device.c b/src/modules/bluetooth/module-bluetooth-device.c
index aadc260..f7c6a57 100644
--- a/src/modules/bluetooth/module-bluetooth-device.c
+++ b/src/modules/bluetooth/module-bluetooth-device.c
@@ -2120,6 +2120,7 @@ static void create_card_ports(struct userdata *u, pa_hashmap *ports) {
     pa_device_port_new_data_init(&port_data);
     pa_device_port_new_data_set_name(&port_data, u->output_port_name);
     pa_device_port_new_data_set_description(&port_data, output_description);
+    pa_device_port_new_data_set_device_class(&port_data, device_class);
     pa_device_port_new_data_set_direction(&port_data, PA_DIRECTION_OUTPUT);
     pa_device_port_new_data_set_available(&port_data, get_port_availability(u, PA_DIRECTION_OUTPUT));
     pa_assert_se(port = pa_device_port_new(u->core, &port_data, 0));
@@ -2129,6 +2130,7 @@ static void create_card_ports(struct userdata *u, pa_hashmap *ports) {
     pa_device_port_new_data_init(&port_data);
     pa_device_port_new_data_set_name(&port_data, u->input_port_name);
     pa_device_port_new_data_set_description(&port_data, input_description);
+    pa_device_port_new_data_set_device_class(&port_data, device_class);
     pa_device_port_new_data_set_direction(&port_data, PA_DIRECTION_INPUT);
     pa_device_port_new_data_set_available(&port_data, get_port_availability(u, PA_DIRECTION_INPUT));
     pa_assert_se(port = pa_device_port_new(u->core, &port_data, 0));
diff --git a/src/pulsecore/device-port.c b/src/pulsecore/device-port.c
index c5d49f3..d04c74b 100644
--- a/src/pulsecore/device-port.c
+++ b/src/pulsecore/device-port.c
@@ -30,6 +30,7 @@ pa_device_port_new_data *pa_device_port_new_data_init(pa_device_port_new_data *d
     pa_assert(data);
 
     pa_zero(*data);
+    data->device_class = PA_DEVICE_CLASS_UNKNOWN;
     data->available = PA_AVAILABLE_UNKNOWN;
     return data;
 }
@@ -48,6 +49,12 @@ void pa_device_port_new_data_set_description(pa_device_port_new_data *data, cons
     data->description = pa_xstrdup(description);
 }
 
+void pa_device_port_new_data_set_device_class(pa_device_port_new_data *data, pa_device_class_t device_class) {
+    pa_assert(data);
+
+    data->device_class = device_class;
+}
+
 void pa_device_port_new_data_set_available(pa_device_port_new_data *data, pa_available_t available) {
     pa_assert(data);
 
@@ -122,6 +129,7 @@ pa_device_port *pa_device_port_new(pa_core *c, pa_device_port_new_data *data, si
     data->name = NULL;
     p->description = data->description;
     data->description = NULL;
+    p->device_class = data->device_class;
     p->core = c;
     p->card = NULL;
     p->priority = 0;
diff --git a/src/pulsecore/device-port.h b/src/pulsecore/device-port.h
index b10d554..6c54696 100644
--- a/src/pulsecore/device-port.h
+++ b/src/pulsecore/device-port.h
@@ -33,6 +33,8 @@ typedef struct pa_device_port pa_device_port;
 #include <inttypes.h>
 
 #include <pulse/def.h>
+
+#include <pulsecore/device-class.h>
 #include <pulsecore/object.h>
 #include <pulsecore/hashmap.h>
 #include <pulsecore/core.h>
@@ -45,6 +47,7 @@ struct pa_device_port {
 
     char *name;
     char *description;
+    pa_device_class_t device_class;
 
     unsigned priority;
     pa_available_t available;         /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */
@@ -65,6 +68,7 @@ PA_DECLARE_PUBLIC_CLASS(pa_device_port);
 typedef struct pa_device_port_new_data {
     char *name;
     char *description;
+    pa_device_class_t device_class;
     pa_available_t available;
     pa_direction_t direction;
 } pa_device_port_new_data;
@@ -72,6 +76,7 @@ typedef struct pa_device_port_new_data {
 pa_device_port_new_data *pa_device_port_new_data_init(pa_device_port_new_data *data);
 void pa_device_port_new_data_set_name(pa_device_port_new_data *data, const char *name);
 void pa_device_port_new_data_set_description(pa_device_port_new_data *data, const char *description);
+void pa_device_port_new_data_set_device_class(pa_device_port_new_data *data, pa_device_class_t device_class);
 void pa_device_port_new_data_set_available(pa_device_port_new_data *data, pa_available_t available);
 void pa_device_port_new_data_set_direction(pa_device_port_new_data *data, pa_direction_t direction);
 void pa_device_port_new_data_done(pa_device_port_new_data *data);
-- 
1.8.1.2



More information about the pulseaudio-discuss mailing list