X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fhardware%2Fikalogic-scanalogic2%2Fapi.c;h=4afaf30a9f5b42495c7eb66df7b6f07b9721cf8a;hb=a9010323ddf4e479663e871386c05db05ea3522e;hp=c82422a553ed38dc1a6bf7c810130e6812727643;hpb=bee2b0168c087676c1b365861d8c2d4714afa9b9;p=libsigrok.git diff --git a/src/hardware/ikalogic-scanalogic2/api.c b/src/hardware/ikalogic-scanalogic2/api.c index c82422a5..4afaf30a 100644 --- a/src/hardware/ikalogic-scanalogic2/api.c +++ b/src/hardware/ikalogic-scanalogic2/api.c @@ -152,22 +152,15 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) return std_scan_complete(di, devices); } -static void clear_dev_context(void *priv) +static void clear_helper(struct dev_context *devc) { - struct dev_context *devc; - - devc = priv; - - sr_dbg("Device context cleared."); - libusb_free_transfer(devc->xfer_in); libusb_free_transfer(devc->xfer_out); - g_free(devc); } static int dev_clear(const struct sr_dev_driver *di) { - return std_dev_clear(di, &clear_dev_context); + return std_dev_clear_with_callback(di, (std_dev_clear_callback)clear_helper); } static int dev_open(struct sr_dev_inst *sdi) @@ -232,8 +225,6 @@ static int dev_open(struct sr_dev_inst *sdi) return SR_ERR; } - sdi->status = SR_ST_ACTIVE; - return SR_OK; } @@ -244,13 +235,12 @@ static int dev_close(struct sr_dev_inst *sdi) usb = sdi->conn; if (!usb->devhdl) - return SR_OK; + return SR_ERR_BUG; libusb_release_interface(usb->devhdl, USB_INTERFACE); libusb_close(usb->devhdl); usb->devhdl = NULL; - sdi->status = SR_ST_INACTIVE; return SR_OK; } @@ -288,9 +278,6 @@ static int config_set(uint32_t key, GVariant *data, const struct sr_dev_inst *sd (void)cg; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - switch (key) { case SR_CONF_LIMIT_SAMPLES: limit_samples = g_variant_get_uint64(data); @@ -316,12 +303,10 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * { GVariant *gvar, *grange[2]; GVariantBuilder gvb; - int ret; (void)sdi; (void)cg; - ret = SR_OK; switch (key) { case SR_CONF_DEVICE_OPTIONS: *data = g_variant_new_fixed_array(G_VARIANT_TYPE_UINT32, @@ -349,7 +334,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst * return SR_ERR_NA; } - return ret; + return SR_OK; } static int dev_acquisition_start(const struct sr_dev_inst *sdi) @@ -361,9 +346,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) unsigned int i, j; int ret; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - devc = sdi->priv; drvc = di->context; @@ -432,8 +414,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) usb_source_add(sdi->session, drvc->sr_ctx, 100, ikalogic_scanalogic2_receive_data, (void *)sdi); - sr_dbg("Acquisition started successfully."); - std_session_send_df_header(sdi); devc->next_state = STATE_SAMPLE; @@ -443,11 +423,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) static int dev_acquisition_stop(struct sr_dev_inst *sdi) { - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - - sr_dbg("Stopping acquisition."); - sdi->status = SR_ST_STOPPING; return SR_OK;