summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denis.kenzior@intel.com>2009-09-01 17:03:43 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-01 18:14:57 -0500
commit7ee954b28ae62e15838a82dbfa9eab4a88eca70f (patch)
tree62f9d5f451fdc653882c8f4b7c34d0cd3def29e4
parent15b1a733b0a3a99adcf619b82ee4304a43ade4dd (diff)
downloadofono-7ee954b28ae62e15838a82dbfa9eab4a88eca70f.tar.bz2
Add vendor flag to call-forwarding
-rw-r--r--drivers/atmodem/call-forwarding.c6
-rw-r--r--drivers/isimodem/call-forwarding.c9
-rw-r--r--drivers/isimodem/isimodem.c2
-rw-r--r--include/call-forwarding.h3
-rw-r--r--plugins/generic_at.c2
-rw-r--r--src/call-forwarding.c4
6 files changed, 17 insertions, 9 deletions
diff --git a/drivers/atmodem/call-forwarding.c b/drivers/atmodem/call-forwarding.c
index d6224680..24fd8332 100644
--- a/drivers/atmodem/call-forwarding.c
+++ b/drivers/atmodem/call-forwarding.c
@@ -262,8 +262,12 @@ static gboolean at_ccfc_register(gpointer user)
return FALSE;
}
-static int at_ccfc_probe(struct ofono_call_forwarding *cf)
+static int at_ccfc_probe(struct ofono_call_forwarding *cf, int vendor,
+ void *data)
{
+ GAtChat *chat = data;
+
+ ofono_call_forwarding_set_data(cf, chat);
g_idle_add(at_ccfc_register, cf);
return 0;
diff --git a/drivers/isimodem/call-forwarding.c b/drivers/isimodem/call-forwarding.c
index 08236c8c..ce5e40f0 100644
--- a/drivers/isimodem/call-forwarding.c
+++ b/drivers/isimodem/call-forwarding.c
@@ -79,10 +79,13 @@ static void isi_query(struct ofono_call_forwarding *cf, int type, int cls,
{
}
-static int isi_call_forwarding_probe(struct ofono_call_forwarding *cf)
+static int isi_call_forwarding_probe(struct ofono_call_forwarding *cf,
+ int vendor, void *user)
{
- GIsiModem *idx = ofono_call_forwarding_get_data(cf);
- struct call_forwarding_data *data = g_try_new0(struct call_forwarding_data, 1);
+ GIsiModem *idx = user;
+ struct call_forwarding_data *data;
+
+ data = g_try_new0(struct call_forwarding_data, 1);
if (!data)
return -ENOMEM;
diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c
index 22e467ed..bac07fc0 100644
--- a/drivers/isimodem/isimodem.c
+++ b/drivers/isimodem/isimodem.c
@@ -157,7 +157,7 @@ static int isi_modem_populate(struct ofono_modem *modem)
ofono_sim_create(isi->modem, "isi", isi->idx);
ofono_ssn_create(isi->modem, "isi", isi->idx);
ofono_ussd_create(isi->modem, "isi", isi->idx);
- ofono_call_forwarding_create(isi->modem, "isi", isi->idx);
+ ofono_call_forwarding_create(isi->modem, 0, "isi", isi->idx);
ofono_call_settings_create(isi->modem, "isi", isi->idx);
ofono_call_barring_create(isi->modem, 0, "isi", isi->idx);
ofono_call_meter_create(isi->modem, "isi", isi->idx);
diff --git a/include/call-forwarding.h b/include/call-forwarding.h
index 49702855..3f6ce443 100644
--- a/include/call-forwarding.h
+++ b/include/call-forwarding.h
@@ -47,7 +47,7 @@ typedef void (*ofono_call_forwarding_query_cb_t)(const struct ofono_error *error
struct ofono_call_forwarding_driver {
const char *name;
- int (*probe)(struct ofono_call_forwarding *cf);
+ int (*probe)(struct ofono_call_forwarding *cf, int vendor, void *data);
int (*remove)(struct ofono_call_forwarding *cf);
void (*activation)(struct ofono_call_forwarding *cf,
int type, int cls,
@@ -71,6 +71,7 @@ int ofono_call_forwarding_driver_register(const struct ofono_call_forwarding_dri
void ofono_call_forwarding_driver_unregister(const struct ofono_call_forwarding_driver *d);
struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *modem,
+ int vendor,
const char *driver,
void *data);
diff --git a/plugins/generic_at.c b/plugins/generic_at.c
index 0676ae86..0a7b214d 100644
--- a/plugins/generic_at.c
+++ b/plugins/generic_at.c
@@ -512,7 +512,7 @@ static int generic_at_populate(struct ofono_modem *modem)
ofono_devinfo_create(modem, "generic_at", chat);
ofono_ussd_create(modem, "generic_at", chat);
ofono_sim_create(modem, "generic_at", chat);
- ofono_call_forwarding_create(modem, "generic_at", chat);
+ ofono_call_forwarding_create(modem, 0, "generic_at", chat);
ofono_call_settings_create(modem, "generic_at", chat);
ofono_netreg_create(modem, "generic_at", chat);
ofono_voicecall_create(modem, "generic_at", chat);
diff --git a/src/call-forwarding.c b/src/call-forwarding.c
index 649040fa..7c66bec3 100644
--- a/src/call-forwarding.c
+++ b/src/call-forwarding.c
@@ -1147,6 +1147,7 @@ static void call_forwarding_remove(struct ofono_atom *atom)
}
struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *modem,
+ int vendor,
const char *driver,
void *data)
{
@@ -1161,7 +1162,6 @@ struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *m
if (cf == NULL)
return NULL;
- cf->driver_data = data;
cf->atom = __ofono_modem_add_atom(modem,
OFONO_ATOM_TYPE_CALL_FORWARDING,
call_forwarding_remove, cf);
@@ -1171,7 +1171,7 @@ struct ofono_call_forwarding *ofono_call_forwarding_create(struct ofono_modem *m
if (g_strcmp0(drv->name, driver))
continue;
- if (drv->probe(cf) < 0)
+ if (drv->probe(cf, vendor, data) < 0)
continue;
cf->driver = drv;