/* externally accessible functions */ EINTERN int e_msgbus_init(void) { E_DBus_Interface *iface; _e_msgbus_data = E_NEW(E_Msgbus_Data, 1); e_dbus_init(); #ifdef HAVE_HAL e_hal_init(); #endif _e_msgbus_data->conn = e_dbus_bus_get(DBUS_BUS_SESSION); if (!_e_msgbus_data->conn) { printf("WARNING: Cannot get DBUS_BUS_SESSION\n"); return 0; } e_dbus_request_name(_e_msgbus_data->conn, "org.enlightenment.wm.service", 0, _e_msgbus_request_name_cb, NULL); _e_msgbus_data->obj = e_dbus_object_add(_e_msgbus_data->conn, "/org/enlightenment/wm/RemoteObject", NULL); iface = e_dbus_interface_new("org.enlightenment.wm.Core"); if (!iface) { printf("WARNING: Cannot add org.enlightenment.wm.Core interface\n"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Hardcore methods */ e_dbus_interface_method_add(iface, "Restart", "", "", _e_msgbus_core_restart_cb); e_dbus_interface_method_add(iface, "Shutdown", "", "", _e_msgbus_core_shutdown_cb); iface = e_dbus_interface_new("org.enlightenment.wm.Module"); if (!iface) { printf("WARNING: Cannot add org.enlightenment.wm.Module interface\n"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Module methods */ e_dbus_interface_method_add(iface, "Load", "s", "", _e_msgbus_module_load_cb); e_dbus_interface_method_add(iface, "Unload", "s", "", _e_msgbus_module_unload_cb); e_dbus_interface_method_add(iface, "Enable", "s", "", _e_msgbus_module_enable_cb); e_dbus_interface_method_add(iface, "Disable", "s", "", _e_msgbus_module_disable_cb); e_dbus_interface_method_add(iface, "List", "", "a(si)", _e_msgbus_module_list_cb); iface = e_dbus_interface_new("org.enlightenment.wm.Profile"); if (!iface) { printf("WARNING: Cannot add org.enlightenment.wm.Profile interface\n"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Profile methods */ e_dbus_interface_method_add(iface, "Set", "s", "", _e_msgbus_profile_set_cb); e_dbus_interface_method_add(iface, "Get", "", "s", _e_msgbus_profile_get_cb); e_dbus_interface_method_add(iface, "List", "", "as", _e_msgbus_profile_list_cb); e_dbus_interface_method_add(iface, "Add", "s", "", _e_msgbus_profile_add_cb); e_dbus_interface_method_add(iface, "Delete", "s", "", _e_msgbus_profile_delete_cb); return 1; }
/* externally accessible functions */ EINTERN int e_msgbus_init(void) { E_DBus_Interface *iface; _e_msgbus_data = E_NEW(E_Msgbus_Data, 1); e_dbus_init(); #ifdef HAVE_HAL e_hal_init(); #endif _e_msgbus_data->conn = e_dbus_bus_get(DBUS_BUS_SESSION); if (!_e_msgbus_data->conn) { WRN("Cannot get DBUS_BUS_SESSION"); return 0; } e_dbus_request_name(_e_msgbus_data->conn, "org.enform.wm.service", 0, _e_msgbus_request_name_cb, NULL); _e_msgbus_data->obj = e_dbus_object_add(_e_msgbus_data->conn, "/org/enform/wm/RemoteObject", NULL); iface = e_dbus_interface_new("org.enform.wm.Core"); if (!iface) { WRN("Cannot add org.enform.wm.Core interface"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Hardcore methods */ e_dbus_interface_method_add(iface, "Restart", "", "", _e_msgbus_core_restart_cb); e_dbus_interface_method_add(iface, "Shutdown", "", "", _e_msgbus_core_shutdown_cb); iface = e_dbus_interface_new("org.enform.wm.Module"); if (!iface) { WRN("Cannot add org.enform.wm.Module interface"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Module methods */ e_dbus_interface_method_add(iface, "Load", "s", "", _e_msgbus_module_load_cb); e_dbus_interface_method_add(iface, "Unload", "s", "", _e_msgbus_module_unload_cb); e_dbus_interface_method_add(iface, "Enable", "s", "", _e_msgbus_module_enable_cb); e_dbus_interface_method_add(iface, "Disable", "s", "", _e_msgbus_module_disable_cb); e_dbus_interface_method_add(iface, "List", "", "a(si)", _e_msgbus_module_list_cb); iface = e_dbus_interface_new("org.enform.wm.Profile"); if (!iface) { WRN("Cannot add org.enform.wm.Profile interface"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Profile methods */ e_dbus_interface_method_add(iface, "Set", "s", "", _e_msgbus_profile_set_cb); e_dbus_interface_method_add(iface, "Get", "", "s", _e_msgbus_profile_get_cb); e_dbus_interface_method_add(iface, "List", "", "as", _e_msgbus_profile_list_cb); e_dbus_interface_method_add(iface, "Add", "s", "", _e_msgbus_profile_add_cb); e_dbus_interface_method_add(iface, "Delete", "s", "", _e_msgbus_profile_delete_cb); iface = e_dbus_interface_new("org.enform.wm.Window"); if (!iface) { WRN("Cannot add org.enform.wm.Window interface"); return 0; } e_dbus_object_interface_attach(_e_msgbus_data->obj, iface); e_dbus_interface_unref(iface); /* Profile methods */ e_dbus_interface_method_add(iface, "List", "", "a(si)", _e_msgbus_window_list_cb); e_dbus_interface_method_add(iface, "Close", "i", "", _e_msgbus_window_close_cb); e_dbus_interface_method_add(iface, "Kill", "i", "", _e_msgbus_window_kill_cb); e_dbus_interface_method_add(iface, "Focus", "i", "", _e_msgbus_window_focus_cb); e_dbus_interface_method_add(iface, "Iconify", "i", "", _e_msgbus_window_iconify_cb); e_dbus_interface_method_add(iface, "Uniconify", "i", "", _e_msgbus_window_uniconify_cb); e_dbus_interface_method_add(iface, "Maximize", "i", "", _e_msgbus_window_maximize_cb); e_dbus_interface_method_add(iface, "Unmaximize", "i", "", _e_msgbus_window_unmaximize_cb); return 1; }
int _bt_ipc_send_obex_message(uint8_t *address, const uint8_t *files, uint32_t length) { int result = 0; uint32_t i, count = 1; E_DBus_Connection *conn = NULL; LOGD("[%s(): %d] BEGIN>>>>", __FUNCTION__, __LINE__); if (address == NULL || files == NULL) { LOGD("invalid param [%p] [%p]", address, files); return 0; } /* count files */ for (i = 0; i < length; i++) { if (files[i] == '?') { count++; } } if (e_dbus_init() > 0) { if ((conn = e_dbus_bus_get(DBUS_BUS_SYSTEM)) != NULL) { DBusMessage *msg = NULL; if (e_dbus_request_name(conn, "User.Bluetooth.UG", 0, NULL, NULL) != NULL) { if ((msg = dbus_message_new_signal("/org/projectx/connect_device", "User.Bluetooth.UG", "Send")) != NULL) { int reserved = 0; char *type = "nfc"; LOGD("msg [%p], reserved [%d], address [%02X:%02X:%02X:%02X:%02X:%02X], count [%d], files [%s]", msg, reserved, address[0], address[1], address[2], address[3], address[4], address[5], count, files); if (dbus_message_append_args(msg, DBUS_TYPE_INT32, &reserved, DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE, &address, 6, DBUS_TYPE_INT32, &count, DBUS_TYPE_STRING, &files, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID)) { e_dbus_message_send(conn, msg, NULL, -1, NULL); LOGD("Send success"); } else { LOGE("Connect sending failed"); result = -1; } dbus_message_unref(msg); } else { LOGE("dbus_message_new_signal failed"); result = -1; } } else { LOGE("e_dbus_request_name failed"); result = -1; } } else { LOGE("e_dbus_bus_get failed"); result = -1; } e_dbus_shutdown(); } else { LOGE("e_dbus_init failed"); result = -1; } LOGD("[%s(): %d] END>>>>", __FUNCTION__, __LINE__); return result; }