X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fikalogic-scanalogic2%2Fapi.c;h=be20dfa87fb84627b98d92a33b358a2bd07f5e8d;hb=e66d1892d0dd16ed166fc8f13493f95de0607362;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..be20dfa8 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,17 +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, - devopts, ARRAY_SIZE(devopts), sizeof(uint32_t)); - break; + return STD_CONFIG_LIST(key, data, sdi, cg, NULL, NULL, devopts); case SR_CONF_SAMPLERATE: g_variant_builder_init(&gvb, G_VARIANT_TYPE("a{sv}")); gvar = g_variant_new_fixed_array(G_VARIANT_TYPE("t"), @@ -349,7 +329,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 +341,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 +409,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 +418,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;