Removes nfc_get_default_device() function.
The nfc_get_default_device() is not needed anymore since the first element from returned nfc_connstring list of nfc_list_devices() function. Plus, nfc_open() can be use with NULL nfc_connstring which will select automatically the first available device (ie. the default one).
This commit is contained in:
parent
03e5611d14
commit
dc949c257e
4 changed files with 15 additions and 38 deletions
3
NEWS
3
NEWS
|
@ -21,6 +21,9 @@ API Changes:
|
|||
creation, etc.)
|
||||
|
||||
* Functions
|
||||
- Remove nfc_get_default_device() function: the default device is now the
|
||||
first in nfc_list_devices() or could be open using NULL connstring with
|
||||
nfc_open() function.
|
||||
- New enum-to-string converter functions str_nfc_modulation_type() and
|
||||
str_nfc_baud_rate()
|
||||
- New str_nfc_target() to convert nfc_target struct into allocated string
|
||||
|
|
|
@ -67,7 +67,6 @@ extern "C" {
|
|||
NFC_EXPORT void nfc_exit(nfc_context *context);
|
||||
|
||||
/* NFC Device/Hardware manipulation */
|
||||
NFC_EXPORT bool nfc_get_default_device(nfc_connstring *connstring);
|
||||
NFC_EXPORT nfc_device *nfc_open(nfc_context *context, const nfc_connstring connstring);
|
||||
NFC_EXPORT void nfc_close(nfc_device *pnd);
|
||||
NFC_EXPORT int nfc_abort_command(nfc_device *pnd);
|
||||
|
|
|
@ -80,12 +80,20 @@ nfc_context_new(void)
|
|||
}
|
||||
res->user_defined_device_count = 0;
|
||||
|
||||
// Load user defined device from environment variable at first
|
||||
char *envvar = getenv("LIBNFC_DEFAULT_DEVICE");
|
||||
if (envvar) {
|
||||
strcpy(res->user_defined_devices[0].name, "user defined default device");
|
||||
strcpy(res->user_defined_devices[0].connstring, envvar);
|
||||
res->user_defined_device_count++;
|
||||
}
|
||||
|
||||
// Load options from configuration file (ie. /etc/nfc/libnfc.conf)
|
||||
conf_load(res);
|
||||
|
||||
// Environment variables
|
||||
// Load "intrusive scan" option
|
||||
char *envvar = getenv("LIBNFC_INTRUSIVE_SCAN");
|
||||
envvar = getenv("LIBNFC_INTRUSIVE_SCAN");
|
||||
string_as_boolean(envvar, &(res->allow_intrusive_scan));
|
||||
|
||||
// log level
|
||||
|
|
39
libnfc/nfc.c
39
libnfc/nfc.c
|
@ -132,46 +132,13 @@ nfc_exit(nfc_context *context)
|
|||
nfc_context_free(context);
|
||||
}
|
||||
|
||||
/** @ingroup dev
|
||||
* @brief Get the defaut NFC device
|
||||
* @param connstring \a nfc_connstring pointer where the default connection string will be stored
|
||||
* @return \e true on success
|
||||
*
|
||||
* This function fill \e connstring with the LIBNFC_DEFAULT_DEVICE environment variable content
|
||||
* if is set otherwise it will search for the first available device, and fill
|
||||
* \e connstring with the corresponding \a nfc_connstring value.
|
||||
*
|
||||
* This function returns true when LIBNFC_DEFAULT_DEVICE is set or an available device is found.
|
||||
*
|
||||
* @note The \e connstring content can be invalid if LIBNFC_DEFAULT_DEVICE is
|
||||
* set with incorrect value.
|
||||
*/
|
||||
bool
|
||||
nfc_get_default_device(nfc_connstring *connstring)
|
||||
{
|
||||
char *env_default_connstring = getenv("LIBNFC_DEFAULT_DEVICE");
|
||||
if (NULL == env_default_connstring) {
|
||||
// LIBNFC_DEFAULT_DEVICE is not set, we fallback on probing for the first available device
|
||||
nfc_connstring listed_cs[1];
|
||||
size_t device_found = nfc_list_devices(NULL, listed_cs, 1);
|
||||
if (device_found) {
|
||||
strncpy(*connstring, listed_cs[0], sizeof(nfc_connstring));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
strncpy(*connstring, env_default_connstring, sizeof(nfc_connstring));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/** @ingroup dev
|
||||
* @brief Open a NFC device
|
||||
* @param context The context to operate on, or NULL for the default context.
|
||||
* @param context The context to operate on.
|
||||
* @param connstring The device connection string if specific device is wanted, \c NULL otherwise
|
||||
* @return Returns pointer to a \a nfc_device struct if successfull; otherwise returns \c NULL value.
|
||||
*
|
||||
* If \e connstring is \c NULL, the \a nfc_get_default_device() function is used.
|
||||
* If \e connstring is \c NULL, the first available device from \a nfc_list_devices function is used.
|
||||
*
|
||||
* If \e connstring is set, this function will try to claim the right device using information provided by \e connstring.
|
||||
*
|
||||
|
@ -189,7 +156,7 @@ nfc_open(nfc_context *context, const nfc_connstring connstring)
|
|||
|
||||
nfc_connstring ncs;
|
||||
if (connstring == NULL) {
|
||||
if (!nfc_get_default_device(&ncs)) {
|
||||
if (!nfc_list_devices(context, &ncs, 1)) {
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue