]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/chronovu-la/api.c
clear_helper(): Use a cast to shorten all implementations.
[libsigrok.git] / src / hardware / chronovu-la / api.c
index 9f793969464261fd113e1651cec8ea572313809f..2c4ec3db60e42aedac74981b5fbacaa33205e099 100644 (file)
@@ -43,19 +43,15 @@ static const int32_t trigger_matches[] = {
        SR_TRIGGER_FALLING,
 };
 
-static void clear_helper(void *priv)
+static void clear_helper(struct dev_context *devc)
 {
-       struct dev_context *devc;
-
-       devc = priv;
-
        ftdi_free(devc->ftdic);
        g_free(devc->final_buf);
 }
 
 static int dev_clear(const struct sr_dev_driver *di)
 {
-       return std_dev_clear(di, clear_helper);
+       return std_dev_clear_with_callback(di, (std_dev_clear_callback)clear_helper);
 }
 
 static int add_device(int model, struct libusb_device_descriptor *des,
@@ -251,7 +247,6 @@ static int dev_open(struct sr_dev_inst *sdi)
                       ret, ftdi_get_error_string(devc->ftdic));
                goto err_ftdi_free;
        }
-       sr_dbg("Device opened successfully.");
 
        /* Purge RX/TX buffers in the FTDI chip. */
        if ((ret = ftdi_usb_purge_buffers(devc->ftdic)) < 0) {
@@ -259,7 +254,6 @@ static int dev_open(struct sr_dev_inst *sdi)
                       ret, ftdi_get_error_string(devc->ftdic));
                goto err_ftdi_free;
        }
-       sr_dbg("FTDI buffers purged successfully.");
 
        /* Enable flow control in the FTDI chip. */
        if ((ret = ftdi_setflowctrl(devc->ftdic, SIO_RTS_CTS_HS)) < 0) {
@@ -267,20 +261,16 @@ static int dev_open(struct sr_dev_inst *sdi)
                       ret, ftdi_get_error_string(devc->ftdic));
                goto err_ftdi_free;
        }
-       sr_dbg("FTDI flow control enabled successfully.");
 
        /* 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,13 +280,14 @@ static int dev_close(struct sr_dev_inst *sdi)
 
        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,
@@ -524,8 +515,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi)
                return SR_ERR;
        }
 
-       sr_dbg("Hardware acquisition started successfully.");
-
        std_session_send_df_header(sdi);
 
        /* Time when we should be done (for detecting trigger timeouts). */