diff options
author | Mikel Astiz <mikel.astiz@bmw-carit.de> | 2011-09-15 18:34:36 +0200 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2011-09-09 00:30:54 -0500 |
commit | 6072a981096462a971e86700441c6746f9b27a6d (patch) | |
tree | 21cae6b4046431a476007dba3a7112485fd91a6f /src/handsfree.c | |
parent | f9fba08432ee279e08e096f85975f7f6c66d72de (diff) | |
download | ofono-6072a981096462a971e86700441c6746f9b27a6d.tar.bz2 |
handsfree: Implement inband ring settings
Diffstat (limited to 'src/handsfree.c')
-rw-r--r-- | src/handsfree.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/handsfree.c b/src/handsfree.c index 797fe698..2bf2284c 100644 --- a/src/handsfree.c +++ b/src/handsfree.c @@ -43,17 +43,38 @@ static GSList *g_drivers = NULL; struct ofono_handsfree { + ofono_bool_t inband_ringing; const struct ofono_handsfree_driver *driver; void *driver_data; struct ofono_atom *atom; }; +void ofono_handsfree_set_inband_ringing(struct ofono_handsfree *hf, + ofono_bool_t enabled) +{ + DBusConnection *conn = ofono_dbus_get_connection(); + const char *path = __ofono_atom_get_path(hf->atom); + dbus_bool_t dbus_enabled = enabled; + + if (hf->inband_ringing == enabled) + return; + + hf->inband_ringing = enabled; + + ofono_dbus_signal_property_changed(conn, path, + OFONO_HANDSFREE_INTERFACE, + "InbandRinging", DBUS_TYPE_BOOLEAN, + &dbus_enabled); +} + static DBusMessage *handsfree_get_properties(DBusConnection *conn, DBusMessage *msg, void *data) { + struct ofono_handsfree *hf = data; DBusMessage *reply; DBusMessageIter iter; DBusMessageIter dict; + dbus_bool_t inband_ringing; reply = dbus_message_new_method_return(msg); if (reply == NULL) @@ -64,6 +85,11 @@ static DBusMessage *handsfree_get_properties(DBusConnection *conn, dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, OFONO_PROPERTIES_ARRAY_SIGNATURE, &dict); + + inband_ringing = hf->inband_ringing; + ofono_dbus_dict_append(&dict, "InbandRinging", DBUS_TYPE_BOOLEAN, + &inband_ringing); + dbus_message_iter_close_container(&iter, &dict); return reply; |