+int _bt_init_hf_local_term_event_sender(void)
+{
+ GDBusConnection *conn;
+ GError *err = NULL;
+
+ if (hf_local_term_event_conn) {
+ BT_ERR("Event handler is already exist");
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &err);
+ if (conn == NULL) {
+ BT_ERR("conn == NULL");
+ if (err) {
+ BT_ERR("Code[%d], Message[%s]",
+ err->code, err->message);
+ g_clear_error(&err);
+ }
+
+ return BLUETOOTH_ERROR_INTERNAL;
+ }
+
+ hf_local_term_event_conn = conn;
+
+ return BLUETOOTH_ERROR_NONE;
+}
+
+void _bt_deinit_hf_local_term_event_sender(void)
+{
+ if (hf_local_term_event_conn) {
+ g_object_unref(hf_local_term_event_conn);
+ hf_local_term_event_conn = NULL;
+ }
+}
+
+int _bt_send_dump_signal(char *signal)
+{
+ GError *error = NULL;
+ int32_t pid = getpid();
+
+ retv_if(event_conn == NULL, BLUETOOTH_ERROR_INTERNAL);
+
+ if (!g_dbus_connection_emit_signal(event_conn, NULL,
+ BT_DUMP_SERVICE_PATH,
+ BT_DUMP_SERVICE_INTERFACE,
+ signal, g_variant_new("(i)", pid),
+ &error)) {
+ BT_ERR("Error while sending Signal: %s", signal);
+ if (error) {
+ BT_ERR("Error Code [%d], Error Message [%s]",
+ error->code, error->message);
+ g_clear_error(&error);
+ }
+ }
+
+ return BLUETOOTH_ERROR_NONE;
+}