aboutsummaryrefslogtreecommitdiff
path: root/src/mm-port-probe.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-10-15 12:35:11 +0200
committerAleksander Morgado <aleksander@aleksander.es>2019-10-15 13:19:10 +0200
commite3a1364ddc43e13fe86e98dfca24ef7f6f267b38 (patch)
tree9f3408bbd8b6d98f67d38ca460ee320a1dadf549 /src/mm-port-probe.c
parentd61cb4a21cc1f3509c54f841e2eafafc3ea9a4a9 (diff)
core: allow flagging ports as 'audio'
Instead of flagging them as 'ignored' so that they aren't probed, we can also flag them as 'audio' now, so that the logic knows which port to report as used for audio in the Call object.
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r--src/mm-port-probe.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index c02f0b23..c0b5b455 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -93,6 +93,7 @@ struct _MMPortProbePrivate {
/* From udev tags */
gboolean is_ignored;
gboolean is_gps;
+ gboolean is_audio;
gboolean maybe_at_primary;
gboolean maybe_at_secondary;
gboolean maybe_at_ppp;
@@ -1477,6 +1478,15 @@ mm_port_probe_run (MMPortProbe *self,
mm_port_probe_set_result_qcdm (self, FALSE);
}
+ /* If this is a port flagged as an audio port, don't do any AT or QCDM probing */
+ if (self->priv->is_audio) {
+ mm_dbg ("(%s/%s) audio port detected",
+ mm_kernel_device_get_subsystem (self->priv->port),
+ mm_kernel_device_get_name (self->priv->port));
+ mm_port_probe_set_result_at (self, FALSE);
+ mm_port_probe_set_result_qcdm (self, FALSE);
+ }
+
/* If this is a port flagged as being an AT port, don't do any QCDM probing */
if (self->priv->maybe_at_primary || self->priv->maybe_at_secondary || self->priv->maybe_at_ppp) {
mm_dbg ("(%s/%s) no QCDM probing in possible AT port",
@@ -1711,6 +1721,9 @@ mm_port_probe_get_port_type (MMPortProbe *self)
if (self->priv->is_gps)
return MM_PORT_TYPE_GPS;
+ if (self->priv->is_audio)
+ return MM_PORT_TYPE_AUDIO;
+
return MM_PORT_TYPE_UNKNOWN;
}
@@ -1900,6 +1913,7 @@ set_property (GObject *object,
self->priv->port = g_value_dup_object (value);
self->priv->is_ignored = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_IGNORE);
self->priv->is_gps = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_TYPE_GPS);
+ self->priv->is_audio = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_TYPE_AUDIO);
self->priv->maybe_at_primary = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_TYPE_AT_PRIMARY);
self->priv->maybe_at_secondary = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_TYPE_AT_SECONDARY);
self->priv->maybe_at_ppp = mm_kernel_device_get_property_as_boolean (self->priv->port, ID_MM_PORT_TYPE_AT_PPP);