X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fchronovu-la%2Fapi.c;h=0c94b398586629a57659310720cdfa5acc0b4e7e;hb=f1ba6b4b2c9a8ecf90bb31efb218752aa7e49d1a;hp=11721ebe6bbc72d0a6933ff8c880cd7eefa5f865;hpb=2ea1fdf12113311cbe1a4316e9e2efe4d8ac40f0;p=libsigrok.git diff --git a/src/hardware/chronovu-la/api.c b/src/hardware/chronovu-la/api.c index 11721ebe..0c94b398 100644 --- a/src/hardware/chronovu-la/api.c +++ b/src/hardware/chronovu-la/api.c @@ -43,8 +43,6 @@ static const int32_t trigger_matches[] = { SR_TRIGGER_FALLING, }; -static int dev_acquisition_stop(struct sr_dev_inst *sdi); - static void clear_helper(void *priv) { struct dev_context *devc; @@ -274,15 +272,12 @@ static int dev_open(struct sr_dev_inst *sdi) /* Wait 100ms. */ g_usleep(100 * 1000); - sdi->status = SR_ST_ACTIVE; - - if (ret == SR_OK) - return SR_OK; + return SR_OK; err_ftdi_free: ftdi_free(devc->ftdic); /* Close device (if open), free FTDI context. */ devc->ftdic = NULL; - return ret; + return SR_ERR; } static int dev_close(struct sr_dev_inst *sdi) @@ -290,17 +285,16 @@ static int dev_close(struct sr_dev_inst *sdi) int ret; struct dev_context *devc; - if (sdi->status != SR_ST_ACTIVE) - return SR_OK; - devc = sdi->priv; - if (devc->ftdic && (ret = ftdi_usb_close(devc->ftdic)) < 0) + if (!devc->ftdic) + return SR_ERR_BUG; + + if ((ret = ftdi_usb_close(devc->ftdic)) < 0) sr_err("Failed to close FTDI device (%d): %s.", ret, ftdi_get_error_string(devc->ftdic)); - sdi->status = SR_ST_INACTIVE; - return SR_OK; + return (ret == 0) ? SR_OK : SR_ERR; } static int config_get(uint32_t key, GVariant **data, const struct sr_dev_inst *sdi, @@ -339,9 +333,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; - devc = sdi->priv; switch (key) { @@ -452,7 +443,7 @@ static int receive_data(int fd, int revents, void *cb_data) /* Get one block of data. */ if ((ret = cv_read_block(devc)) < 0) { sr_err("Failed to read data block: %d.", ret); - dev_acquisition_stop(sdi); + sr_dev_acquisition_stop(sdi); return FALSE; } @@ -475,7 +466,7 @@ static int receive_data(int fd, int revents, void *cb_data) for (i = 0; i < NUM_BLOCKS; i++) cv_send_block_to_session_bus(sdi, i); - dev_acquisition_stop(sdi); + sr_dev_acquisition_stop(sdi); return TRUE; } @@ -486,9 +477,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) uint8_t buf[8]; int bytes_to_write, bytes_written; - if (sdi->status != SR_ST_ACTIVE) - return SR_ERR_DEV_CLOSED; - devc = sdi->priv; if (!devc->ftdic) { @@ -552,7 +540,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi) static int dev_acquisition_stop(struct sr_dev_inst *sdi) { - sr_dbg("Stopping acquisition."); sr_session_source_remove(sdi->session, -1); std_session_send_df_end(sdi);