Add nfc power status changed callback support
authorArron Wang <arron.wang@intel.com>
Wed, 12 Mar 2014 12:14:47 +0000 (20:14 +0800)
committerArron Wang <arron.wang@intel.com>
Mon, 17 Mar 2014 05:20:54 +0000 (13:20 +0800)
Change-Id: Ie81f54fa7117b46aa927baeac1a84c20e98489b3

client/include/net_nfc_neard.h
client/net_nfc_client_manager.c
client/net_nfc_neard.c

index c122223..85acd5d 100644 (file)
@@ -7,6 +7,9 @@
 net_nfc_error_e net_nfc_neard_set_active(int state,
                net_nfc_client_manager_set_active_completed callback,
                void *user_data);
+void net_nfc_neard_set_activated(net_nfc_client_manager_activated callback,
+               void *user_data);
+void net_nfc_neard_unset_activated(void);
 net_nfc_error_e net_nfc_neard_initialize(void);
 void net_nfc_neard_deinitialize(void);
 
index db6b2fa..427d88d 100644 (file)
@@ -173,14 +173,12 @@ API void net_nfc_client_manager_set_activated(
 {
        RET_IF(NULL == callback);
 
-       activated_func_data.callback = callback;
-       activated_func_data.user_data = user_data;
+       net_nfc_neard_set_activated(callback, user_data);
 }
 
 API void net_nfc_client_manager_unset_activated(void)
 {
-       activated_func_data.callback = NULL;
-       activated_func_data.user_data = NULL;
+       net_nfc_neard_unset_activated();
 }
 
 API net_nfc_error_e net_nfc_client_manager_set_active(int state,
index 1df119a..a50b4c9 100644 (file)
@@ -14,6 +14,10 @@ typedef struct _net_nfc_client_cb
 {
        net_nfc_client_manager_set_active_completed active_cb;
        void *active_ud;
+
+       /* callback for power status changed */
+       net_nfc_client_manager_activated activated_cb;
+       void *activated_ud;
 } net_nfc_client_cb;
 
 static net_nfc_client_cb client_cb;
@@ -102,6 +106,9 @@ static void _adapter_property_changed_cb(char *name, char *property,
                        nfc_adapter_powered = false;
                else
                        nfc_adapter_powered = true;
+
+               if (client_cb.activated_cb != NULL)
+                       client_cb.activated_cb(nfc_adapter_powered, client_cb.activated_ud);
        }
 }
 
@@ -173,6 +180,19 @@ net_nfc_error_e net_nfc_neard_set_active(int state,
        return NET_NFC_OK;
 }
 
+void net_nfc_neard_set_activated(net_nfc_client_manager_activated callback,
+               void *user_data)
+{
+       client_cb.activated_cb = callback;
+       client_cb.activated_ud = user_data;
+}
+
+void net_nfc_neard_unset_activated(void)
+{
+       client_cb.activated_cb = NULL;
+       client_cb.activated_ud = NULL;
+}
+
 net_nfc_error_e net_nfc_neard_cb_init(void)
 {
        if (neardal_set_cb_adapter_added(