extcon: change interface for extcon devices to dbus signal 50/71650/1 accepted/tizen/common/20160527.152821 accepted/tizen/ivi/20160527.052239 accepted/tizen/mobile/20160527.051749 accepted/tizen/tv/20160527.052117 accepted/tizen/wearable/20160527.052023 submit/tizen/20160527.033639
authorTaeyoung Kim <ty317.kim@samsung.com>
Thu, 26 May 2016 09:51:58 +0000 (18:51 +0900)
committerTaeyoung Kim <ty317.kim@samsung.com>
Thu, 26 May 2016 09:56:40 +0000 (18:56 +0900)
- The interface for extcon devices such as usb cable and
  earjack is changed from dbus method to dbus signal.
  Thus the signal is broadcasted.

Change-Id: Iae3407645b18bdea7d19fcaa4f0ac6b199f1fc48
Signed-off-by: Taeyoung Kim <ty317.kim@samsung.com>
include/emuld.h
src/common.cpp
src/mobile.cpp
src/wearable.cpp

index 2e5b6f73478c3ba3664758a840854bac376e327b..09c152c60f3150fc9baa84031dc2554ab07831e9 100644 (file)
@@ -125,6 +125,7 @@ void send_emuld_connection(void);
 void add_msg_proc_common(void);
 void add_msg_proc_ext(void);
 void dbus_send(const char* device, const char* target, const char* option);
+void dbus_send_signal(const char* device, const char* target, const char* option);
 int parse_val(char *buff, unsigned char data, char *parsbuf);
 bool msgproc_hds(ijcommand* ijcmd);
 bool msgproc_cmd(ijcommand* ijcmd);
index 9a655ad43b17acdf140cdaeeb6e213a1dbd6d81a..4063ee55902bc021412607c5562ed622048260df 100644 (file)
@@ -291,6 +291,23 @@ void dbus_send(const char* device, const char* target, const char* option)
     LOGINFO("dbus_send: %s", cmd);
 }
 
+#define DBUS_SEND_PRE_CMD_SIGNAL   "dbus-send --system --type=signal /Org/Tizen/System/DeviceD/"
+#define DBUS_SEND_MID_CMD_SIGNAL   " org.tizen.system.deviced."
+void dbus_send_signal(const char* device, const char* target, const char* option)
+{
+    const char* dbus_send_pre_cmd = DBUS_SEND_PRE_CMD_SIGNAL;
+    const char* dbus_send_mid_cmd = DBUS_SEND_MID_CMD_SIGNAL;
+    char cmd[DBUS_MSG_BUF_SIZE];
+
+    if (device == NULL || option == NULL || target == NULL)
+        return;
+
+    snprintf(cmd, sizeof(cmd), "%s%s%s%s.%s string:\"%s\" %s", dbus_send_pre_cmd, target, dbus_send_mid_cmd, target, device, device, option);
+
+    systemcall(cmd);
+    LOGINFO("dbus_send: %s", cmd);
+}
+
 void add_msg_proc_common(void)
 {
     bool ret;
index a49b6bcf89a1048e0fff7ec9f3681b7faadd1c5d..ca6bf83d581a1a86fcface4025ebda42d80520bd 100644 (file)
@@ -107,7 +107,7 @@ static void dbus_send_usb(int on)
 
     snprintf(option, sizeof(option), "int32:2 string:\"usb\" string:\"%d\"", on);
 
-    dbus_send(usb_device, DBUS_SEND_EXTCON, option);
+    dbus_send_signal(usb_device, DBUS_SEND_EXTCON, option);
 }
 
 static void dbus_send_earjack(int on)
@@ -117,7 +117,7 @@ static void dbus_send_earjack(int on)
 
     snprintf(option, sizeof(option), "int32:2 string:\"earjack\" string:\"%d\"", on);
 
-    dbus_send(earjack_device, DBUS_SEND_EXTCON, option);
+    dbus_send_signal(earjack_device, DBUS_SEND_EXTCON, option);
 }
 
 int parse_motion_data(int len, char *buffer)
index c6cd949f759b8fb14b639c7e898ceb5eec819353..93e843d07ed3cb0ae5f29d29dfa32e5f73af714e 100644 (file)
@@ -71,7 +71,7 @@ static void dbus_send_usb(int on)
 
     snprintf(option, sizeof(option), "int32:2 string:\"usb\" string:\"%d\"", on);
 
-    dbus_send(usb_device, DBUS_SEND_EXTCON, option);
+    dbus_send_signal(usb_device, DBUS_SEND_EXTCON, option);
 }
 
 static void dbus_send_earjack(int on)
@@ -81,7 +81,7 @@ static void dbus_send_earjack(int on)
 
     snprintf(option, sizeof(option), "int32:2 string:\"earjack\" string:\"%d\"", on);
 
-    dbus_send(earjack_device, DBUS_SEND_EXTCON, option);
+    dbus_send_signal(earjack_device, DBUS_SEND_EXTCON, option);
 }
 
 static int read_from_file(const char* file_name)