summaryrefslogtreecommitdiffstats
path: root/src/call-forwarding.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-08-14 15:46:51 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-08-14 16:31:48 -0500
commit8a64f93f301e84aee7d73a9d73669b79c770ba33 (patch)
treef03f9178473519a8dffc0b1aca0086410d2122de /src/call-forwarding.c
parent31a940825ba9cc5c9d0989d9acf762be98c0a30a (diff)
downloadofono-8a64f93f301e84aee7d73a9d73669b79c770ba33.tar.bz2
Use atom's modem in call-forwarding
Diffstat (limited to 'src/call-forwarding.c')
-rw-r--r--src/call-forwarding.c46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/call-forwarding.c b/src/call-forwarding.c
index 39e968b5..eeaeab63 100644
--- a/src/call-forwarding.c
+++ b/src/call-forwarding.c
@@ -54,7 +54,6 @@ struct ofono_call_forwarding {
struct cf_ss_request *ss_req;
const struct ofono_call_forwarding_driver *driver;
void *driver_data;
- struct ofono_modem *modem;
struct ofono_atom *atom;
};
@@ -199,7 +198,7 @@ static void set_new_cond_list(struct ofono_call_forwarding *cf,
{
GSList *old = cf->cf_conditions[type];
DBusConnection *conn = ofono_dbus_get_connection();
- const char *path = ofono_modem_get_path(cf->modem);
+ const char *path = __ofono_atom_get_path(cf->atom);
GSList *l;
GSList *o;
struct ofono_call_forwarding_condition *lc;
@@ -1066,24 +1065,28 @@ error:
static void cf_register_ss_controls(struct ofono_call_forwarding *cf)
{
- ss_control_register(cf->modem, "21", cf_ss_control);
- ss_control_register(cf->modem, "67", cf_ss_control);
- ss_control_register(cf->modem, "61", cf_ss_control);
- ss_control_register(cf->modem, "62", cf_ss_control);
+ struct ofono_modem *modem = __ofono_atom_get_modem(cf->atom);
- ss_control_register(cf->modem, "002", cf_ss_control);
- ss_control_register(cf->modem, "004", cf_ss_control);
+ ss_control_register(modem, "21", cf_ss_control);
+ ss_control_register(modem, "67", cf_ss_control);
+ ss_control_register(modem, "61", cf_ss_control);
+ ss_control_register(modem, "62", cf_ss_control);
+
+ ss_control_register(modem, "002", cf_ss_control);
+ ss_control_register(modem, "004", cf_ss_control);
}
static void cf_unregister_ss_controls(struct ofono_call_forwarding *cf)
{
- ss_control_unregister(cf->modem, "21", cf_ss_control);
- ss_control_unregister(cf->modem, "67", cf_ss_control);
- ss_control_unregister(cf->modem, "61", cf_ss_control);
- ss_control_unregister(cf->modem, "62", cf_ss_control);
+ struct ofono_modem *modem = __ofono_atom_get_modem(cf->atom);
+
+ ss_control_unregister(modem, "21", cf_ss_control);
+ ss_control_unregister(modem, "67", cf_ss_control);
+ ss_control_unregister(modem, "61", cf_ss_control);
+ ss_control_unregister(modem, "62", cf_ss_control);
- ss_control_unregister(cf->modem, "002", cf_ss_control);
- ss_control_unregister(cf->modem, "004", cf_ss_control);
+ ss_control_unregister(modem, "002", cf_ss_control);
+ ss_control_unregister(modem, "004", cf_ss_control);
}
int ofono_call_forwarding_driver_register(const struct ofono_call_forwarding_driver *d)
@@ -1108,15 +1111,16 @@ void ofono_call_forwarding_driver_unregister(const struct ofono_call_forwarding_
static void call_forwarding_unregister(struct ofono_atom *atom)
{
struct ofono_call_forwarding *cf = __ofono_atom_get_data(atom);
- const char *path = ofono_modem_get_path(cf->modem);
+ const char *path = __ofono_atom_get_path(cf->atom);
DBusConnection *conn = ofono_dbus_get_connection();
+ struct ofono_modem *modem = __ofono_atom_get_modem(cf->atom);
- ofono_modem_remove_interface(cf->modem, CALL_FORWARDING_INTERFACE);
+ ofono_modem_remove_interface(modem, CALL_FORWARDING_INTERFACE);
g_dbus_unregister_interface(conn, path, CALL_FORWARDING_INTERFACE);
cf_unregister_ss_controls(cf);
- cf->modem->call_forwarding = NULL;
+ modem->call_forwarding = NULL;
}
static void call_forwarding_remove(struct ofono_atom *atom)
@@ -1151,7 +1155,6 @@ struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *m
if (cf == NULL)
return NULL;
- cf->modem = modem;
cf->driver_data = data;
cf->atom = __ofono_modem_add_atom(modem,
OFONO_ATOM_TYPE_CALL_FORWARDING,
@@ -1175,7 +1178,8 @@ struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *m
void ofono_call_forwarding_register(struct ofono_call_forwarding *cf)
{
DBusConnection *conn = ofono_dbus_get_connection();
- const char *path = ofono_modem_get_path(cf->modem);
+ const char *path = __ofono_atom_get_path(cf->atom);
+ struct ofono_modem *modem = __ofono_atom_get_modem(cf->atom);
if (!g_dbus_register_interface(conn, path,
CALL_FORWARDING_INTERFACE,
@@ -1187,9 +1191,9 @@ void ofono_call_forwarding_register(struct ofono_call_forwarding *cf)
return;
}
- cf->modem->call_forwarding = cf;
+ modem->call_forwarding = cf;
- ofono_modem_add_interface(cf->modem, CALL_FORWARDING_INTERFACE);
+ ofono_modem_add_interface(modem, CALL_FORWARDING_INTERFACE);
cf_register_ss_controls(cf);
__ofono_atom_register(cf->atom, call_forwarding_unregister);