summaryrefslogtreecommitdiffstats
path: root/src/handsfree.c
diff options
context:
space:
mode:
authorMikel Astiz <mikel.astiz@bmw-carit.de>2011-09-15 18:34:36 +0200
committerDenis Kenzior <denkenz@gmail.com>2011-09-09 00:30:54 -0500
commit6072a981096462a971e86700441c6746f9b27a6d (patch)
tree21cae6b4046431a476007dba3a7112485fd91a6f /src/handsfree.c
parentf9fba08432ee279e08e096f85975f7f6c66d72de (diff)
downloadofono-6072a981096462a971e86700441c6746f9b27a6d.tar.bz2
handsfree: Implement inband ring settings
Diffstat (limited to 'src/handsfree.c')
-rw-r--r--src/handsfree.c26
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;