X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fdemo%2Fdemo.c;h=98bf4fb0bda474328a2f37f910cb890407dd575f;hb=ecc16ed07052ef399c36d36456aa943fcf81190c;hp=710c1fcc2b231aafcf275c0172f1b58a3b259d03;hpb=c09f0b578c0e9c03590cb814f66004bb3f6815ff;p=libsigrok.git diff --git a/hardware/demo/demo.c b/hardware/demo/demo.c index 710c1fcc..98bf4fb0 100644 --- a/hardware/demo/demo.c +++ b/hardware/demo/demo.c @@ -72,7 +72,7 @@ struct databag { uint8_t thread_running; uint64_t samples_counter; int dev_index; - gpointer session_data; + void *session_dev_id; GTimer *timer; }; @@ -138,7 +138,7 @@ static int default_pattern = PATTERN_SIGROK; static GThread *my_thread; static int thread_running; -static int hw_dev_acquisition_stop(int dev_index, gpointer session_data); +static int hw_dev_acquisition_stop(int dev_index, void *cb_data); static int hw_init(const char *devinfo) { @@ -314,7 +314,8 @@ static void samples_generator(uint8_t *buf, uint64_t size, void *data) memset(buf, 0xff, size); break; default: - /* TODO: Error handling. */ + sr_err("demo: %s: unknown pattern %d", __func__, + mydata->sample_generator); break; } } @@ -368,7 +369,7 @@ static void thread_func(void *data) } /* Callback handling data */ -static int receive_data(int fd, int revents, void *session_data) +static int receive_data(int fd, int revents, void *cb_data) { struct sr_datafeed_packet packet; struct sr_datafeed_logic logic; @@ -390,7 +391,7 @@ static int receive_data(int fd, int revents, void *session_data) logic.length = z; logic.unitsize = 1; logic.data = c; - sr_session_bus(session_data, &packet); + sr_session_send(cb_data, &packet); samples_received += z; } } while (z > 0); @@ -401,7 +402,7 @@ static int receive_data(int fd, int revents, void *session_data) /* Send last packet. */ packet.type = SR_DF_END; - sr_session_bus(session_data, &packet); + sr_session_send(cb_data, &packet); return FALSE; } @@ -409,7 +410,7 @@ static int receive_data(int fd, int revents, void *session_data) return TRUE; } -static int hw_dev_acquisition_start(int dev_index, gpointer session_data) +static int hw_dev_acquisition_start(int dev_index, void *cb_data) { struct sr_datafeed_packet *packet; struct sr_datafeed_header *header; @@ -422,7 +423,7 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_data) } mydata->sample_generator = default_pattern; - mydata->session_data = session_data; + mydata->session_dev_id = cb_data; mydata->dev_index = dev_index; mydata->samples_counter = 0; @@ -444,7 +445,7 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_data) g_io_channel_set_buffered(channels[1], FALSE); sr_source_add(mydata->pipe_fds[0], G_IO_IN | G_IO_ERR, 40, - receive_data, session_data); + receive_data, mydata->session_dev_id); /* Run the demo thread. */ g_thread_init(NULL); @@ -474,18 +475,19 @@ static int hw_dev_acquisition_start(int dev_index, gpointer session_data) gettimeofday(&header->starttime, NULL); header->samplerate = cur_samplerate; header->num_logic_probes = NUM_PROBES; - sr_session_bus(session_data, packet); + sr_session_send(mydata->session_dev_id, packet); g_free(header); g_free(packet); return SR_OK; } -static int hw_dev_acquisition_stop(int dev_index, gpointer session_data) +/* TODO: This stops acquisition on ALL devices, ignoring dev_index. */ +static int hw_dev_acquisition_stop(int dev_index, void *cb_data) { /* Avoid compiler warnings. */ (void)dev_index; - (void)session_data; + (void)cb_data; /* Stop generate thread. */ thread_running = 0;