From 390bd821094dceee3215718cf27cecd2709e14eb Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Tue, 1 Sep 2009 17:08:37 -0500 Subject: [PATCH] Add vendor parameter to call-meter --- drivers/atmodem/call-meter.c | 6 ++++-- drivers/isimodem/call-meter.c | 5 +++-- drivers/isimodem/isimodem.c | 2 +- include/call-meter.h | 3 ++- plugins/generic_at.c | 2 +- src/call-meter.c | 4 ++-- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/atmodem/call-meter.c b/drivers/atmodem/call-meter.c index 15c270fc..2b68d058 100644 --- a/drivers/atmodem/call-meter.c +++ b/drivers/atmodem/call-meter.c @@ -365,9 +365,11 @@ static void at_call_meter_initialized(gboolean ok, GAtResult *result, ofono_call_meter_register(cm); } -static int at_caoc_probe(struct ofono_call_meter *cm) +static int at_caoc_probe(struct ofono_call_meter *cm, int vendor, void *data) { - GAtChat *chat = ofono_call_meter_get_data(cm); + GAtChat *chat = data; + + ofono_call_meter_set_data(cm, chat); g_at_chat_send(chat, "AT+CAOC=2", NULL, NULL, NULL, NULL); g_at_chat_send(chat, "AT+CCWE=1", NULL, diff --git a/drivers/isimodem/call-meter.c b/drivers/isimodem/call-meter.c index 7a7930f7..712b98ee 100644 --- a/drivers/isimodem/call-meter.c +++ b/drivers/isimodem/call-meter.c @@ -87,9 +87,10 @@ static void isi_puct_set(struct ofono_call_meter *cm, const char *currency, { } -static int isi_call_meter_probe(struct ofono_call_meter *cm) +static int isi_call_meter_probe(struct ofono_call_meter *cm, int vendor, + void *user) { - GIsiModem *idx = ofono_call_meter_get_data(cm); + GIsiModem *idx = user; struct call_meter_data *data = g_try_new0(struct call_meter_data, 1); if (!data) diff --git a/drivers/isimodem/isimodem.c b/drivers/isimodem/isimodem.c index bac07fc0..becda1f5 100644 --- a/drivers/isimodem/isimodem.c +++ b/drivers/isimodem/isimodem.c @@ -160,7 +160,7 @@ static int isi_modem_populate(struct ofono_modem *modem) 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); + ofono_call_meter_create(isi->modem, 0, "isi", isi->idx); return 0; } diff --git a/include/call-meter.h b/include/call-meter.h index b86937e2..bb8d05c6 100644 --- a/include/call-meter.h +++ b/include/call-meter.h @@ -42,7 +42,7 @@ typedef void(*ofono_call_meter_set_cb_t)(const struct ofono_error *error, struct ofono_call_meter_driver { const char *name; - int (*probe)(struct ofono_call_meter *cm); + int (*probe)(struct ofono_call_meter *cm, int vendor, void *data); int (*remove)(struct ofono_call_meter *cm); void (*call_meter_query)(struct ofono_call_meter *cm, ofono_call_meter_query_cb_t cb, void *data); @@ -66,6 +66,7 @@ int ofono_call_meter_driver_register(const struct ofono_call_meter_driver *d); void ofono_call_meter_driver_unregister(const struct ofono_call_meter_driver *d); struct ofono_call_meter *ofono_call_meter_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 0a7b214d..a8dd8dd0 100644 --- a/plugins/generic_at.c +++ b/plugins/generic_at.c @@ -516,7 +516,7 @@ static int generic_at_populate(struct ofono_modem *modem) ofono_call_settings_create(modem, "generic_at", chat); ofono_netreg_create(modem, "generic_at", chat); ofono_voicecall_create(modem, "generic_at", chat); - ofono_call_meter_create(modem, "generic_at", chat); + ofono_call_meter_create(modem, 0, "generic_at", chat); ofono_call_barring_create(modem, 0, "generic_at", chat); ofono_ssn_create(modem, "generic_at", chat); ofono_sms_create(modem, "generic_at", chat); diff --git a/src/call-meter.c b/src/call-meter.c index 6030e547..b56169cd 100644 --- a/src/call-meter.c +++ b/src/call-meter.c @@ -717,6 +717,7 @@ static void call_meter_remove(struct ofono_atom *atom) } struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem, + int vendor, const char *driver, void *data) { @@ -731,7 +732,6 @@ struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem, if (cm == NULL) return NULL; - cm->driver_data = data; cm->atom = __ofono_modem_add_atom(modem, OFONO_ATOM_TYPE_CALL_METER, call_meter_remove, cm); @@ -742,7 +742,7 @@ struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem, if (g_strcmp0(drv->name, driver)) continue; - if (drv->probe(cm) < 0) + if (drv->probe(cm, vendor, data) < 0) continue; cm->driver = drv;