return devices;
}
-static int hw_dev_open(int dev_index)
+static int hw_dev_open(struct sr_dev_inst *sdi)
{
- struct sr_dev_inst *sdi;
struct context *ctx;
int64_t timediff_us, timediff_ms;
int err;
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ERR_ARG;
ctx = sdi->priv;
/*
g_usleep(300 * 1000);
timediff_ms = 0;
while (timediff_ms < MAX_RENUM_DELAY_MS) {
- if ((err = dso_open(dev_index)) == SR_OK)
+ if ((err = dso_open(sdi)) == SR_OK)
break;
g_usleep(100 * 1000);
timediff_us = g_get_monotonic_time() - ctx->fw_updated;
}
sr_info("hantek-dso: device came back after %d ms", timediff_ms);
} else {
- err = dso_open(dev_index);
+ err = dso_open(sdi);
}
if (err != SR_OK) {
return SR_OK;
}
-static int hw_dev_close(int dev_index)
+static int hw_dev_close(struct sr_dev_inst *sdi)
{
- struct sr_dev_inst *sdi;
-
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ERR_ARG;
dso_close(sdi);
return SR_OK;
}
-static int hw_dev_status_get(int dev_index)
-{
- struct sr_dev_inst *sdi;
-
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ST_NOT_FOUND;
-
- return sdi->status;
-}
-
-static int hw_dev_config_set(int dev_index, int hwcap, const void *value)
+static int hw_dev_config_set(const struct sr_dev_inst *sdi, int hwcap,
+ const void *value)
{
- struct sr_dev_inst *sdi;
struct context *ctx;
struct sr_rational tmp_rat;
float tmp_float;
int ret, i;
char **targets;
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ERR;
-
if (sdi->status != SR_ST_ACTIVE)
return SR_ERR;
return TRUE;
}
-static int hw_dev_acquisition_start(int dev_index, void *cb_data)
+static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
+ void *cb_data)
{
const struct libusb_pollfd **lupfd;
struct sr_datafeed_packet packet;
struct sr_datafeed_header header;
struct sr_datafeed_meta_analog meta;
- struct sr_dev_inst *sdi;
struct context *ctx;
int i;
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ERR;
-
if (sdi->status != SR_ST_ACTIVE)
return SR_ERR;
/* TODO: doesn't really cancel pending transfers so they might come in after
* SR_DF_END is sent.
*/
-static int hw_dev_acquisition_stop(int dev_index, void *cb_data)
+static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi,
+ void *cb_data)
{
struct sr_datafeed_packet packet;
- struct sr_dev_inst *sdi;
struct context *ctx;
- if (!(sdi = sr_dev_inst_get(hdi->instances, dev_index)))
- return SR_ERR;
-
if (sdi->status != SR_ST_ACTIVE)
return SR_ERR;
.dev_open = hw_dev_open,
.dev_close = hw_dev_close,
.info_get = hw_info_get,
- .dev_status_get = hw_dev_status_get,
.dev_config_set = hw_dev_config_set,
.dev_acquisition_start = hw_dev_acquisition_start,
.dev_acquisition_stop = hw_dev_acquisition_stop,