summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGuillaume Zajac <guillaume.zajac@linux.intel.com>2011-12-15 14:34:28 +0100
committerDaniel Wagner <daniel.wagner@bmw-carit.de>2011-12-15 16:06:19 +0100
commitd6a1df79a211bb1ea57faff629f090371f344bd7 (patch)
tree1971b88a74179e243cef37d73ef2d5a5d2624e47 /plugins
parent1f4302587d83a8b092c185b1f913b2b4444d941a (diff)
downloadconnman-d6a1df79a211bb1ea57faff629f090371f344bd7.tar.gz
connman-d6a1df79a211bb1ea57faff629f090371f344bd7.tar.bz2
connman-d6a1df79a211bb1ea57faff629f090371f344bd7.zip
ofono: Add support for CDMA modems
Diffstat (limited to 'plugins')
-rw-r--r--plugins/ofono.c64
1 files changed, 56 insertions, 8 deletions
diff --git a/plugins/ofono.c b/plugins/ofono.c
index 98b0e0df..ef246b85 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -1424,6 +1424,11 @@ static int netreg_get_properties(struct modem_data *modem)
netreg_properties_reply, modem);
}
+static int cdma_netreg_get_properties(struct modem_data *modem)
+{
+ return -EINVAL;
+}
+
static void cm_update_attached(struct modem_data *modem,
DBusMessageIter *value)
{
@@ -1516,6 +1521,11 @@ static int cm_get_properties(struct modem_data *modem)
cm_properties_reply, modem);
}
+static int cdma_cm_get_properties(struct modem_data *modem)
+{
+ return -EINVAL;
+}
+
static void update_sim_imsi(struct modem_data *modem,
const char *imsi)
{
@@ -1564,6 +1574,10 @@ static gboolean sim_changed(DBusConnection *connection, DBusMessage *message,
OFONO_API_CM) == TRUE) {
if (ready_to_create_device(modem) == TRUE)
create_device(modem);
+ } else if (has_interface(modem->interfaces,
+ OFONO_API_CDMA_CM) == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
}
}
@@ -1604,6 +1618,12 @@ static void sim_properties_reply(struct modem_data *modem,
cm_get_properties(modem);
cm_get_contexts(modem);
}
+ } else if (has_interface(modem->interfaces,
+ OFONO_API_CDMA_CM) == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL)
+ cdma_cm_get_properties(modem);
}
return;
}
@@ -1656,13 +1676,21 @@ static gboolean modem_changed(DBusConnection *connection, DBusMessage *message,
if (modem->online == FALSE)
return TRUE;
- if (has_interface(modem->interfaces, OFONO_API_CM) == FALSE)
- return TRUE;
- if (ready_to_create_device(modem) == TRUE)
- create_device(modem);
- if (modem->device != NULL) {
- cm_get_properties(modem);
- cm_get_contexts(modem);
+ if (has_interface(modem->interfaces, OFONO_API_CM) == FALSE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL) {
+ cm_get_properties(modem);
+ cm_get_contexts(modem);
+ }
+ } else if (has_interface(modem->interfaces,
+ OFONO_API_CDMA_CM) == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL) {
+ cdma_cm_get_properties(modem);
+ cdma_netreg_get_properties(modem);
+ }
}
} else if (g_str_equal(key, "Interfaces") == TRUE) {
modem->interfaces = extract_interfaces(&value);
@@ -1690,6 +1718,12 @@ static gboolean modem_changed(DBusConnection *connection, DBusMessage *message,
cm_get_contexts(modem);
return TRUE;
}
+ } else if (has_interface(modem->interfaces,
+ OFONO_API_CDMA_CM) == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL)
+ cdma_cm_get_properties(modem);
} else {
if (modem->context != NULL) {
remove_cm_context(modem,
@@ -1705,7 +1739,9 @@ static gboolean modem_changed(DBusConnection *connection, DBusMessage *message,
if (has_interface(modem->interfaces, OFONO_API_NETREG) == TRUE) {
if (modem->attached == TRUE)
netreg_get_properties(modem);
- }
+ } else if (has_interface(modem->interfaces,
+ OFONO_API_CDMA_NETREG) == TRUE)
+ cdma_netreg_get_properties(modem);
} else if (g_str_equal(key, "Serial") == TRUE) {
char *serial;
@@ -1723,6 +1759,12 @@ static gboolean modem_changed(DBusConnection *connection, DBusMessage *message,
cm_get_properties(modem);
cm_get_contexts(modem);
}
+ } else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)
+ == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL)
+ cdma_cm_get_properties(modem);
}
}
@@ -1812,6 +1854,12 @@ static void add_modem(const char *path, DBusMessageIter *prop)
cm_get_properties(modem);
cm_get_contexts(modem);
}
+ } else if (has_interface(modem->interfaces, OFONO_API_CDMA_CM)
+ == TRUE) {
+ if (ready_to_create_device(modem) == TRUE)
+ create_device(modem);
+ if (modem->device != NULL)
+ cdma_cm_get_properties(modem);
}
}