#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
-#include "sigrok.h"
-#include "sigrok-internal.h"
+#include "libsigrok.h"
+#include "libsigrok-internal.h"
#define NUM_PACKETS 2048
#define PACKET_SIZE 4096
{
int num_probes, i;
char name[SR_MAX_PROBENAME_LEN + 1];
-
- if (in->param && in->param[0]) {
- num_probes = strtoul(in->param, NULL, 10);
- if (num_probes < 1) {
- sr_err("la8 in: %s: strtoul failed", __func__);
- return SR_ERR;
+ char *param;
+
+ num_probes = DEFAULT_NUM_PROBES;
+
+ if (in->param) {
+ param = g_hash_table_lookup(in->param, "numprobes");
+ if (param) {
+ num_probes = strtoul(param, NULL, 10);
+ if (num_probes < 1) {
+ sr_err("la8 in: %s: strtoul failed", __func__);
+ return SR_ERR;
+ }
}
- } else {
- num_probes = DEFAULT_NUM_PROBES;
}
/* Create a virtual device. */
{
struct sr_datafeed_header header;
struct sr_datafeed_packet packet;
+ struct sr_datafeed_meta_logic meta;
struct sr_datafeed_logic logic;
uint8_t buf[PACKET_SIZE], divcount;
int i, fd, size, num_probes;
packet.payload = &header;
header.feed_version = 1;
gettimeofday(&header.starttime, NULL);
- header.num_logic_probes = num_probes;
- header.samplerate = samplerate;
+ sr_session_send(in->vdev, &packet);
+
+ /* Send metadata about the SR_DF_LOGIC packets to come. */
+ packet.type = SR_DF_META_LOGIC;
+ packet.payload = &meta;
+ meta.samplerate = samplerate;
+ meta.num_probes = num_probes;
sr_session_send(in->vdev, &packet);
/* TODO: Handle trigger point. */