From ee11a2dbcf36b7a846e8ef8b18ae0cd79b2ec2f3 Mon Sep 17 00:00:00 2001 From: LAGonauta Date: Sun, 9 May 2021 10:42:41 -0300 Subject: [PATCH] Do not allow selection of WASAPI devices Dino would have to resample it own audio, do more book keeping and somehow find out manually which is the default device. --- plugins/rtp/src/plugin.vala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/rtp/src/plugin.vala b/plugins/rtp/src/plugin.vala index 9e59a03b..9db02b2d 100644 --- a/plugins/rtp/src/plugin.vala +++ b/plugins/rtp/src/plugin.vala @@ -49,6 +49,7 @@ public class Dino.Plugins.Rtp.Plugin : RootInterface, VideoCallPlugin, Object { device_monitor.start(); foreach (Gst.Device device in device_monitor.get_devices()) { if (device.properties.has_name("pipewire-proplist") && device.device_class.has_prefix("Audio/")) continue; + if (device.properties.get_string("device.api") == "wasapi") continue; if (device.properties.get_string("device.class") == "monitor") continue; if (devices.any_match((it) => it.matches(device))) continue; devices.add(new Device(this, device)); @@ -186,6 +187,7 @@ public class Dino.Plugins.Rtp.Plugin : RootInterface, VideoCallPlugin, Object { case Gst.MessageType.DEVICE_ADDED: message.parse_device_added(out device); if (device.properties.has_name("pipewire-proplist") && device.device_class.has_prefix("Audio/")) return Source.CONTINUE; + if (device.properties.get_string("device.api") == "wasapi") return Source.CONTINUE; if (device.properties.get_string("device.class") == "monitor") return Source.CONTINUE; if (devices.any_match((it) => it.matches(device))) return Source.CONTINUE; devices.add(new Device(this, device)); @@ -194,6 +196,7 @@ public class Dino.Plugins.Rtp.Plugin : RootInterface, VideoCallPlugin, Object { case Gst.MessageType.DEVICE_CHANGED: message.parse_device_changed(out device, out old_device); if (device.properties.has_name("pipewire-proplist") && device.device_class.has_prefix("Audio/")) return Source.CONTINUE; + if (device.properties.get_string("device.api") == "wasapi") return Source.CONTINUE; if (device.properties.get_string("device.class") == "monitor") return Source.CONTINUE; old = devices.first_match((it) => it.matches(old_device)); if (old != null) old.update(device); @@ -202,6 +205,7 @@ public class Dino.Plugins.Rtp.Plugin : RootInterface, VideoCallPlugin, Object { case Gst.MessageType.DEVICE_REMOVED: message.parse_device_removed(out device); if (device.properties.has_name("pipewire-proplist") && device.device_class.has_prefix("Audio/")) return Source.CONTINUE; + if (device.properties.get_string("device.api") == "wasapi") return Source.CONTINUE; if (device.properties.get_string("device.class") == "monitor") return Source.CONTINUE; old = devices.first_match((it) => it.matches(device)); if (old != null) devices.remove(old);