aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 7cda12b8..ac9c261e 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -198,10 +198,10 @@ base_modem_create_net_port (MMBaseModem *self,
}
static MMPort *
-base_modem_create_tty_port (MMBaseModem *self,
- const gchar *name,
- MMKernelDevice *kernel_device,
- MMPortType ptype)
+base_modem_create_tty_port (MMBaseModem *self,
+ const gchar *name,
+ MMKernelDevice *kernel_device,
+ MMPortType ptype)
{
MMPort *port = NULL;
const gchar *flow_control_tag;
@@ -356,6 +356,10 @@ base_modem_internal_grab_port (MMBaseModem *self,
return NULL;
}
+ g_assert (MM_BASE_MODEM_GET_CLASS (self)->create_tty_port);
+ g_assert (MM_BASE_MODEM_GET_CLASS (self)->create_usbmisc_port);
+ g_assert (MM_BASE_MODEM_GET_CLASS (self)->create_wwan_port);
+
/* Explicitly ignored ports, grab them but explicitly flag them as ignored
* right away, all the same way (i.e. regardless of subsystem). */
if (ptype == MM_PORT_TYPE_IGNORED)
@@ -363,9 +367,9 @@ base_modem_internal_grab_port (MMBaseModem *self,
else if (g_str_equal (subsys, "net"))
port = base_modem_create_net_port (self, name);
else if (g_str_equal (subsys, "tty"))
- port = base_modem_create_tty_port (self, name, kernel_device, ptype);
+ port = MM_BASE_MODEM_GET_CLASS (self)->create_tty_port (self, name, kernel_device, ptype);
else if (g_str_equal (subsys, "usbmisc"))
- port = base_modem_create_usbmisc_port (self, name, ptype);
+ port = MM_BASE_MODEM_GET_CLASS (self)->create_usbmisc_port (self, name, ptype);
else if (g_str_equal (subsys, "rpmsg"))
port = base_modem_create_rpmsg_port (self, name, ptype);
#if defined WITH_QRTR
@@ -375,7 +379,7 @@ base_modem_internal_grab_port (MMBaseModem *self,
else if (g_str_equal (subsys, "virtual"))
port = base_modem_create_virtual_port (self, name);
else if (g_str_equal (subsys, "wwan"))
- port = base_modem_create_wwan_port (self, name, ptype);
+ port = MM_BASE_MODEM_GET_CLASS (self)->create_wwan_port (self, name, ptype);
if (!port) {
g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED,
@@ -2063,7 +2067,10 @@ mm_base_modem_class_init (MMBaseModemClass *klass)
g_type_class_add_private (object_class, sizeof (MMBaseModemPrivate));
- /* Virtual methods */
+ klass->create_tty_port = base_modem_create_tty_port;
+ klass->create_usbmisc_port = base_modem_create_usbmisc_port;
+ klass->create_wwan_port = base_modem_create_wwan_port;
+
object_class->get_property = get_property;
object_class->set_property = set_property;
object_class->finalize = finalize;