Check NFC feature support through neard
authorArron Wang <arron.wang@intel.com>
Thu, 6 Mar 2014 08:43:20 +0000 (16:43 +0800)
committerArron Wang <arron.wang@intel.com>
Mon, 17 Mar 2014 05:13:13 +0000 (13:13 +0800)
Disable plugin based design
Disable client/server architecture, then server side DBus
initialize is also not needed

Change-Id: I2633e6672f73d14b8df8a49aa5c02ac4206c2258

daemon/CMakeLists.txt
daemon/net_nfc_server.c
packaging/nfc-manager.spec

index b30486c..d1f34d9 100755 (executable)
@@ -10,11 +10,11 @@ IF(ARM_TARGET)
        pkg_check_modules(daemon_pkgs REQUIRED aul glib-2.0 gio-unix-2.0 security-server
                vconf dlog tapi appsvc libcurl bluetooth-api libssl svi capi-media-wav-player
                pkgmgr pkgmgr-info capi-network-wifi ecore-x pmapi wifi-direct
-               libtzplatform-config)
+               libtzplatform-config neardal)
 ELSE(ARM_TARGET)
        pkg_check_modules(daemon_pkgs REQUIRED aul glib-2.0 gio-unix-2.0 security-server
                vconf dlog tapi appsvc libcurl bluetooth-api libssl svi capi-media-wav-player
-               pkgmgr pkgmgr-info capi-network-wifi ecore-x pmapi libtzplatform-config)
+               pkgmgr pkgmgr-info capi-network-wifi ecore-x pmapi libtzplatform-config neardal)
 ENDIF(ARM_TARGET)
 
 FOREACH(flag ${daemon_pkgs_CFLAGS})
index e6448fb..65b1e29 100644 (file)
@@ -38,6 +38,8 @@
 #include "net_nfc_server_system_handler.h"
 #include "net_nfc_server_context.h"
 
+#include "neardal.h"
+
 static gboolean use_daemon = FALSE;
 static GMainLoop *loop = NULL;
 
@@ -308,11 +310,29 @@ static void on_name_lost(GDBusConnection *connnection, const gchar *name,
        net_nfc_manager_quit();
 }
 
+static bool net_nfc_neard_nfc_support(void)
+{
+       char **adapters = NULL;
+       int len;
+       errorCode_t err;
+
+       NFC_INFO("checking nfc support");
+       err = neardal_get_adapters(&adapters, &len);
+       if (err != NEARDAL_SUCCESS)
+               return false;
+
+       if (!(len > 0 && adapters != NULL))
+               return false;
+
+       neardal_free_array(&adapters);
+       adapters = NULL;
+       neardal_destroy();
+
+       return true;
+}
 
 int main(int argc, char *argv[])
 {
-       guint id = 0;
-       void *handle = NULL;
        GError *error = NULL;
        gboolean use_daemon = FALSE;
        GOptionContext *option_context;
@@ -336,10 +356,9 @@ int main(int argc, char *argv[])
 
        net_nfc_app_util_clean_storage(MESSAGE_STORAGE);
 
-       handle = net_nfc_controller_onload();
-       if (NULL == handle)
+       if (net_nfc_neard_nfc_support() == false)
        {
-               NFC_ERR("load plugin library is failed");
+               NFC_ERR("failed to detect NFC devices");
 
                if (vconf_set_bool(VCONFKEY_NFC_FEATURE, VCONFKEY_NFC_FEATURE_OFF) != 0)
                        NFC_ERR("VCONFKEY_NFC_FEATURE set to %d failed", VCONFKEY_NFC_FEATURE_OFF);
@@ -353,29 +372,15 @@ int main(int argc, char *argv[])
        if (vconf_set_bool(VCONFKEY_NFC_FEATURE, VCONFKEY_NFC_FEATURE_ON) != 0)
                NFC_ERR("VCONFKEY_NFC_FEATURE set to %d failed", VCONFKEY_NFC_FEATURE_ON);
 
-       id = g_bus_own_name(G_BUS_TYPE_SYSTEM,
-                       "org.tizen.NetNfcService",
-                       G_BUS_NAME_OWNER_FLAGS_NONE,
-                       on_bus_acquired,
-                       on_name_acquired,
-                       on_name_lost,
-                       NULL,
-                       NULL);
+       net_nfc_server_vconf_init();
 
        loop = g_main_loop_new(NULL, FALSE);
        g_main_loop_run(loop);
 
 EXIT :
        net_nfc_server_vconf_deinit();
-       net_nfc_server_controller_deinit();
-       net_nfc_server_gdbus_deinit();
-
-       if (id)
-               g_bus_unown_name(id);
-
-       net_nfc_controller_unload(handle);
 
        g_option_context_free(option_context);
 
        return 0;
-}
\ No newline at end of file
+}
index f3d34e4..6850646 100755 (executable)
@@ -28,6 +28,7 @@ BuildRequires:  pkgconfig(pkgmgr-info)
 BuildRequires:  pkgconfig(ecore-x)
 BuildRequires:  pkgconfig(pmapi)
 BuildRequires:  pkgconfig(libtzplatform-config)
+BuildRequires:  pkgconfig(neardal)
 BuildRequires:  python
 BuildRequires:  python-xml
 BuildRequires:  gettext-tools