summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2014-12-09 22:54:35 -0600
committerDenis Kenzior <denkenz@gmail.com>2014-12-10 11:03:16 -0600
commita89f8cd56d9836dba2ba31b301ee24f890a04b30 (patch)
tree80d8036c76eda6ab60b32e29a9390864b66278d0 /plugins
parent95482cb84abd30b80d7c4e6d2c957901f73ede14 (diff)
downloadofono-a89f8cd56d9836dba2ba31b301ee24f890a04b30.tar.bz2
phonesim: Add skeleton of radio settings driver
Diffstat (limited to 'plugins')
-rw-r--r--plugins/phonesim.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/plugins/phonesim.c b/plugins/phonesim.c
index 5561a058..60a1f4c4 100644
--- a/plugins/phonesim.c
+++ b/plugins/phonesim.c
@@ -351,6 +351,41 @@ static void phonesim_ctm_set(struct ofono_ctm *ctm, ofono_bool_t enable,
g_free(cbd);
}
+static gboolean phonesim_radio_settings_register(gpointer user)
+{
+ struct ofono_radio_settings *rs = user;
+
+ ofono_radio_settings_register(rs);
+
+ return FALSE;
+}
+
+static int phonesim_radio_settings_probe(struct ofono_radio_settings *rs,
+ unsigned int vendor, void *data)
+{
+ GAtChat *chat;
+
+ DBG("");
+
+ chat = g_at_chat_clone(data);
+
+ ofono_radio_settings_set_data(rs, chat);
+ g_idle_add(phonesim_radio_settings_register, rs);
+
+ return 0;
+}
+
+static void phonesim_radio_settings_remove(struct ofono_radio_settings *rs)
+{
+ GAtChat *chat = ofono_radio_settings_get_data(rs);
+
+ DBG("");
+
+ ofono_radio_settings_set_data(rs, NULL);
+
+ g_at_chat_unref(chat);
+}
+
static struct ofono_gprs_context_driver context_driver = {
.name = "phonesim",
.probe = phonesim_context_probe,
@@ -359,6 +394,12 @@ static struct ofono_gprs_context_driver context_driver = {
.deactivate_primary = phonesim_deactivate_primary,
};
+static struct ofono_radio_settings_driver radio_settings_driver = {
+ .name = "phonesim",
+ .probe = phonesim_radio_settings_probe,
+ .remove = phonesim_radio_settings_remove,
+};
+
static struct ofono_ctm_driver ctm_driver = {
.name = "phonesim",
.probe = phonesim_ctm_probe,
@@ -1081,6 +1122,7 @@ static int phonesim_init(void)
ofono_gprs_context_driver_register(&context_driver);
ofono_ctm_driver_register(&ctm_driver);
+ ofono_radio_settings_driver_register(&radio_settings_driver);
if (conf_override)
parse_config(conf_override);
@@ -1103,6 +1145,7 @@ static void phonesim_exit(void)
g_slist_free(modem_list);
modem_list = NULL;
+ ofono_radio_settings_driver_unregister(&radio_settings_driver);
ofono_ctm_driver_unregister(&ctm_driver);
ofono_gprs_context_driver_unregister(&context_driver);