summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-09-10 18:19:48 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-10 18:19:48 -0500
commit27cfc00eba7cc9a72a33d9d9674e1c31aef84acb (patch)
tree0f3ebb3e39beba2e2ae62e35ba004b99b5a40658
parent40bc569024d2cd59a6badbd721960c1b151b976d (diff)
downloadofono-27cfc00eba7cc9a72a33d9d9674e1c31aef84acb.tar.bz2
Add netreg getter functions
- Get Location, CellID - Current Operator - Registration Status - Technology
-rw-r--r--include/netreg.h7
-rw-r--r--src/network.c44
2 files changed, 51 insertions, 0 deletions
diff --git a/include/netreg.h b/include/netreg.h
index edb11877..a19409e3 100644
--- a/include/netreg.h
+++ b/include/netreg.h
@@ -108,6 +108,13 @@ void ofono_netreg_remove(struct ofono_netreg *netreg);
void ofono_netreg_set_data(struct ofono_netreg *netreg, void *data);
void *ofono_netreg_get_data(struct ofono_netreg *netreg);
+int ofono_netreg_get_location(struct ofono_netreg *netreg);
+int ofono_netreg_get_cellid(struct ofono_netreg *netreg);
+int ofono_netreg_get_status(struct ofono_netreg *netreg);
+int ofono_netreg_get_technology(struct ofono_netreg *netreg);
+const struct ofono_network_operator *
+ ofono_netreg_get_operator(struct ofono_netreg *netreg);
+
#ifdef __cplusplus
}
#endif
diff --git a/src/network.c b/src/network.c
index 7139e60d..23d4dc39 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1319,6 +1319,50 @@ static void sim_spn_read_cb(int ok,
}
}
+int ofono_netreg_get_location(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->location;
+}
+
+int ofono_netreg_get_cellid(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->cellid;
+}
+
+int ofono_netreg_get_status(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->status;
+}
+
+int ofono_netreg_get_technology(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return -1;
+
+ return netreg->technology;
+}
+
+const struct ofono_network_operator *
+ ofono_netreg_get_operator(struct ofono_netreg *netreg)
+{
+ if (netreg == NULL)
+ return NULL;
+
+ if (netreg->current_operator == NULL)
+ return NULL;
+
+ return netreg->current_operator->info;
+}
+
int ofono_netreg_driver_register(const struct ofono_netreg_driver *d)
{
DBG("driver: %p, name: %s", d, d->name);