X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=src%2Fhardware%2Fdemo%2Fdemo.c;h=9a0232397564456156a339539e78d2fc9c5653b1;hb=ec1a1a8c462dbaabea1a4fb9041c155a78d2386b;hp=e7948cdc4a89f7e175506f86683c6e2ae6d2e79f;hpb=600cc1a8a5714da133a4a6b91b792f8416baa0ae;p=libsigrok.git diff --git a/src/hardware/demo/demo.c b/src/hardware/demo/demo.c index e7948cdc..9a023239 100644 --- a/src/hardware/demo/demo.c +++ b/src/hardware/demo/demo.c @@ -137,7 +137,7 @@ static const uint32_t scanopts[] = { }; static const uint32_t devopts[] = { - SR_CONF_CONTINUOUS | SR_CONF_SET, + SR_CONF_CONTINUOUS, SR_CONF_LIMIT_SAMPLES | SR_CONF_GET | SR_CONF_SET, SR_CONF_LIMIT_MSEC | SR_CONF_GET | SR_CONF_SET, SR_CONF_SAMPLERATE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST, @@ -177,7 +177,7 @@ static const uint8_t pattern_sigrok[] = { SR_PRIV struct sr_dev_driver demo_driver_info; -static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data); +static int dev_acquisition_stop(struct sr_dev_inst *sdi); static int init(struct sr_dev_driver *di, struct sr_context *sr_ctx) { @@ -354,11 +354,6 @@ static GSList *scan(struct sr_dev_driver *di, GSList *options) return devices; } -static GSList *dev_list(const struct sr_dev_driver *di) -{ - return ((struct drv_context *)(di->context))->instances; -} - static int dev_open(struct sr_dev_inst *sdi) { sdi->status = SR_ST_ACTIVE; @@ -389,7 +384,7 @@ static void clear_helper(void *priv) g_free(devc); } -static int cleanup(const struct sr_dev_driver *di) +static int dev_clear(const struct sr_dev_driver *di) { return std_dev_clear(di, clear_helper); } @@ -757,7 +752,7 @@ static int prepare_data(int fd, int revents, void *cb_data) if (devc->cur_samplerate <= 0 || devc->logic_unitsize <= 0 || (devc->num_logic_channels <= 0 && devc->num_analog_channels <= 0)) { - dev_acquisition_stop(sdi, sdi); + dev_acquisition_stop(sdi); return G_SOURCE_CONTINUE; } @@ -841,20 +836,18 @@ static int prepare_data(int fd, int revents, void *cb_data) } } sr_dbg("Requested number of samples reached."); - dev_acquisition_stop(sdi, sdi); + dev_acquisition_stop(sdi); } return G_SOURCE_CONTINUE; } -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; GHashTableIter iter; void *value; - (void)cb_data; - if (sdi->status != SR_ST_ACTIVE) return SR_ERR_DEV_CLOSED; @@ -868,7 +861,6 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) sr_session_source_add(sdi->session, -1, 0, 100, prepare_data, (struct sr_dev_inst *)sdi); - /* Send header packet to the session bus. */ std_session_send_df_header(sdi, LOG_PREFIX); /* We use this timestamp to decide how many more samples to send. */ @@ -878,19 +870,11 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data) return SR_OK; } -static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data) +static int dev_acquisition_stop(struct sr_dev_inst *sdi) { - struct sr_datafeed_packet packet; - - (void)cb_data; - sr_dbg("Stopping acquisition."); - sr_session_source_remove(sdi->session, -1); - - /* Send last packet. */ - packet.type = SR_DF_END; - sr_session_send(sdi, &packet); + std_session_send_df_end(sdi, LOG_PREFIX); return SR_OK; } @@ -900,10 +884,10 @@ SR_PRIV struct sr_dev_driver demo_driver_info = { .longname = "Demo driver and pattern generator", .api_version = 1, .init = init, - .cleanup = cleanup, + .cleanup = std_cleanup, .scan = scan, - .dev_list = dev_list, - .dev_clear = NULL, + .dev_list = std_dev_list, + .dev_clear = dev_clear, .config_get = config_get, .config_set = config_set, .config_list = config_list,