libneardal_la_SOURCES = neardal.c \
neardal_adapter.c \
neard_adapter_proxy.c \
- neardal_errors.c \
neardal_manager.c \
neard_manager_proxy.c \
neardal_record.c \
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
+ * This file contains all Public APIs
*/
#include <stdio.h>
#include "neardal.h"
#include "neardal_prv.h"
+
+#define NEARDAL_SET_STRING_VALUE(gValue, value) do { \
+ gValue = g_variant_new_string(value); \
+ } while (0);
+
+#define NEARDAL_SET_BOOL_VALUE(gValue, value) do { \
+ gValue = g_variant_new_boolean((gboolean) value); \
+ } while (0);
+
neardalCtx neardalMgr = {NULL, NULL, {NULL}, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL};
-/******************************************************************************
- * neardal_prv_construct: create NEARDAL object instance, Neard Dbus connection,
- * register Neard's events
- *****************************************************************************/
+/*---------------------------------------------------------------------------
+ * Context Management
+ ---------------------------------------------------------------------------*/
+/*****************************************************************************
+ * neardal_prv_construct: create NEARDAL object instance, Neard Dbus
+ * connection, register Neard's events
+ ****************************************************************************/
void neardal_prv_construct(errorCode_t *ec)
{
errorCode_t err = NEARDAL_SUCCESS;
"neardal_mgr_create() exit (err %d: %s)\n",
err, neardal_error_get_text(err));
- /* No Neard daemon, destroying neardal object... */
- if (err == NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY)
- neardal_tools_prv_free_gerror(&neardalMgr.gerror);
}
+ /* No Neard daemon, destroying neardal object... */
+ if (err == NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY)
+ neardal_tools_prv_free_gerror(&neardalMgr.gerror);
} else {
NEARDAL_TRACE_ERR("Unable to connect to dbus: %s\n",
neardalMgr.gerror->message);
}
-/******************************************************************************
+/*****************************************************************************
* neardal_destroy: destroy NEARDAL object instance, Disconnect Neard Dbus
* connection, unregister Neard's events
- *****************************************************************************/
+ ****************************************************************************/
void neardal_destroy(void)
{
NEARDAL_TRACEIN();
}
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_cb_adapter_added: setup a client callback for
* 'NEARDAL adapter added'.
* cb_adp_added = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_adapter_added(adapter_cb cb_adp_added,
void *user_data)
{
return NEARDAL_SUCCESS;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_cb_adapter_removed: setup a client callback for
* 'NEARDAL adapter added'.
* cb_adp_removed = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_adapter_removed(adapter_cb cb_adp_removed,
void *user_data)
{
return NEARDAL_SUCCESS;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_manager_cb_property_changed: setup a client callback for
* 'NEARDAL Adapter Property Change'.
* cb_mgr_adp_property_changed = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_adapter_property_changed(
adapter_prop_cb cb_adp_property_changed,
void *user_data)
return NEARDAL_SUCCESS;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_cb_adapter_added: setup a client callback for
* 'NEARDAL adapter added'.
* cb_adp_added = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_tag_found(tag_cb cb_tag_found,
void *user_data)
{
return NEARDAL_SUCCESS;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_cb_adapter_removed: setup a client callback for
* 'NEARDAL adapter added'.
* cb_adp_removed = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_tag_lost(tag_cb cb_tag_lost,
void *user_data)
{
}
-/******************************************************************************
+/*****************************************************************************
* neardal_set_cb_record_found: setup a client callback for
* 'NEARDAL tag record found'.
* cb_rcd_found = NULL to remove actual callback.
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_set_cb_record_found(record_cb cb_rcd_found,
void *user_data)
{
return NEARDAL_SUCCESS;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_free_array: free adapters array, tags array or records array
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_free_array(char ***array)
{
errorCode_t err = NEARDAL_SUCCESS;
return err;
}
+/*****************************************************************************
+ * neardal_error_get_text: return string error form error code
+ ****************************************************************************/
+char *neardal_error_get_text(errorCode_t ec)
+{
+ switch (ec) {
+ case NEARDAL_SUCCESS:
+ return "Success";
-/******************************************************************************
+ case NEARDAL_ERROR_GENERAL_ERROR:
+ return "General error";
+
+ case NEARDAL_ERROR_INVALID_PARAMETER:
+ return "Invalid parameter";
+
+ case NEARDAL_ERROR_NO_MEMORY:
+ return "Memory allocation error";
+
+ case NEARDAL_ERROR_DBUS:
+ return "DBUS general error";
+
+ case NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY:
+ return "Can not create a DBUS proxy";
+
+ case NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD:
+ return "Can not invoke a DBUS method";
+
+ case NEARDAL_ERROR_NO_ADAPTER:
+ return "No NFC adapter found...";
+
+ case NEARDAL_ERROR_NO_TAG:
+ return "No NFC tag found...";
+
+ case NEARDAL_ERROR_NO_RECORD:
+ return "No tag record found...";
+
+ case NEARDAL_ERROR_POLLING_ALREADY_ACTIVE:
+ return "Polling already active";
+
+ case NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR:
+ return "Error while invoking method";
+ }
+
+ return "UNKNOWN ERROR !!!";
+}
+
+
+/*---------------------------------------------------------------------------
+ * NFC Adapter Management
+ ---------------------------------------------------------------------------*/
+/*****************************************************************************
+ * neardal_get_adapters: get an array of NFC adapters (adpName) present
+ ****************************************************************************/
+errorCode_t neardal_get_adapters(char ***array, int *len)
+{
+ errorCode_t err = NEARDAL_SUCCESS;
+ int adpNb = 0;
+ int ct = 0; /* counter */
+ char **adps = NULL;
+ AdpProp *adapter = NULL;
+ gsize size;
+
+ if (neardalMgr.proxy == NULL)
+ neardal_prv_construct(&err);
+
+ if (err != NEARDAL_SUCCESS || array == NULL)
+ return NEARDAL_ERROR_INVALID_PARAMETER;
+
+ adpNb = g_list_length(neardalMgr.prop.adpList);
+ if (adpNb > 0) {
+ err = NEARDAL_ERROR_NO_MEMORY;
+ size = (adpNb + 1) * sizeof(char *);
+ adps = g_try_malloc0(size);
+ if (adps != NULL) {
+ GList *list;
+ while (ct < adpNb) {
+ list = neardalMgr.prop.adpList;
+ adapter = g_list_nth_data(list, ct);
+ if (adapter != NULL)
+ adps[ct++] = g_strdup(adapter->name);
+ }
+ err = NEARDAL_SUCCESS;
+ }
+ } else
+ err = NEARDAL_ERROR_NO_ADAPTER;
+
+ if (len != NULL)
+ *len = adpNb;
+ *array = adps;
+
+ return err;
+}
+
+/*****************************************************************************
+ * neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
+ ****************************************************************************/
+errorCode_t neardal_get_adapter_properties(const char *adpName,
+ neardal_adapter *adapter)
+{
+ errorCode_t err = NEARDAL_SUCCESS;
+ AdpProp *adpProp = NULL;
+ TagProp *tag = NULL;
+ int ct = 0; /* counter */
+ gsize size;
+
+ if (neardalMgr.proxy == NULL)
+ neardal_prv_construct(&err);
+
+ if (err != NEARDAL_SUCCESS || adpName == NULL || adapter == NULL)
+ goto exit;
+
+ err = neardal_mgr_prv_get_adapter((gchar *) adpName, &adpProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+
+ adapter->name = (char *) adpProp->name;
+ adapter->polling = (short) adpProp->polling;
+ adapter->powered = (short) adpProp->powered;
+
+ adapter->nbProtocols = adpProp->lenProtocols;
+ adapter->protocols = NULL;
+
+
+ if (adapter->nbProtocols > 0) {
+ err = NEARDAL_ERROR_NO_MEMORY;
+ size = (adapter->nbProtocols + 1) * sizeof(char *);
+ adapter->protocols = g_try_malloc0(size);
+ if (adapter->protocols != NULL) {
+ ct = 0;
+ while (ct < adapter->nbProtocols) {
+ gchar *tmp = g_strdup(adpProp->protocols[ct]);
+ adapter->protocols[ct++] = (char *) tmp;
+ }
+ err = NEARDAL_SUCCESS;
+ }
+ }
+
+ adapter->nbTags = (int) adpProp->tagNb;
+ adapter->tags = NULL;
+ if (adapter->nbTags <= 0)
+ goto exit;
+
+ err = NEARDAL_ERROR_NO_MEMORY;
+ size = (adapter->nbTags + 1) * sizeof(char *);
+ adapter->tags = g_try_malloc0(size);
+ if (adapter->tags == NULL)
+ goto exit;
+
+ ct = 0;
+ while (ct < adapter->nbTags) {
+ tag = g_list_nth_data(adpProp->tagList, ct);
+ if (tag != NULL)
+ adapter->tags[ct++] = g_strdup(tag->name);
+ }
+ err = NEARDAL_SUCCESS;
+
+exit:
+ return err;
+}
+
+/*****************************************************************************
+ * neardal_set_adapter_property: Set a property on a specific NEARDAL adapter
+ ****************************************************************************/
+errorCode_t neardal_set_adapter_property(const char *adpName,
+ int adpPropId, void *value)
+{
+ errorCode_t err = NEARDAL_SUCCESS;
+ AdpProp *adpProp = NULL;
+ const gchar *propKey = NULL;
+ GVariant *propValue = NULL;
+ GVariant *variantTmp = NULL;
+
+ if (neardalMgr.proxy == NULL)
+ neardal_prv_construct(&err);
+
+ if (err != NEARDAL_SUCCESS || adpName == NULL)
+ goto exit;
+
+ err = neardal_mgr_prv_get_adapter((gchar *) adpName, &adpProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+
+ switch (adpPropId) {
+ case NEARD_ADP_PROP_POWERED:
+ propKey = "Powered";
+ NEARDAL_SET_BOOL_VALUE(variantTmp, value);
+ break;
+ case NEARD_ADP_PROP_MODE:
+ propKey = "Mode";
+ NEARDAL_SET_STRING_VALUE(variantTmp, value);
+ break;
+ default:
+ break;
+ }
+
+ propValue = g_variant_new_variant(variantTmp);
+ NEARDAL_TRACE_LOG("Sending:\n%s=%s\n", propKey,
+ g_variant_print(propValue, TRUE));
+ org_neard_adp__call_set_property_sync(adpProp->proxy, propKey,
+ propValue, NULL,
+ &neardalMgr.gerror);
+
+
+ if (neardalMgr.gerror == NULL)
+ err = NEARDAL_SUCCESS;
+ else {
+ NEARDAL_TRACE_ERR(
+ "DBUS Error (%d): %s\n",
+ neardalMgr.gerror->code,
+ neardalMgr.gerror->message);
+ err = NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR;
+ }
+
+exit:
+ neardal_tools_prv_free_gerror(&neardalMgr.gerror);
+ neardalMgr.gerror = NULL;
+ g_variant_unref(propValue);
+ g_variant_unref(variantTmp);
+ return err;
+}
+
+/*****************************************************************************
* neardal_start_poll: Request Neard to start polling
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_start_poll(char *adpName)
{
errorCode_t err = NEARDAL_SUCCESS;
return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_stop_poll: Request Neard to stop polling
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_stop_poll(char *adpName)
{
errorCode_t err = NEARDAL_SUCCESS;
return err;
}
-/******************************************************************************
- * neardal_write: Write NDEF record to an NFC tag
- *****************************************************************************/
-errorCode_t neardal_write(neardal_record *record)
-{
- errorCode_t err = NEARDAL_SUCCESS;
- AdpProp *adpProp;
- TagProp *tagProp;
- RcdProp rcd;
-
-
- if (neardalMgr.proxy == NULL)
- neardal_prv_construct(&err);
-
- if (err != NEARDAL_SUCCESS || record == NULL)
- goto exit;
- err = neardal_mgr_prv_get_adapter((gchar *) record->name, &adpProp);
- if (err != NEARDAL_SUCCESS)
- goto exit;
- err = neardal_mgr_prv_get_tag(adpProp, (gchar *) record->name, &tagProp);
- if (err != NEARDAL_SUCCESS)
- goto exit;
-
- rcd.name = (gchar *) record->name;
- rcd.action = (gchar *) record->action;
- rcd.encoding = (gchar *) record->encoding;
- rcd.language = (gchar *) record->language;
- rcd.type = (gchar *) record->type;
- rcd.representation = (gchar *) record->representation;
- rcd.uri = (gchar *) record->uri;
- rcd.uriObjSize = record->uriObjSize;
- rcd.mime = (gchar *) record->mime;
-
- neardal_tag_write(tagProp, &rcd);
-exit:
- return err;
-}
-
-/******************************************************************************
- * neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
- *****************************************************************************/
-errorCode_t neardal_get_adapter_properties(const char *adpName,
- neardal_adapter *adapter)
+/*---------------------------------------------------------------------------
+ * NFC Tag Management
+ ---------------------------------------------------------------------------*/
+/*****************************************************************************
+ * neardal_get_tags: get an array of NFC tags present
+ ****************************************************************************/
+errorCode_t neardal_get_tags(char *adpName, char ***array, int *len)
{
- errorCode_t err = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_ERROR_NO_TAG;
AdpProp *adpProp = NULL;
- TagProp *tag = NULL;
+ int tagNb = 0;
int ct = 0; /* counter */
- gsize size;
+ char **tags = NULL;
+ TagProp *tag = NULL;
+
if (neardalMgr.proxy == NULL)
neardal_prv_construct(&err);
- if (err != NEARDAL_SUCCESS || adpName == NULL || adapter == NULL)
- goto exit;
+ if (err != NEARDAL_SUCCESS || adpName == NULL || array == NULL)
+ return NEARDAL_ERROR_INVALID_PARAMETER;
- err = neardal_mgr_prv_get_adapter((gchar *) adpName, &adpProp);
+ err = neardal_mgr_prv_get_adapter(adpName, &adpProp);
if (err != NEARDAL_SUCCESS)
- goto exit;
-
- adapter->name = (char *) adpProp->name;
- adapter->polling = (short) adpProp->polling;
- adapter->powered = (short) adpProp->powered;
-
- adapter->nbProtocols = adpProp->lenProtocols;
- adapter->protocols = NULL;
-
-
- if (adapter->nbProtocols > 0) {
- err = NEARDAL_ERROR_NO_MEMORY;
- size = (adapter->nbProtocols + 1) * sizeof(char *);
- adapter->protocols = g_try_malloc0(size);
- if (adapter->protocols != NULL) {
- ct = 0;
- while (ct < adapter->nbProtocols) {
- gchar *tmp = g_strdup(adpProp->protocols[ct]);
- adapter->protocols[ct++] = (char *) tmp;
- }
- err = NEARDAL_SUCCESS;
- }
- }
+ return err;
- adapter->nbTags = (int) adpProp->tagNb;
- adapter->tags = NULL;
- if (adapter->nbTags <= 0)
- goto exit;
+ tagNb = g_list_length(adpProp->tagList);
+ if (tagNb <= 0)
+ return NEARDAL_ERROR_NO_TAG;
err = NEARDAL_ERROR_NO_MEMORY;
- size = (adapter->nbTags + 1) * sizeof(char *);
- adapter->tags = g_try_malloc0(size);
- if (adapter->tags == NULL)
- goto exit;
+ tags = g_try_malloc0((tagNb + 1) * sizeof(char *));
- ct = 0;
- while (ct < adapter->nbTags) {
+ if (tags == NULL)
+ return NEARDAL_ERROR_NO_MEMORY;
+
+ while (ct < tagNb) {
tag = g_list_nth_data(adpProp->tagList, ct);
if (tag != NULL)
- adapter->tags[ct++] = g_strdup(tag->name);
+ tags[ct++] = g_strdup(tag->name);
}
err = NEARDAL_SUCCESS;
-exit:
+ if (len != NULL)
+ *len = tagNb;
+ *array = tags;
+
return err;
}
-/******************************************************************************
- * neardal_get_adapter_properties: Get properties of a specific NEARDAL adapter
- *****************************************************************************/
+/*****************************************************************************
+ * neardal_get_tag_properties: Get properties of a specific NEARDAL
+ * tag
+ ****************************************************************************/
errorCode_t neardal_get_tag_properties(const char *tagName,
neardal_tag *tag)
{
return err;
}
- /******************************************************************************
+/*****************************************************************************
+ * neardal_write: Write NDEF record to an NFC tag
+ ****************************************************************************/
+errorCode_t neardal_write(neardal_record *record)
+{
+ errorCode_t err = NEARDAL_SUCCESS;
+ AdpProp *adpProp;
+ TagProp *tagProp;
+ RcdProp rcd;
+
+
+ if (neardalMgr.proxy == NULL)
+ neardal_prv_construct(&err);
+
+ if (err != NEARDAL_SUCCESS || record == NULL)
+ goto exit;
+
+ err = neardal_mgr_prv_get_adapter((gchar *) record->name, &adpProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+ err = neardal_mgr_prv_get_tag(adpProp, (gchar *) record->name,
+ &tagProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+
+ rcd.name = (gchar *) record->name;
+ rcd.action = (gchar *) record->action;
+ rcd.encoding = (gchar *) record->encoding;
+ rcd.language = (gchar *) record->language;
+ rcd.type = (gchar *) record->type;
+ rcd.representation = (gchar *) record->representation;
+ rcd.uri = (gchar *) record->uri;
+ rcd.uriObjSize = record->uriObjSize;
+ rcd.mime = (gchar *) record->mime;
+
+ neardal_tag_prv_write(tagProp, &rcd);
+exit:
+ return err;
+}
+
+/*---------------------------------------------------------------------------
+ * NFC Record Management
+ ---------------------------------------------------------------------------*/
+/******************************************************************************
+ * neardal_get_records: get an array of tag records
+ *****************************************************************************/
+errorCode_t neardal_get_records(char *tagName, char ***array, int *len)
+{
+ errorCode_t err = NEARDAL_SUCCESS;
+ AdpProp *adpProp = NULL;
+ TagProp *tagProp = NULL;
+ int rcdLen = 0;
+ int ct = 0; /* counter */
+ char **rcds = NULL;
+ RcdProp *rcd = NULL;
+
+
+ if (neardalMgr.proxy == NULL)
+ neardal_prv_construct(&err);
+
+ if (err != NEARDAL_SUCCESS || tagName == NULL || array == NULL)
+ return NEARDAL_ERROR_INVALID_PARAMETER;
+
+ err = neardal_mgr_prv_get_adapter(tagName, &adpProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+
+ err = neardal_adp_prv_get_tag(adpProp, tagName, &tagProp);
+ if (err != NEARDAL_SUCCESS)
+ goto exit;
+
+ err = NEARDAL_ERROR_NO_RECORD;
+ rcdLen = g_list_length(tagProp->rcdList);
+ if (rcdLen <= 0)
+ goto exit;
+
+ err = NEARDAL_ERROR_NO_MEMORY;
+ rcds = g_try_malloc0((rcdLen + 1) * sizeof(char *));
+ if (rcds == NULL)
+ goto exit;
+
+ while (ct < rcdLen) {
+ rcd = g_list_nth_data(tagProp->rcdList, ct);
+ if (rcd != NULL)
+ rcds[ct++] = g_strdup(rcd->name);
+ }
+ err = NEARDAL_SUCCESS;
+
+exit:
+ if (len != NULL)
+ *len = rcdLen;
+ *array = rcds;
+
+ return err;
+}
+
+/*****************************************************************************
* neardal_get_record_properties: Get values of a specific tag record
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_get_record_properties(const char *recordName,
neardal_record *record)
{
exit:
return err;
}
+
+
* @param value Property value
* @param user_data Client user data
**/
-typedef void (*adapter_prop_cb) (char *adpName, char *propName, void * value,
+typedef void (*adapter_prop_cb) (char *adpName, char *propName, void *value,
void *user_data);
/** @brief NEARDAL Tag Callbacks (TagFound/Lost)
**/
errorCode_t neardal_free_array(char ***array);
-/*! \fn errorCode_t neardal_get_adapter_properties(const char* adpName,
+/*! @brief NEARDAL Properties identifiers
+ * @addtogroup NEARDAL_CALLBACK Defines
+ * @{ */
+#define NEARD_ADP_PROP_POWERED 0
+#define NEARD_ADP_PROP_MODE 1
+
+
+/* @}*/
+
+
+/*! \fn errorCode_t neardal_get_adapter_properties(const char* adpName,
* neardal_adapter *adapter)
* @brief Get properties of a specific NEARDAL adapter
*
* @return errorCode_t error code
**/
errorCode_t neardal_get_adapter_properties(const char *adpName,
- neardal_adapter *adapter);
+ neardal_adapter * adapter);
+
+/*! \fn errorCode_t neardal_set_adapter_properties(const char* adpName,
+ * int adpPropId, void * value)
+ * @brief Set a property on a specific NEARDAL adapter
+ *
+ * @param adpName DBus interface adapter name (as identifier)
+ * @param adpPropId Adapter Property Identifier (see NEARD_ADP_PROP_ ...)
+ * @param value Value
+ * @return errorCode_t error code
+ **/
+errorCode_t neardal_set_adapter_property(const char *adpName,
+ int adpPropId, void *value);
/*! \fn errorCode_t neardal_set_cb_adapter_added( adapter_cb cb_adp_added,
* void * user_data)
* @return errorCode_t error code
**/
errorCode_t neardal_get_tag_properties(const char *tagName,
- neardal_tag *tag);
+ neardal_tag * tag);
/*! \fn errorCode_t neardal_set_cb_tag_found(tag_cb cb_tag_found,
* void * user_data)
* @return errorCode_t error code
**/
errorCode_t neardal_get_record_properties(const char *recordName,
- neardal_record *record);
+ neardal_record * record);
/*! \fn errorCode_t neardal_write(neardal_record *record)
* @brief Write NDEF record to an NFC tag
#include "neardal_prv.h"
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_cb_tag_found: Callback called when a NFC tag is
* found
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_adp_prv_cb_tag_found(orgNeardTag *proxy,
const gchar *arg_unnamed_arg0,
void *user_data)
NEARDAL_TRACEF("Adding tag '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Tag Found' before adding it (otherwise
* callback 'Record Found' would be called before ) */
- err = neardal_tag_add((char *) arg_unnamed_arg0, adpProp);
+ err = neardal_tag_prv_add((char *) arg_unnamed_arg0, adpProp);
if (err == NEARDAL_SUCCESS) {
tagProp = g_list_nth_data(adpProp->tagList, 0);
neardal_tag_notify_tag_found(tagProp);
g_list_length(adpProp->tagList));
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_cb_tag_lost: Callback called when a NFC tag is
* lost (removed)
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_adp_prv_cb_tag_lost(orgNeardTag *proxy,
const gchar *arg_unnamed_arg0,
void *user_data)
{
AdpProp *adpProp = user_data;
TagProp *tagProp = NULL;
- errorCode_t errCode;
+ errorCode_t err;
NEARDAL_TRACEIN();
g_assert(arg_unnamed_arg0 != NULL);
NEARDAL_TRACEF("Removing tag '%s'\n", arg_unnamed_arg0);
/* Invoking Callback 'Tag Found' before adding it (otherwise
* callback 'Record Found' would be called before ) */
- errCode = neardal_mgr_prv_get_tag(adpProp, (char *) arg_unnamed_arg0,
+ err = neardal_mgr_prv_get_tag(adpProp, (char *) arg_unnamed_arg0,
&tagProp);
- if (errCode == NEARDAL_SUCCESS) {
+ if (err == NEARDAL_SUCCESS) {
if (neardalMgr.cb_tag_lost != NULL)
(neardalMgr.cb_tag_lost)((char *) arg_unnamed_arg0,
neardalMgr.cb_tag_lost_ud);
- neardal_tag_remove(tagProp);
+ neardal_tag_prv_remove(tagProp);
NEARDAL_TRACEF("NEARDAL LIB tagList contains %d elements\n",
g_list_length(adpProp->tagList));
}
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_cb_property_changed: Callback called when a NFC tag
* is found
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_adp_prv_cb_property_changed(orgNeardAdp *proxy,
const gchar *arg_unnamed_arg0,
GVariant *arg_unnamed_arg1,
void *user_data)
{
AdpProp *adpProp = NULL;
- errorCode_t errCode = NEARDAL_ERROR_NO_TAG;
+ errorCode_t err = NEARDAL_ERROR_NO_TAG;
char *tagName = NULL;
void *clientValue = NULL;
TagProp *tagProp = NULL;
- GVariant *tmp = NULL;
gchar **tagArray = NULL;
+ GVariant *gvalue = NULL;
(void) proxy; /* remove warning */
(void) user_data; /* remove warning */
neardal_mgr_prv_get_adapter_from_proxy(proxy, &adpProp);
if (adpProp == NULL) {
- errCode = NEARDAL_ERROR_GENERAL_ERROR;
+ err = NEARDAL_ERROR_GENERAL_ERROR;
goto exit;
}
- tmp = g_variant_get_variant(arg_unnamed_arg1);
- if (tmp == NULL) {
- errCode = NEARDAL_ERROR_GENERAL_ERROR;
+ gvalue = g_variant_get_variant(arg_unnamed_arg1);
+ if (gvalue == NULL) {
+ err = NEARDAL_ERROR_GENERAL_ERROR;
goto exit;
}
if (!strcmp(arg_unnamed_arg0, "Polling")) {
- adpProp->polling = g_variant_get_boolean(tmp);
+ adpProp->polling = g_variant_get_boolean(gvalue);
clientValue = GUINT_TO_POINTER(adpProp->polling);
NEARDAL_TRACEF("neardalMgr.polling=%d\n", adpProp->polling);
}
if (!strcmp(arg_unnamed_arg0, "Tags")) {
guint tmpLen;
- tagArray = g_variant_dup_objv(tmp, &tmpLen);
+ tagArray = g_variant_dup_objv(gvalue, &tmpLen);
adpProp->tagNb = tmpLen;
- if (tmpLen == 0) {
+ if (adpProp->tagNb <= 0) { /* Remove all tags */
+ GList *node = NULL;
NEARDAL_TRACEF(
"Tag array empty! Removing all tags\n");
- while (tmpLen < g_list_length(adpProp->tagList)) {
- tagProp = g_list_nth_data(adpProp->tagList,
- tmpLen++);
+ while (g_list_length(adpProp->tagList)) {
+ node = g_list_first(adpProp->tagList);
+ tagProp = (TagProp *) node->data;
neardal_adp_prv_cb_tag_lost(tagProp->proxy,
tagProp->name,
tagProp->parent);
}
g_strfreev(tagArray);
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
goto exit;
}
/* Extract the tags arrays List from the GValue */
- errCode = NEARDAL_ERROR_NO_ADAPTER;
+ err = NEARDAL_ERROR_NO_ADAPTER;
tmpLen = 0;
while (tmpLen < adpProp->tagNb) {
/* Getting last tag (tags list not updated with
/* TODO : for Neard Workaround, emulate 'TagFound'
* signals */
- errCode = neardal_mgr_prv_get_tag(adpProp,
+ err = neardal_mgr_prv_get_tag(adpProp,
tagName,
&tagProp);
- if (errCode == NEARDAL_ERROR_NO_TAG) {
+ if (err == NEARDAL_ERROR_NO_TAG) {
neardal_adp_prv_cb_tag_found(NULL,
tagName,
adpProp);
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
}
}
g_strfreev(tagArray);
return;
exit:
- if (errCode != NEARDAL_SUCCESS)
- NEARDAL_TRACEF("Exit with error code %d:%s\n", errCode,
- neardal_error_get_text(errCode));
+ if (err != NEARDAL_SUCCESS)
+ NEARDAL_TRACEF("Exit with error code %d:%s\n", err,
+ neardal_error_get_text(err));
return;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_read_properties: Get Neard Adapter Properties
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_adp_prv_read_properties(AdpProp *adpProp)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
GError *gerror = NULL;
GVariant *tmp = NULL;
GVariant *tmpOut = NULL;
org_neard_adp__call_get_properties_sync(adpProp->proxy, &tmp,
NULL, &gerror);
if (gerror != NULL) {
- errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
+ err = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
NEARDAL_TRACE_ERR(
"Unable to read adapter's properties (%d:%s)\n",
gerror->code, gerror->message);
if (tmpOut != NULL) {
tagArray = g_variant_dup_objv(tmpOut, &len);
adpProp->tagNb = len;
- if (len == 0) {
+ if (adpProp->tagNb == 0) {
g_strfreev(tagArray);
tagArray = NULL;
} else {
- guint len = 0;
+ len = 0;
char *tagName;
while (len < adpProp->tagNb &&
- errCode == NEARDAL_SUCCESS) {
+ err == NEARDAL_SUCCESS) {
tagName = tagArray[len++];
- errCode = neardal_tag_add(tagName, adpProp);
+ err = neardal_tag_prv_add(tagName,
+ adpProp);
+ adpProp->tagNb++;
}
}
}
}
exit:
- return errCode;
+ g_variant_unref(tmp);
+ g_variant_unref(tmpOut);
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_get_current_tag: Get current NFC tag
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_adp_prv_get_tag(AdpProp *adpProp, gchar *tagName,
TagProp **tagProp)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_TAG;
+ errorCode_t err = NEARDAL_ERROR_NO_TAG;
guint len = 0;
TagProp *tag;
if (tag != NULL) {
if (!strncmp(tag->name, tagName, strlen(tag->name))) {
*tagProp = tag;
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
break;
}
}
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_init: Get Neard Manager Properties = NFC Adapters list.
* Create a DBus proxy for the first one NFC adapter if present
* Register Neard Manager signals ('PropertyChanged')
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_adp_prv_init(AdpProp *adpProp)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
g_assert(adpProp != NULL);
}
adpProp->proxy = NULL;
- errCode = NEARDAL_ERROR_NO_ADAPTER;
+ err = NEARDAL_ERROR_NO_ADAPTER;
if (adpProp->name == NULL)
- return errCode;
+ return err;
adpProp->proxy = org_neard_adp__proxy_new_sync(neardalMgr.conn,
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE,
return NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY;
}
- errCode = neardal_adp_prv_read_properties(adpProp);
+ err = neardal_adp_prv_read_properties(adpProp);
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'PropertyChanged'\n");
/* Register 'TagFound', 'TagLost' */
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'TagFound'\n");
- g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TGT_FOUND,
+ g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TAG_FOUND,
G_CALLBACK(neardal_adp_prv_cb_tag_found),
adpProp);
NEARDAL_TRACEF("Register Neard-Adapter Signal ");
NEARDAL_TRACE("'TagLost'\n");
- g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TGT_LOST,
+ g_signal_connect(adpProp->proxy, NEARD_ADP_SIG_TAG_LOST,
G_CALLBACK(neardal_adp_prv_cb_tag_lost),
adpProp);
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_free: unref DBus proxy, disconnect Neard Adapter signals
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_adp_prv_free(AdpProp **adpProp)
{
NEARDAL_TRACEIN();
(*adpProp) = NULL;
}
-/******************************************************************************
- * neardal_get_adapters: get an array of NFC adapters (adpName) present
- *****************************************************************************/
-errorCode_t neardal_get_adapters(char ***array, int *len)
-{
- errorCode_t err = NEARDAL_SUCCESS;
- int adpNb = 0;
- int ct = 0; /* counter */
- char **adps = NULL;
- AdpProp *adapter = NULL;
- gsize size;
-
- if (neardalMgr.proxy == NULL)
- neardal_prv_construct(&err);
-
- if (err != NEARDAL_SUCCESS || array == NULL)
- return NEARDAL_ERROR_INVALID_PARAMETER;
-
- adpNb = g_list_length(neardalMgr.prop.adpList);
- if (adpNb > 0) {
- err = NEARDAL_ERROR_NO_MEMORY;
- size = (adpNb + 1) * sizeof(char *);
- adps = g_try_malloc0(size);
- if (adps != NULL) {
- GList *list;
- while (ct < adpNb) {
- list = neardalMgr.prop.adpList;
- adapter = g_list_nth_data(list, ct);
- if (adapter != NULL)
- adps[ct++] = g_strdup(adapter->name);
- }
- err = NEARDAL_SUCCESS;
- }
- } else
- err = NEARDAL_ERROR_NO_ADAPTER;
-
- if (len != NULL)
- *len = adpNb;
- *array = adps;
-
- return err;
-}
-
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_add: add new NFC adapter, initialize DBus Proxy connection,
* register adapter signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_adp_add(gchar *adapterName)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
AdpProp *adpProp = NULL;
GList **adpList;
TagProp *tagProp;
adpList = &neardalMgr.prop.adpList;
*adpList = g_list_prepend(*adpList, (gpointer) adpProp);
- errCode = neardal_adp_prv_init(adpProp);
+ err = neardal_adp_prv_init(adpProp);
NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
g_list_length(*adpList));
neardal_tag_notify_tag_found(tagProp);
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_remove: remove one NFC adapter, unref DBus Proxy connection,
* unregister adapter signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_adp_remove(AdpProp *adpProp)
{
TagProp *tagProp;
while (g_list_length(adpProp->tagList)) {
node = g_list_first(adpProp->tagList);
tagProp = (TagProp *) node->data;
- neardal_tag_remove(tagProp);
+ neardal_tag_prv_remove(tagProp);
}
adpList = &neardalMgr.prop.adpList;
#define NEARD_ADP_IF_NAME "org.neard.Adapter"
#define NEARD_ADP_SIG_PROPCHANGED "property-changed"
-#define NEARD_ADP_SIG_TGT_FOUND "tag-found"
-#define NEARD_ADP_SIG_TGT_LOST "tag-lost"
+#define NEARD_ADP_SIG_TAG_FOUND "tag-found"
+#define NEARD_ADP_SIG_TAG_LOST "tag-lost"
/* NEARDAL Adapter Properties */
typedef struct {
available */
} AdpProp;
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_prv_get_tag: Get NEARDAL tag from name
- *****************************************************************************/
-errorCode_t neardal_adp_prv_get_tag(AdpProp *adpProp, gchar *tagName,
- TagProp **tagProp);
+ ****************************************************************************/
+errorCode_t neardal_adp_prv_get_tag(AdpProp * adpProp, gchar *tagName,
+ TagProp * *tagProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_add: add new NEARDAL adapter, initialize DBus Proxy
* connection, register adapter signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_adp_add(gchar *adapterName);
-/******************************************************************************
+/*****************************************************************************
* neardal_adp_remove: remove NEARDAL adapter, unref DBus Proxy
* connection, unregister adapter signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_adp_remove(AdpProp *adpProp);
#ifdef __cplusplus
+++ /dev/null
-/*
- * NEARDAL (Neard Abstraction Library)
- *
- * Copyright 2012 Intel Corporation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include <glib.h>
-#include <neardal_errors.h>
-
-char *neardal_error_get_text(errorCode_t ec)
-{
- switch (ec) {
- case NEARDAL_SUCCESS:
- return "Success";
-
- case NEARDAL_ERROR_GENERAL_ERROR:
- return "General error";
-
- case NEARDAL_ERROR_INVALID_PARAMETER:
- return "Invalid parameter";
-
- case NEARDAL_ERROR_NO_MEMORY:
- return "Memory allocation error";
-
- case NEARDAL_ERROR_DBUS:
- return "DBUS general error";
-
- case NEARDAL_ERROR_DBUS_CANNOT_CREATE_PROXY:
- return "Can not create a DBUS proxy";
-
- case NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD:
- return "Can not invoke a DBUS method";
-
- case NEARDAL_ERROR_NO_ADAPTER:
- return "No NFC adapter found...";
-
- case NEARDAL_ERROR_NO_TAG:
- return "No NFC tag found...";
-
- case NEARDAL_ERROR_NO_RECORD:
- return "No tag record found...";
-
- case NEARDAL_ERROR_POLLING_ALREADY_ACTIVE:
- return "Polling already active";
-
- case NEARDAL_ERROR_DBUS_INVOKE_METHOD_ERROR:
- return "Error while invoking method";
- }
-
- return "UNKNOWN ERROR !!!";
-}
#include "neardal.h"
#include "neardal_prv.h"
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_cb_property_changed: Callback called when a NFC Manager
* Property is changed
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_mgr_prv_cb_property_changed(orgNeardMgr *proxy,
const gchar *arg_unnamed_arg0,
GVariant *arg_unnamed_arg1,
/* Adapters List ignored... */
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_cb_adapter_added: Callback called when a NFC adapter is
* added
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_mgr_prv_cb_adapter_added(orgNeardMgr *proxy,
const gchar *arg_unnamed_arg0,
void *user_data)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
g_assert(arg_unnamed_arg0 != NULL);
(void) proxy; /* remove warning */
(void) user_data; /* remove warning */
- errCode = neardal_adp_add((char *) arg_unnamed_arg0);
- if (errCode != NEARDAL_SUCCESS)
+ err = neardal_adp_add((char *) arg_unnamed_arg0);
+ if (err != NEARDAL_SUCCESS)
return;
NEARDAL_TRACEF("NEARDAL LIB adapterList contains %d elements\n",
g_list_length(neardalMgr.prop.adpList));
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_cb_adapter_removed: Callback called when a NFC adapter
* is removed
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_mgr_prv_cb_adapter_removed(orgNeardMgr *proxy,
const gchar *arg_unnamed_arg0,
void *user_data)
g_list_length(neardalMgr.prop.adpList));
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_all_adapters: Check if neard has an adapter
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_mgr_prv_get_all_adapters(gchar ***adpArray,
gsize *len)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
+ errorCode_t err = NEARDAL_ERROR_NO_ADAPTER;
GVariant *tmp = NULL;
GVariant *tmpOut = NULL;
G_VARIANT_TYPE_ARRAY);
if (tmpOut != NULL) {
*adpArray = g_variant_dup_objv(tmpOut, len);
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
} else
- errCode = NEARDAL_ERROR_NO_ADAPTER;
+ err = NEARDAL_ERROR_NO_ADAPTER;
} else {
- errCode = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
+ err = NEARDAL_ERROR_DBUS_CANNOT_INVOKE_METHOD;
NEARDAL_TRACE_ERR("%d:%s\n", neardalMgr.gerror->code,
neardalMgr.gerror->message);
neardal_tools_prv_free_gerror(&neardalMgr.gerror);
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_adapter: Get NFC Adapter from name
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_adapter(gchar *adpName, AdpProp **adpProp)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
+ errorCode_t err = NEARDAL_ERROR_NO_ADAPTER;
guint len = 0;
AdpProp *adapter;
GList *tmpList;
if (neardal_tools_prv_cmp_path(adapter->name,
adpName)) {
*adpProp = adapter;
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
break;
}
}
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_adapter_from_proxy: Get NFC Adapter from proxy
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_adapter_from_proxy(orgNeardAdp *adpProxy,
AdpProp **adpProp)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_ADAPTER;
+ errorCode_t err = NEARDAL_ERROR_NO_ADAPTER;
guint len = 0;
AdpProp *adapter;
GList *tmpList;
if (adapter != NULL) {
if (adapter->proxy == adpProxy) {
*adpProp = adapter;
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
break;
}
}
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_tag: Get specific tag from adapter
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_tag(AdpProp *adpProp, gchar *tagName,
TagProp **tagProp)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_TAG;
+ errorCode_t err = NEARDAL_ERROR_NO_TAG;
guint len;
TagProp *tag = NULL;
GList *tmpList;
tag = g_list_nth_data(tmpList, len);
if (neardal_tools_prv_cmp_path(tag->name, tagName)) {
*tagProp = tag;
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
break;
}
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_record: Get specific record from tag
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_record(TagProp *tagProp, gchar *rcdName,
RcdProp **rcdProp)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_RECORD;
+ errorCode_t err = NEARDAL_ERROR_NO_RECORD;
guint len;
RcdProp *rcd = NULL;
rcd = g_list_nth_data(tagProp->rcdList, len);
if (neardal_tools_prv_cmp_path(rcd->name, rcdName)) {
*rcdProp = rcd;
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
break;
}
len++;
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_create: Get Neard Manager Properties = NFC Adapters list.
* Create a DBus proxy for the first one NFC adapter if present
* Register Neard Manager signals ('PropertyChanged')
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_create(void)
{
- errorCode_t errCode;
+ errorCode_t err;
gchar **adpArray = NULL;
gsize adpArrayLen;
char *adpName;
}
/* Get and store NFC adapters (is present) */
- errCode = neardal_mgr_prv_get_all_adapters(&adpArray, &adpArrayLen);
+ err = neardal_mgr_prv_get_all_adapters(&adpArray, &adpArrayLen);
if (adpArray != NULL && adpArrayLen > 0) {
len = 0;
- while (len < adpArrayLen && errCode == NEARDAL_SUCCESS) {
+ while (len < adpArrayLen && err == NEARDAL_SUCCESS) {
adpName = adpArray[len++];
- errCode = neardal_adp_add(adpName);
+ err = neardal_adp_add(adpName);
}
g_strfreev(adpArray);
}
G_CALLBACK(neardal_mgr_prv_cb_adapter_removed),
NULL);
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
- *****************************************************************************/
+ ****************************************************************************/
void neardal_mgr_destroy(void)
{
GList *node;
GList *adpList; /* List of available adapter (AdpProp*) */
} MgrProp;
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_adapter: Get NEARDAL Adapter from name
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_adapter(gchar *adpName, AdpProp **adpProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_adapter_from_proxy: Get NEARDAL Adapter from proxy
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_adapter_from_proxy(orgNeardAdp *adpProxy,
AdpProp **adpProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_tag: Get specific tag from adapter
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_tag(AdpProp *adpProp, gchar *tagName,
TagProp **tagProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_prv_get_record: Get specific record from tag
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_prv_get_record(TagProp *tagProp, gchar *rcdName,
RcdProp **rcdProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_create: Get Neard Manager Properties = NEARDAL Adapters list.
* Create a DBus proxy for the first one NEARDAL adapter if present
* Register Neard Manager signals ('PropertyChanged')
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_mgr_create(void);
-/******************************************************************************
+/*****************************************************************************
* neardal_mgr_destroy: unref DBus proxy, disconnect Neard Manager signals
- *****************************************************************************/
+ ****************************************************************************/
void neardal_mgr_destroy(void);
#ifdef __cplusplus
#include "neardal_prv.h"
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_prv_read_properties: Get Neard Record Properties
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_rcd_prv_read_properties(RcdProp *rcd)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
GError *gerror = NULL;
GVariant *tmp = NULL;
GVariant *tmpOut = NULL;
org_neard_rcd__call_get_properties_sync(rcd->proxy, &tmp, NULL,
&gerror);
if (gerror != NULL) {
- errCode = NEARDAL_ERROR_DBUS;
+ err = NEARDAL_ERROR_DBUS;
NEARDAL_TRACE_ERR(
"Unable to read record's properties (%d:%s)\n",
gerror->code, gerror->message);
g_error_free(gerror);
- return errCode;
+ return err;
}
NEARDAL_TRACE_LOG("Reading:\n%s\n", g_variant_print(tmp, TRUE));
if (tmpOut != NULL)
rcd->uri = g_variant_dup_string(tmpOut, NULL);
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_init: Get Neard Manager Properties = NFC Records list.
* Create a DBus proxy for the first one NFC record if present
* Register Neard Manager signals ('PropertyChanged')
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_rcd_prv_init(RcdProp *rcd)
{
NEARDAL_TRACEIN();
return neardal_rcd_prv_read_properties(rcd);
}
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_prv_free: unref DBus proxy, disconnect Neard Record signals
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_rcd_prv_free(RcdProp **rcd)
{
NEARDAL_TRACEIN();
(*rcd) = NULL;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_prv_format: Insert key/value in a GHashTable
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_rcd_prv_format(GVariantBuilder *builder, RcdProp *rcd)
{
- errorCode_t errCode = NEARDAL_SUCCESS;
+ errorCode_t err = NEARDAL_SUCCESS;
NEARDAL_TRACEIN();
neardal_tools_add_dict_entry(builder, "Action", rcd->action,
(int) G_TYPE_STRING);
- return errCode;
-}
-
-
-/******************************************************************************
- * neardal_get_records: get an array of tag records
- *****************************************************************************/
-errorCode_t neardal_get_records(char *tagName, char ***array, int *len)
-{
- errorCode_t err = NEARDAL_SUCCESS;
- AdpProp *adpProp = NULL;
- TagProp *tagProp = NULL;
- int rcdLen = 0;
- int ct = 0; /* counter */
- char **rcds = NULL;
- RcdProp *rcd = NULL;
-
-
- if (neardalMgr.proxy == NULL)
- neardal_prv_construct(&err);
-
- if (err != NEARDAL_SUCCESS || tagName == NULL || array == NULL)
- return NEARDAL_ERROR_INVALID_PARAMETER;
-
- err = neardal_mgr_prv_get_adapter(tagName, &adpProp);
- if (err != NEARDAL_SUCCESS)
- goto exit;
-
- err = neardal_adp_prv_get_tag(adpProp, tagName, &tagProp);
- if (err != NEARDAL_SUCCESS)
- goto exit;
-
- err = NEARDAL_ERROR_NO_RECORD;
- rcdLen = g_list_length(tagProp->rcdList);
- if (rcdLen <= 0)
- goto exit;
-
- err = NEARDAL_ERROR_NO_MEMORY;
- rcds = g_try_malloc0((rcdLen + 1) * sizeof(char *));
- if (rcds == NULL)
- goto exit;
-
- while (ct < rcdLen) {
- rcd = g_list_nth_data(tagProp->rcdList, ct);
- if (rcd != NULL)
- rcds[ct++] = g_strdup(rcd->name);
- }
- err = NEARDAL_SUCCESS;
-
-exit:
- if (len != NULL)
- *len = rcdLen;
- *array = rcds;
-
return err;
}
-/******************************************************************************
+
+/*****************************************************************************
* neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
* register record signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_rcd_add(char *rcdName, void *parent)
{
- errorCode_t errCode = NEARDAL_ERROR_NO_MEMORY;
+ errorCode_t err = NEARDAL_ERROR_NO_MEMORY;
RcdProp *rcd = NULL;
TagProp *tagProp = parent;
rcd->parent = tagProp;
tagProp->rcdList = g_list_prepend(tagProp->rcdList, (gpointer) rcd);
- errCode = neardal_rcd_prv_init(rcd);
- if (errCode != NEARDAL_SUCCESS)
+ err = neardal_rcd_prv_init(rcd);
+ if (err != NEARDAL_SUCCESS)
goto exit;
NEARDAL_TRACEF("NEARDAL LIB recordList contains %d elements\n",
g_list_length(tagProp->rcdList));
- errCode = NEARDAL_SUCCESS;
+ err = NEARDAL_SUCCESS;
exit:
- if (errCode != NEARDAL_SUCCESS) {
+ if (err != NEARDAL_SUCCESS) {
tagProp->rcdList = g_list_remove(tagProp->rcdList,
(gpointer) rcd);
neardal_rcd_prv_free(&rcd);
}
- return errCode;
+ return err;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_remove: remove NFC record, unref DBus Proxy connection,
* unregister record signal
- *****************************************************************************/
+ ****************************************************************************/
void neardal_rcd_remove(RcdProp *rcd)
{
TagProp *tagProp;
gchar *mime;
} RcdProp;
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_add: add new NFC record, initialize DBus Proxy connection,
* register record signal
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_rcd_add(char *rcdName, void *parent);
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_remove: remove NFC record, unref DBus Proxy connection,
* unregister record signal
- *****************************************************************************/
+ ****************************************************************************/
void neardal_rcd_remove(RcdProp *rcdProp);
-/******************************************************************************
+/*****************************************************************************
* neardal_rcd_prv_format: Insert key/value in a GHashTable
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_rcd_prv_format(GVariantBuilder *builder, RcdProp *rcdProp);
#ifdef __cplusplus
#include "neardal_prv.h"
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_prv_cb_property_changed: Callback called when a NFC tag
* property is changed
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_tag_prv_cb_property_changed(orgNeardTag *proxy,
const gchar *arg_unnamed_arg0,
GVariant *arg_unnamed_arg1,
return;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_prv_read_properties: Get Neard Tag Properties
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_tag_prv_read_properties(TagProp *tagProp)
{
errorCode_t errCode = NEARDAL_SUCCESS;
return errCode;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_init: Get Neard Manager Properties = NFC Tags list.
* Create a DBus proxy for the first one NFC tag if present
* Register Neard Manager signals ('PropertyChanged')
- *****************************************************************************/
+ ****************************************************************************/
static errorCode_t neardal_tag_prv_init(TagProp *tagProp)
{
errorCode_t errCode = NEARDAL_SUCCESS;
return errCode;
NEARDAL_TRACEF("Register Neard-Tag Signal 'PropertyChanged'\n");
- g_signal_connect(tagProp->proxy, NEARD_TGT_SIG_PROPCHANGED,
+ g_signal_connect(tagProp->proxy, NEARD_TAG_SIG_PROPCHANGED,
G_CALLBACK(neardal_tag_prv_cb_property_changed),
tagProp);
return errCode;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_prv_free: unref DBus proxy, disconnect Neard Tag signals
- *****************************************************************************/
+ ****************************************************************************/
static void neardal_tag_prv_free(TagProp **tagProp)
{
NEARDAL_TRACEIN();
(*tagProp) = NULL;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_notify_tag_found: Invoke client callback for 'record found'
* if present, and 'tag found' (if not already nofied)
- *****************************************************************************/
+ ****************************************************************************/
void neardal_tag_notify_tag_found(TagProp *tagProp)
{
RcdProp *rcdProp;
}
}
}
-/******************************************************************************
- * neardal_get_tags: get an array of NFC tags present
- *****************************************************************************/
-errorCode_t neardal_get_tags(char *adpName, char ***array, int *len)
-{
- errorCode_t err = NEARDAL_SUCCESS;
- AdpProp *adpProp = NULL;
- int tagNb = 0;
- int ct = 0; /* counter */
- char **tags = NULL;
- TagProp *tag = NULL;
-
-
- if (neardalMgr.proxy == NULL)
- neardal_prv_construct(&err);
- if (err != NEARDAL_SUCCESS || adpName == NULL || array == NULL)
- return NEARDAL_ERROR_INVALID_PARAMETER;
-
- err = neardal_mgr_prv_get_adapter(adpName, &adpProp);
- if (err != NEARDAL_SUCCESS)
- return err;
-
- tagNb = g_list_length(adpProp->tagList);
- if (tagNb <= 0)
- return NEARDAL_ERROR_NO_TAG;
-
- err = NEARDAL_ERROR_NO_MEMORY;
- tags = g_try_malloc0((tagNb + 1) * sizeof(char *));
-
- if (tags == NULL)
- return NEARDAL_ERROR_NO_MEMORY;
-
- while (ct < tagNb) {
- tag = g_list_nth_data(adpProp->tagList, ct);
- if (tag != NULL)
- tags[ct++] = g_strdup(tag->name);
- }
- err = NEARDAL_SUCCESS;
-
- if (len != NULL)
- *len = tagNb;
- *array = tags;
-
- return err;
-}
-
-/******************************************************************************
- * neardal_tag_write: Creates and write NDEF record to be written to
+/*****************************************************************************
+ * neardal_tag_prv_write: Creates and write NDEF record to be written to
* an NFC tag
- *****************************************************************************/
-errorCode_t neardal_tag_write(TagProp *tagProp, RcdProp *rcd)
+ ****************************************************************************/
+errorCode_t neardal_tag_prv_write(TagProp *tagProp, RcdProp *rcd)
{
GVariantBuilder *builder = NULL;
GVariant *in;
GError *gerror = NULL;
g_assert(tagProp != NULL);
-
+
builder = g_variant_builder_new(G_VARIANT_TYPE_ARRAY);
if (builder == NULL)
return NEARDAL_ERROR_NO_MEMORY;
return err;
}
-/******************************************************************************
- * neardal_tag_add: add new NFC tag, initialize DBus Proxy connection,
+/*****************************************************************************
+ * neardal_tag_prv_add: add new NFC tag, initialize DBus Proxy connection,
* register tag signal
- *****************************************************************************/
-errorCode_t neardal_tag_add(gchar *tagName, void * parent)
+ ****************************************************************************/
+errorCode_t neardal_tag_prv_add(gchar *tagName, void *parent)
{
errorCode_t errCode = NEARDAL_ERROR_NO_MEMORY;
TagProp *tagProp = NULL;
return errCode;
}
-/******************************************************************************
- * neardal_tag_remove: remove one NFC tag, unref DBus Proxy connection,
+/*****************************************************************************
+ * neardal_tag_prv_remove: remove one NFC tag, unref DBus Proxy connection,
* unregister tag signal
- *****************************************************************************/
-void neardal_tag_remove(TagProp *tagProp)
+ ****************************************************************************/
+void neardal_tag_prv_remove(TagProp *tagProp)
{
RcdProp *rcdProp = NULL;
GList *node;
#endif /* __cplusplus */
#define NEARD_TAGS_IF_NAME "org.neard.Tag"
-#define NEARD_TGT_SIG_PROPCHANGED "property-changed"
+#define NEARD_TAG_SIG_PROPCHANGED "property-changed"
/* NEARDAL Tag Properties */
typedef struct {
gboolean readOnly; /* Read-Only flag */
} TagProp;
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_notify_tag_found: Invoke client callback for 'record found'
* if present, and 'tag found' (if not already nofied)
- *****************************************************************************/
+ ****************************************************************************/
void neardal_tag_notify_tag_found(TagProp *tagProp);
-/******************************************************************************
- * neardal_tag_add: add new NEARDAL tag, initialize DBus Proxy connection,
+/*****************************************************************************
+ * neardal_tag_prv_add: add new NEARDAL tag, initialize DBus Proxy connection,
* register tag signal
- *****************************************************************************/
-errorCode_t neardal_tag_add(gchar *tagName, void * parent);
+ ****************************************************************************/
+errorCode_t neardal_tag_prv_add(gchar *tagName, void *parent);
-/******************************************************************************
+/*****************************************************************************
* neardal_tag_remove: remove NEARDAL tag, unref DBus Proxy connection,
* unregister tag signal
- *****************************************************************************/
-void neardal_tag_remove(TagProp *tagProp);
+ ****************************************************************************/
+void neardal_tag_prv_remove(TagProp *tagProp);
-/******************************************************************************
- * neardal_tag_write: Creates and write NDEF record to be written to
+/*****************************************************************************
+ * neardal_tag_prv_write: Creates and write NDEF record to be written to
* an NFC tag
- *****************************************************************************/
-errorCode_t neardal_tag_write(TagProp *tagProp, RcdProp *rcd);
+ ****************************************************************************/
+errorCode_t neardal_tag_prv_write(TagProp *tagProp, RcdProp *rcd);
#include "neardal_prv.h"
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_prv_free_gerror: freeing gerror in neardal context
- *****************************************************************************/
+ ****************************************************************************/
void neardal_tools_prv_free_gerror(GError **gerror)
{
g_assert(gerror != NULL);
*gerror = NULL;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_prv_cmp_path: Compare dbus path.
* return true (<>0) if path is same, 0 otherwise
- *****************************************************************************/
+ ****************************************************************************/
int neardal_tools_prv_cmp_path(const char *neardalPath, const char *reqPath)
{
const char *shortest;
return ret;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_create_dict: Create a GHashTable for dict_entries.
- *****************************************************************************/
+ ****************************************************************************/
GHashTable *neardal_tools_create_dict(void)
{
return g_hash_table_new(g_str_hash, g_str_equal);
}
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_add_dict_entry: add an entry in a dictionnary
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_tools_add_dict_entry(GVariantBuilder *builder, gchar *key,
void *value, int gVariantType)
{
#endif /* __cplusplus */
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_prv_free_gerror: freeing gerror in neardal context
- *****************************************************************************/
+ ****************************************************************************/
void neardal_tools_prv_free_gerror(GError **gerror);
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_prv_cmp_path: Compare dbus path.
* return true (<>0) if path is same, 0 otherwise
- *****************************************************************************/
+ ****************************************************************************/
int neardal_tools_prv_cmp_path(const char *neardalPath, const char *reqPath);
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_create_dict: Create a GHashTable for dict_entries.
- *****************************************************************************/
+ ****************************************************************************/
GHashTable *neardal_tools_create_dict(void);
-/******************************************************************************
+/*****************************************************************************
* neardal_tools_add_dict_entry: add an entry in a dictionnary
- *****************************************************************************/
+ ****************************************************************************/
errorCode_t neardal_tools_add_dict_entry(GVariantBuilder *builder, gchar *key,
void *value, int gVariantType);
/* Local Utilities functions */
-/******************************************************************************
+/*****************************************************************************
* Tool function : help command to dump parameters command
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_prv_dumpOptions(GOptionEntry *options)
{
GOptionEntry *optP = options;
}
-/******************************************************************************
+/*****************************************************************************
* Tool function : parse parameters command (like g_option_context_parse but
* implicit exit() on '--help' disabled
- *****************************************************************************/
+ ****************************************************************************/
static NCLError ncl_cmd_prv_parseOptions(int *argc, char **argv[],
GOptionEntry *options)
{
/* BEGIN : Interpretor commands array */
static NCLCmdInterpretor itFunc[];
-/******************************************************************************
+/*****************************************************************************
* Display Interpretor command list
- *****************************************************************************/
+ ****************************************************************************/
NCLError ncl_cmd_list(int argc, char *argv[])
{
int index;
}
-/******************************************************************************
+/*****************************************************************************
* Dump properties of an adapter
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_prv_dump_adapter(neardal_adapter adapter)
{
char **protocols;
NCL_CMD_PRINT("\n");
}
-/******************************************************************************
+/*****************************************************************************
* Dump properties of a tag
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_prv_dump_tag(neardal_tag tag)
{
char **records;
tag.readOnly ? "TRUE" : "FALSE");
}
-/******************************************************************************
+/*****************************************************************************
* Dump properties of a record
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_prv_dump_record(neardal_record record)
{
NCL_CMD_PRINT("Record\n");
NCL_CMD_PRINT(".. MIME:\t\t%s\n" , record.mime);
}
-/******************************************************************************
+/*****************************************************************************
* neardal callbacks : BEGIN
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_cb_adapter_added(const char *adpName, void *user_data)
{
errorCode_t ec;
return;
}
-/******************************************************************************
+/*****************************************************************************
* neardal callbacks : END
- *****************************************************************************/
+ ****************************************************************************/
static void ncl_cmd_install_callback(void)
{
sNclCmdCtx.cb_initialized = true;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_get_adapters : BEGIN
* Get adapters List
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_adapters(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_adapters(int argc, char *argv[])
{
errorCode_t ec;
NCLError nclErr;
return nclErr;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_get_adapters : END
- *****************************************************************************/
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_get_adapter_properties : BEGIN
+/*****************************************************************************
+ * ncl_cmd_get_adapter_properties : BEGIN
* Read adapter properties
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_adapter_properties(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_adapter_properties(int argc, char *argv[])
{
errorCode_t ec;
char *adapterName = NULL;
return NCLERR_NOERROR;
}
-/******************************************************************************
- * ncl_cmd_neardal_get_adapter_properties : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_get_adapter_properties : END
+ ****************************************************************************/
-/******************************************************************************
+/*****************************************************************************
* neardal_get_tags : BEGIN
* Get tags List
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_tags(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_tags(int argc, char *argv[])
{
errorCode_t ec;
NCLError nclErr;
return nclErr;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_get_tags : END
- *****************************************************************************/
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_get_tag_properties : BEGIN
+/*****************************************************************************
+ * ncl_cmd_get_tag_properties : BEGIN
* Read tag properties
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_tag_properties(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_tag_properties(int argc, char *argv[])
{
errorCode_t ec;
char *tagName = NULL;
return NCLERR_NOERROR;
}
-/******************************************************************************
- * ncl_cmd_neardal_get_tag_properties : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_get_tag_properties : END
+ ****************************************************************************/
-/******************************************************************************
+/*****************************************************************************
* neardal_get_records : BEGIN
* Get records List
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_records(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_records(int argc, char *argv[])
{
errorCode_t ec;
NCLError nclErr;
return nclErr;
}
-/******************************************************************************
+/*****************************************************************************
* neardal_get_records : END
- *****************************************************************************/
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_get_record_properties : BEGIN
+/*****************************************************************************
+ * ncl_cmd_get_record_properties : BEGIN
* Read a specific tag
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_get_record_properties(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_get_record_properties(int argc, char *argv[])
{
errorCode_t ec;
char *recordName = NULL;
return NCLERR_NOERROR;
}
-/******************************************************************************
- * ncl_cmd_neardal_get_record_properties : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_get_record_properties : END
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_write : BEGIN
+/*****************************************************************************
+ * ncl_cmd_write : BEGIN
* write NDEF record to tag
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_write(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_write(int argc, char *argv[])
{
errorCode_t ec = NEARDAL_SUCCESS;
NCLError nclErr;
return nclErr;
}
-/******************************************************************************
- * ncl_cmd_neardal_write : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_write : END
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_start_poll : BEGIN
+/*****************************************************************************
+ * ncl_cmd_set_adp_property : BEGIN
+ * write NDEF record to tag
+ ****************************************************************************/
+static NCLError ncl_cmd_set_adapter_property(int argc, char *argv[])
+{
+ errorCode_t ec = NEARDAL_SUCCESS;
+ NCLError nclErr;
+ static int powered = -1;
+ static char *strMode = NULL;
+ char *adapterName = NULL;
+
+static GOptionEntry options[] = {
+ { "powered", 's', 0, G_OPTION_ARG_INT , &powered
+ , "Set Adapter power ON/OFF", "<>0 or =0" },
+
+ { "mode", 's', 0, G_OPTION_ARG_STRING , &strMode
+ , "Set Adapter mode initiator/target",
+ "'initiator' or 'target'" },
+
+ { NULL, 0, 0, 0, NULL, NULL, NULL} /* End of List */
+ };
+
+ if (argc > 2) {
+ /* Parse options */
+// memset(&rcd, 0, sizeof(neardal_record));
+ nclErr = ncl_cmd_prv_parseOptions(&argc, &argv, options);
+ } else
+ nclErr = NCLERR_PARSING_PARAMETERS;
+
+ if (nclErr != NCLERR_NOERROR) {
+ ncl_cmd_print(stdout, "e.g. < %s /org/neard/nfc0 --powered=1 \
+ >\n", argv[0]);
+ }
+
+ if (nclErr != NCLERR_NOERROR)
+ goto exit;
+
+ /* Install Neardal Callback*/
+ if (sNclCmdCtx.cb_initialized == false)
+ ncl_cmd_install_callback();
+
+ adapterName = argv[1];
+ if (powered >= 0)
+ ec = neardal_set_adapter_property(adapterName,
+ NEARD_ADP_PROP_POWERED,
+ (void*) powered);
+
+ if (strMode != NULL)
+ ec = neardal_set_adapter_property(adapterName,
+ NEARD_ADP_PROP_MODE,
+ strMode);
+
+
+exit:
+ NCL_CMD_PRINT("\nExit with error code %d:%s\n", ec,
+ neardal_error_get_text(ec));
+
+ if (strMode != NULL)
+ g_free(strMode);
+
+ return nclErr;
+}
+/*****************************************************************************
+ * ncl_cmd_set_adp_property : END
+ ****************************************************************************/
+
+/*****************************************************************************
+ * ncl_cmd_start_poll : BEGIN
* Request Neard to start polling
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_start_poll(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_start_poll(int argc, char *argv[])
{
errorCode_t ec = NEARDAL_SUCCESS;
char *adpName = NULL;
return NCLERR_NOERROR;
}
-/******************************************************************************
- * ncl_cmd_neardal_start_poll : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_start_poll : END
+ ****************************************************************************/
-/******************************************************************************
- * ncl_cmd_neardal_stop_poll : BEGIN
+/*****************************************************************************
+ * ncl_cmd_stop_poll : BEGIN
* Request Neard to stop polling
- *****************************************************************************/
-static NCLError ncl_cmd_neardal_stop_poll(int argc, char *argv[])
+ ****************************************************************************/
+static NCLError ncl_cmd_stop_poll(int argc, char *argv[])
{
errorCode_t ec = NEARDAL_SUCCESS;
char *adpName = NULL;
return NCLERR_NOERROR;
}
-/******************************************************************************
- * ncl_cmd_neardal_stop_poll : END
- *****************************************************************************/
+/*****************************************************************************
+ * ncl_cmd_stop_poll : END
+ ****************************************************************************/
-/******************************************************************************
+/*****************************************************************************
* test parameter type (sample code) : BEGIN
- *****************************************************************************/
+ ****************************************************************************/
static gboolean test_cb(const gchar *opt, const gchar *arg, gpointer data,
GError **err)
{
return err;
}
-/******************************************************************************
+/*****************************************************************************
* test parameter type : END
- *****************************************************************************/
+ ****************************************************************************/
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
/* Exiting from command line interpretor */
-static NCLError ncl_cmd_quit(int argc, char *argv[])
+static NCLError ncl_cmd_exit(int argc, char *argv[])
{
NCLError err = NCLERR_NOERROR;
NCLContext *nclCtxP = NULL;
/* END : Interpretor commands */
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
/* Array of command line functions interpretor (alphabetical order) */
static NCLCmdInterpretor itFunc[] = {
{ "get_adapters",
- ncl_cmd_neardal_get_adapters,
+ ncl_cmd_get_adapters,
"Get adapters list"},
{ "get_adapter_properties",
- ncl_cmd_neardal_get_adapter_properties,
+ ncl_cmd_get_adapter_properties,
"Get adapter properties (1st parameter is adapter name)"},
{ "get_records",
- ncl_cmd_neardal_get_records,
+ ncl_cmd_get_records,
"Get records list (1st parameter is tag name)"},
{ "get_record_properties",
- ncl_cmd_neardal_get_record_properties,
+ ncl_cmd_get_record_properties,
"Read a specific record. (1st parameter is record name)"},
{ "get_tags",
- ncl_cmd_neardal_get_tags,
+ ncl_cmd_get_tags,
"Get tags list (1st parameter is adapter name)"},
{ "get_tag_properties",
- ncl_cmd_neardal_get_tag_properties,
+ ncl_cmd_get_tag_properties,
"Get tag properties (1st parameter is tag name)"},
{ LISTCMD_NAME,
"List all available commands. 'cmd' --help -h /? for a specific help" },
{ "write",
- ncl_cmd_neardal_write,
+ ncl_cmd_write,
"Creates a NDEF record from parametersto be written to an NFC tag"},
- { "quit",
- ncl_cmd_quit,
+ { "exit",
+ ncl_cmd_exit,
"Exit from command line interpretor" },
+ { "set_adp_property",
+ ncl_cmd_set_adapter_property,
+ "Request Neard to set a proprety on defined adapter"},
+
{ "start_poll",
- ncl_cmd_neardal_start_poll,
+ ncl_cmd_start_poll,
"Request Neard to start polling (1st parameter is adapter name)"},
{ "stop_poll",
- ncl_cmd_neardal_stop_poll,
+ ncl_cmd_stop_poll,
"Request Neard to stop polling (1st parameter is adapter name)"},
{ "test_parameters",
#define NB_CL_FUNC (sizeof(itFunc) / sizeof(NCLCmdInterpretor))
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
void ncl_cmd_print(FILE *stream, char *format, ...)
{
gchar *bufTrace;
}
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
NCLCmdInterpretor *ncl_cmd_get_list(int *nbCmd)
{
if (nbCmd != NULL)
}
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
int ncl_cmd_get_nbCmd(void)
{
return NB_CL_FUNC;
}
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
NCLCmdContext *ncl_cmd_get_ctx(void)
{
return &sNclCmdCtx;
}
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
NCLError ncl_cmd_init(char *execCmdLineStr)
{
memset(&sNclCmdCtx, 0, sizeof(sNclCmdCtx));
}
-/******************************************************************************
+/*****************************************************************************
*
- *****************************************************************************/
+ ****************************************************************************/
void ncl_cmd_finalize(void)
{