sim: Add sim_service_available()
authorAndrzej Zaborowski <andrew.zaborowski@intel.com>
Wed, 10 Nov 2010 03:27:50 +0000 (04:27 +0100)
committerDenis Kenzior <denkenz@gmail.com>
Wed, 10 Nov 2010 15:09:05 +0000 (09:09 -0600)
This is meant to query EFsst or EFust.

The function is not public api because the service constants are in
src/simutil.h.

src/ofono.h
src/sim.c

index e5b4acb..4d76d20 100644 (file)
@@ -281,6 +281,11 @@ gboolean __ofono_sms_datagram_watch_remove(struct ofono_sms *sms,
 unsigned short __ofono_sms_get_next_ref(struct ofono_sms *sms);
 
 #include <ofono/sim.h>
+
+ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim,
+                                               int ust_service,
+                                               int sst_service);
+
 #include <ofono/stk.h>
 
 typedef void (*__ofono_sms_sim_download_cb_t)(ofono_bool_t ok,
index e5e304c..f362565 100644 (file)
--- a/src/sim.c
+++ b/src/sim.c
@@ -1928,6 +1928,21 @@ const unsigned char *ofono_sim_get_cphs_service_table(struct ofono_sim *sim)
        return sim->cphs_service_table;
 }
 
+ofono_bool_t __ofono_sim_service_available(struct ofono_sim *sim,
+                                               int ust_service,
+                                               int sst_service)
+{
+       if (sim->efust)
+               return sim_ust_is_available(sim->efust, sim->efust_length,
+                                               ust_service);
+
+       if (sim->efsst)
+               return sim_sst_is_active(sim->efsst, sim->efsst_length,
+                                               sst_service);
+
+       return FALSE;
+}
+
 static void sim_inserted_update(struct ofono_sim *sim)
 {
        DBusConnection *conn = ofono_dbus_get_connection();