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.
This commit is contained in:
parent
064541dd2b
commit
ee11a2dbcf
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue