summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsrimaldia <hariasti.srimaldia-1@jp.alps.com>2016-12-22 18:42:54 +0900
committersrimaldia <hariasti.srimaldia-1@jp.alps.com>2016-12-22 20:43:33 +0900
commit562c232a4c172aa1f6fcf11765531c464f5c832a (patch)
tree62aab4a24a97be5a489df48987050816c12dc2ae
parent68de4f90d5795475016189cff12d7e0011b07d37 (diff)
Add status icon for bluetooth
<?xml version="1.0"?> <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <policy context="default"> <allow send_destination="org.agl.homescreen"/> </policy> </busconfig> Change-Id: I598fd21f66620a518d5cc4068c352c31961834bd Signed-off-by: srimaldia <hariasti.srimaldia-1@jp.alps.com>
-rw-r--r--bluetooth-api.c4
-rw-r--r--bluetooth-manager.c31
-rw-r--r--bluetooth-manager.h11
3 files changed, 46 insertions, 0 deletions
diff --git a/bluetooth-api.c b/bluetooth-api.c
index f7e2d9a..487a79f 100644
--- a/bluetooth-api.c
+++ b/bluetooth-api.c
@@ -52,6 +52,8 @@ static void bt_power (struct afb_req request)
if (0==ret)
{
+
+ setHMIStatus(ACTIVE);
(TRUE==power_value)?json_object_object_add (jresp, "power", json_object_new_string ("on"))
: json_object_object_add (jresp, "power", json_object_new_string ("off"));
}
@@ -72,6 +74,7 @@ static void bt_power (struct afb_req request)
return;
}
json_object_object_add (jresp, "power", json_object_new_string ("on"));
+ setHMIStatus(ACTIVE);
}
/* "?value=" parameter is "0" or "false" */
@@ -84,6 +87,7 @@ static void bt_power (struct afb_req request)
}
json_object_object_add (jresp, "power", json_object_new_string ("off"));
+ setHMIStatus(INACTIVE);
}
else
{
diff --git a/bluetooth-manager.c b/bluetooth-manager.c
index 4c49196..893760d 100644
--- a/bluetooth-manager.c
+++ b/bluetooth-manager.c
@@ -743,5 +743,36 @@ int isHFPConnected(struct btd_device *addr) {
}
+GError* setHMIStatus(enum btStates state) {
+
+ gchar *iconString = NULL;
+ GDBusConnection *connection;
+ GVariant *params = NULL;
+ GVariant *message = NULL;
+ GError *error = NULL;
+
+ if (state==INACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png";
+ else if (state==ACTIVE) iconString = "qrc:/images/Status/HMI_Status_Bluetooth_On-01.png";
+ else iconString = "qrc:/images/Status/HMI_Status_Bluetooth_Inactive-01.png";
+
+ connection = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);
+
+ params = g_variant_new("(is)", HOMESCREEN_BT_ICON_POSITION, iconString);
+
+ message = g_dbus_connection_call_sync(connection, HOMESCREEN_SERVICE,
+ HOMESCREEN_ICON_PATH, HOMESCREEN_ICON_INTERFACE, "setStatusIcon", params,
+ NULL, G_DBUS_CALL_FLAGS_NONE,
+ DBUS_REPLY_TIMEOUT, NULL, &error);
+
+ if (error) {
+ printf("error: %s\n", error->message);
+
+ return error;
+ } else {
+ return NULL;
+ }
+
+}
+
/************************************** The End Of File **************************************/
diff --git a/bluetooth-manager.h b/bluetooth-manager.h
index cb018b0..3602a78 100644
--- a/bluetooth-manager.h
+++ b/bluetooth-manager.h
@@ -77,6 +77,11 @@
#define AGENT_CONN (cli.agent_conn)
#define OBEX_CONN (cli.obex_conn)
+#define HOMESCREEN_SERVICE "org.agl.homescreen"
+#define HOMESCREEN_ICON_INTERFACE "org.agl.statusbar"
+#define HOMESCREEN_ICON_PATH "/StatusBar"
+#define HOMESCREEN_BT_ICON_POSITION 1
+
#define DBUS_REPLY_TIMEOUT (120 * 1000)
#define DBUS_REPLY_TIMEOUT_SHORT (10 * 1000)
@@ -115,6 +120,9 @@ typedef struct {
GSList * device;
} stBluetoothManage;
+enum btStates {INACTIVE, ACTIVE};
+
+
int BluetoothManageInit(void);
int adapter_set_powered(gboolean value);
@@ -136,6 +144,9 @@ int device_set_property(struct btd_device * addr, const char *property, const ch
int isAVPConnected(struct btd_device *BDdevice);
int isHFPConnected(struct btd_device *BDdevice);
+GError* setHMIStatus(enum btStates);
+
+
#endif /* BLUETOOTH_MANAGER_H */