mirror of git://git.sysmocom.de/ofono
Add vendor parameter to call-meter
This commit is contained in:
parent
7ee954b28a
commit
390bd82109
|
@ -365,9 +365,11 @@ static void at_call_meter_initialized(gboolean ok, GAtResult *result,
|
||||||
ofono_call_meter_register(cm);
|
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+CAOC=2", NULL, NULL, NULL, NULL);
|
||||||
g_at_chat_send(chat, "AT+CCWE=1", NULL,
|
g_at_chat_send(chat, "AT+CCWE=1", NULL,
|
||||||
|
|
|
@ -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);
|
struct call_meter_data *data = g_try_new0(struct call_meter_data, 1);
|
||||||
|
|
||||||
if (!data)
|
if (!data)
|
||||||
|
|
|
@ -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_forwarding_create(isi->modem, 0, "isi", isi->idx);
|
||||||
ofono_call_settings_create(isi->modem, "isi", isi->idx);
|
ofono_call_settings_create(isi->modem, "isi", isi->idx);
|
||||||
ofono_call_barring_create(isi->modem, 0, "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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ typedef void(*ofono_call_meter_set_cb_t)(const struct ofono_error *error,
|
||||||
|
|
||||||
struct ofono_call_meter_driver {
|
struct ofono_call_meter_driver {
|
||||||
const char *name;
|
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);
|
int (*remove)(struct ofono_call_meter *cm);
|
||||||
void (*call_meter_query)(struct ofono_call_meter *cm,
|
void (*call_meter_query)(struct ofono_call_meter *cm,
|
||||||
ofono_call_meter_query_cb_t cb, void *data);
|
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);
|
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,
|
struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem,
|
||||||
|
int vendor,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
void *data);
|
void *data);
|
||||||
|
|
||||||
|
|
|
@ -516,7 +516,7 @@ static int generic_at_populate(struct ofono_modem *modem)
|
||||||
ofono_call_settings_create(modem, "generic_at", chat);
|
ofono_call_settings_create(modem, "generic_at", chat);
|
||||||
ofono_netreg_create(modem, "generic_at", chat);
|
ofono_netreg_create(modem, "generic_at", chat);
|
||||||
ofono_voicecall_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_call_barring_create(modem, 0, "generic_at", chat);
|
||||||
ofono_ssn_create(modem, "generic_at", chat);
|
ofono_ssn_create(modem, "generic_at", chat);
|
||||||
ofono_sms_create(modem, "generic_at", chat);
|
ofono_sms_create(modem, "generic_at", chat);
|
||||||
|
|
|
@ -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,
|
struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem,
|
||||||
|
int vendor,
|
||||||
const char *driver,
|
const char *driver,
|
||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
|
@ -731,7 +732,6 @@ struct ofono_call_meter *ofono_call_meter_create(struct ofono_modem *modem,
|
||||||
if (cm == NULL)
|
if (cm == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
cm->driver_data = data;
|
|
||||||
cm->atom = __ofono_modem_add_atom(modem,
|
cm->atom = __ofono_modem_add_atom(modem,
|
||||||
OFONO_ATOM_TYPE_CALL_METER,
|
OFONO_ATOM_TYPE_CALL_METER,
|
||||||
call_meter_remove, cm);
|
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))
|
if (g_strcmp0(drv->name, driver))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (drv->probe(cm) < 0)
|
if (drv->probe(cm, vendor, data) < 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
cm->driver = drv;
|
cm->driver = drv;
|
||||||
|
|
Loading…
Reference in New Issue