X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fzeroplus-logic-cube%2Fapi.c;h=c85a40892b69a297317d67c6267bfe0552c3f4d9;hb=c50805d59ce85e00ef263c0a1edad2487bb8a9fe;hp=62577a1451ae27001cf9c6fa73a70e760a2c475f;hpb=41812aca436805b0614f2a8f31cf2f8ce494aea0;p=libsigrok.git
diff --git a/src/hardware/zeroplus-logic-cube/api.c b/src/hardware/zeroplus-logic-cube/api.c
index 62577a14..c85a4089 100644
--- a/src/hardware/zeroplus-logic-cube/api.c
+++ b/src/hardware/zeroplus-logic-cube/api.c
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+#include
#include "protocol.h"
#define VENDOR_NAME "ZEROPLUS"
@@ -30,7 +31,7 @@
struct zp_model {
uint16_t vid;
uint16_t pid;
- char *model_name;
+ const char *model_name;
unsigned int channels;
unsigned int sample_depth; /* In Ksamples/channel */
unsigned int max_sampling_freq;
@@ -50,7 +51,7 @@ static const struct zp_model zeroplus_models[] = {
{0x0c12, 0x700e, "LAP-C(16032)", 16, 32, 100},
{0x0c12, 0x7016, "LAP-C(162000)", 16, 2048, 200},
{0x0c12, 0x7100, "AKIP-9101", 16, 256, 200},
- { 0, 0, 0, 0, 0, 0 }
+ ALL_ZERO
};
static const uint32_t devopts[] = {
@@ -182,12 +183,7 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options)
libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist); /* TODO: Errors. */
for (i = 0; devlist[i]; i++) {
- ret = libusb_get_device_descriptor(devlist[i], &des);
- if (ret != 0) {
- sr_err("Failed to get device descriptor: %s.",
- libusb_error_name(ret));
- continue;
- }
+ libusb_get_device_descriptor(devlist[i], &des);
if ((ret = libusb_open(devlist[i], &hdl)) < 0)
continue;
@@ -516,8 +512,7 @@ static int config_list(uint32_t key, GVariant **data, const struct sr_dev_inst *
return SR_OK;
}
-static int dev_acquisition_start(const struct sr_dev_inst *sdi,
- void *cb_data)
+static int dev_acquisition_start(const struct sr_dev_inst *sdi)
{
struct dev_context *devc;
struct sr_usb_dev_inst *usb;
@@ -542,10 +537,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi,
if (sdi->status != SR_ST_ACTIVE)
return SR_ERR_DEV_CLOSED;
- if (!(devc = sdi->priv)) {
- sr_err("%s: sdi->priv was NULL", __func__);
- return SR_ERR_ARG;
- }
+ devc = sdi->priv;
if (analyzer_add_triggers(sdi) != SR_OK) {
sr_err("Failed to configure triggers.");
@@ -582,13 +574,11 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi,
sr_info("Ramsize trigger = 0x%x.", ramsize_trigger);
sr_info("Memory size = 0x%x.", memory_size);
- /* Send header packet to the session bus. */
- std_session_send_df_header(cb_data, LOG_PREFIX);
+ std_session_send_df_header(sdi, LOG_PREFIX);
/* Check for empty capture */
if ((status & STATUS_READY) && !stop_address) {
- packet.type = SR_DF_END;
- sr_session_send(cb_data, &packet);
+ std_session_send_df_end(sdi, LOG_PREFIX);
return SR_OK;
}
@@ -671,7 +661,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi,
logic.length = (trigger_offset - samples_read) * 4;
logic.unitsize = 4;
logic.data = buf + buf_offset;
- sr_session_send(cb_data, &packet);
+ sr_session_send(sdi, &packet);
len -= logic.length;
samples_read += logic.length / 4;
buf_offset += logic.length;
@@ -681,7 +671,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi,
/* Send out trigger */
packet.type = SR_DF_TRIGGER;
packet.payload = NULL;
- sr_session_send(cb_data, &packet);
+ sr_session_send(sdi, &packet);
}
/* Send out data (or data after trigger) */
@@ -690,32 +680,23 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi,
logic.length = len;
logic.unitsize = 4;
logic.data = buf + buf_offset;
- sr_session_send(cb_data, &packet);
+ sr_session_send(sdi, &packet);
samples_read += len / 4;
}
analyzer_read_stop(usb->devhdl);
g_free(buf);
- packet.type = SR_DF_END;
- sr_session_send(cb_data, &packet);
+ std_session_send_df_end(sdi, LOG_PREFIX);
return SR_OK;
}
/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */
-static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
+static int dev_acquisition_stop(struct sr_dev_inst *sdi)
{
- struct dev_context *devc;
struct sr_usb_dev_inst *usb;
- struct sr_datafeed_packet packet;
-
- packet.type = SR_DF_END;
- sr_session_send(cb_data, &packet);
- if (!(devc = sdi->priv)) {
- sr_err("%s: sdi->priv was NULL", __func__);
- return SR_ERR_BUG;
- }
+ std_session_send_df_end(sdi, LOG_PREFIX);
usb = sdi->conn;
analyzer_reset(usb->devhdl);