* If the device's 'driver' field is NULL (virtual device), this
* function will always return FALSE (virtual devices don't have
* a hardware capabilities list).
- * @param hwcap The capability that should be checked (whether it's supported
- * by the specified device).
+ * @param option The option that should be checked for support on the
+ * specified device.
*
- * @return TRUE if the device has the specified capability, FALSE otherwise.
- * FALSE is also returned upon invalid input parameters or other
+ * @return TRUE if the device has the specified option, FALSE otherwise.
+ * FALSE is also returned on invalid input parameters or other
* error conditions.
*/
-SR_API gboolean sr_dev_has_hwcap(const struct sr_dev_inst *sdi, int hwcap)
+SR_API gboolean sr_dev_has_option(const struct sr_dev_inst *sdi, int key)
{
- const int *hwcaps;
+ const int *devopts;
int i;
if (!sdi || !sdi->driver)
return FALSE;
- if (sdi->driver->info_get(SR_DI_HWCAPS,
- (const void **)&hwcaps, NULL) != SR_OK)
+ if (sdi->driver->config_list(SR_CONF_DEVICE_OPTIONS,
+ (const void **)&devopts, NULL) != SR_OK)
return FALSE;
- for (i = 0; hwcaps[i]; i++) {
- if (hwcaps[i] == hwcap)
+ for (i = 0; devopts[i]; i++) {
+ if (devopts[i] == key)
return TRUE;
}
struct sr_dev_inst *sdi;
if (!(sdi = g_try_malloc(sizeof(struct sr_dev_inst)))) {
- sr_err("%s: sdi malloc failed", __func__);
+ sr_err("Device instance malloc failed.");
return NULL;
}
struct sr_usb_dev_inst *udi;
if (!(udi = g_try_malloc(sizeof(struct sr_usb_dev_inst)))) {
- sr_err("%s: udi malloc failed", __func__);
+ sr_err("USB device instance malloc failed.");
return NULL;
}
struct sr_serial_dev_inst *serial;
if (!port) {
- sr_err("hwdriver: serial port required");
+ sr_err("Serial port required.");
return NULL;
}
if (!(serial = g_try_malloc0(sizeof(struct sr_serial_dev_inst)))) {
- sr_err("hwdriver: serial malloc failed");
+ sr_err("Serial device instance malloc failed.");
return NULL;
}
/** @private */
SR_PRIV void sr_serial_dev_inst_free(struct sr_serial_dev_inst *serial)
{
-
g_free(serial->port);
g_free(serial->serialcomm);
-
-}
-
-SR_API int sr_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
- const void *value)
-{
- int ret;
-
- if (!sdi || !sdi->driver || !sdi->driver->dev_config_set) {
- sr_err("Unable to set config option.");
- return SR_ERR;
- }
-
- ret = sdi->driver->dev_config_set(sdi, hwcap, value);
-
- return ret;
+ g_free(serial);
}
SR_API GSList *sr_dev_inst_list(const struct sr_dev_driver *driver)
{
-
if (driver && driver->dev_list)
return driver->dev_list();
else
SR_API int sr_dev_inst_clear(const struct sr_dev_driver *driver)
{
-
if (driver && driver->dev_clear)
return driver->dev_clear();
else