X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fsaleae-logic16%2Fapi.c;h=d2815f63a880c420f8c9c9d0d5ad1883b0a9cc98;hb=c36923b03b343bcdbda55e5167a36e1c63b527a7;hp=dfcbe047f8ea3674794d977367d27a0f66bab0a0;hpb=0c30b35fce5777592ff781ec9660b7e46f0af9c6;p=libsigrok.git diff --git a/hardware/saleae-logic16/api.c b/hardware/saleae-logic16/api.c index dfcbe047..d2815f63 100644 --- a/hardware/saleae-logic16/api.c +++ b/hardware/saleae-logic16/api.c @@ -431,7 +431,8 @@ static int cleanup(void) return ret; } -static int config_get(int key, GVariant **data, const struct sr_dev_inst *sdi) +static int config_get(int key, GVariant **data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { struct dev_context *devc; struct sr_usb_dev_inst *usb; @@ -440,6 +441,8 @@ static int config_get(int key, GVariant **data, const struct sr_dev_inst *sdi) int ret; unsigned int i; + (void)probe_group; + ret = SR_OK; switch (key) { case SR_CONF_CONN: @@ -482,13 +485,16 @@ static int config_get(int key, GVariant **data, const struct sr_dev_inst *sdi) return ret; } -static int config_set(int key, GVariant *data, const struct sr_dev_inst *sdi) +static int config_set(int key, GVariant *data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { struct dev_context *devc; gdouble low, high; int ret; unsigned int i; + (void)probe_group; + if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -522,7 +528,8 @@ static int config_set(int key, GVariant *data, const struct sr_dev_inst *sdi) return ret; } -static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi) +static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi, + const struct sr_probe_group *probe_group) { GVariant *gvar, *range[2]; GVariantBuilder gvb; @@ -530,6 +537,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi) unsigned int i; (void)sdi; + (void)probe_group; ret = SR_OK; switch (key) { @@ -683,7 +691,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) struct drv_context *drvc; struct sr_usb_dev_inst *usb; struct libusb_transfer *transfer; - const struct libusb_pollfd **lupfd; unsigned int i, timeout, num_transfers; int ret; unsigned char *buf; @@ -713,7 +720,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) size = get_buffer_size(devc); convsize = (size / devc->num_channels + 2) * 16; devc->submitted_transfers = 0; - devc->usbfd = NULL; devc->convbuffer_size = convsize; if (!(devc->convbuffer = g_try_malloc(convsize))) { @@ -763,21 +769,9 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) devc->submitted_transfers++; } - lupfd = libusb_get_pollfds(drvc->sr_ctx->libusb_ctx); - for (i = 0; lupfd[i]; i++); - devc->usbfd = g_try_malloc(sizeof(struct libusb_pollfd) * (i + 1)); - if (!devc->usbfd) { - abort_acquisition(devc); - free(lupfd); - return SR_ERR; - } - for (i = 0; lupfd[i]; i++) { - sr_source_add(lupfd[i]->fd, lupfd[i]->events, - timeout, receive_data, (void *)sdi); - devc->usbfd[i] = lupfd[i]->fd; - } - devc->usbfd[i] = -1; - free(lupfd); + devc->ctx = drvc->sr_ctx; + + usb_source_add(devc->ctx, timeout, receive_data, (void *)sdi); /* Send header packet to the session bus. */ std_session_send_df_header(cb_data, LOG_PREFIX);