When using PulseAudio in system mode, it may be interesting to know
which seats the devices are assigned to. This will be used in the
tunnel manager to filter out the devices that belong to other users.
---
 src/modules/udev-util.c | 9 +++++++++
 src/modules/udev-util.h | 2 ++
 2 files changed, 11 insertions(+)

diff --git a/src/modules/udev-util.c b/src/modules/udev-util.c
index b0bb17d..f104c1d 100644
--- a/src/modules/udev-util.c
+++ b/src/modules/udev-util.c
@@ -250,6 +250,15 @@ int pa_udev_get_info(int card_idx, pa_proplist *p) {
         if ((v = udev_device_get_property_value(card, "SOUND_DESCRIPTION")) && 
*v)
             pa_proplist_sets(p, PA_PROP_DEVICE_DESCRIPTION, v);
 
+    if (!pa_proplist_contains(p, PA_PROP_UDEV_SEAT)) {
+        if ((udev_device_has_tag(card, "seat"))) {
+            if ((v = udev_device_get_property_value(card, "ID_SEAT")) && *v)
+                pa_proplist_sets(p, PA_PROP_UDEV_SEAT, v);
+            else
+                pa_proplist_sets(p, PA_PROP_UDEV_SEAT, "seat0");
+        }
+    }
+
     r = 0;
 
 finish:
diff --git a/src/modules/udev-util.h b/src/modules/udev-util.h
index 251575b..70c5044 100644
--- a/src/modules/udev-util.h
+++ b/src/modules/udev-util.h
@@ -24,6 +24,8 @@
 
 #include <pulse/proplist.h>
 
+#define PA_PROP_UDEV_SEAT "udev.seat"
+
 int pa_udev_get_info(int card_idx, pa_proplist *p);
 char* pa_udev_get_property(int card_idx, const char *name);
 
-- 
1.9.3

_______________________________________________
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss

Reply via email to