ols: use new scan API

This commit is contained in:
Bert Vermeulen 2012-07-13 22:16:37 +02:00
parent ed300b9f6a
commit 10e5cbede8
2 changed files with 28 additions and 10 deletions

View File

@ -227,10 +227,11 @@ static struct sr_dev_inst *get_metadata(int fd)
{ {
struct sr_dev_inst *sdi; struct sr_dev_inst *sdi;
struct context *ctx; struct context *ctx;
uint32_t tmp_int; struct sr_probe *probe;
uint32_t tmp_int, ui;
uint8_t key, type, token; uint8_t key, type, token;
GString *tmp_str, *devname, *version; GString *tmp_str, *devname, *version;
gchar tmp_c; guchar tmp_c;
sdi = sr_dev_inst_new(0, SR_ST_INACTIVE, NULL, NULL, NULL); sdi = sr_dev_inst_new(0, SR_ST_INACTIVE, NULL, NULL, NULL);
ctx = ols_dev_new(); ctx = ols_dev_new();
@ -289,7 +290,12 @@ static struct sr_dev_inst *get_metadata(int fd)
switch (token) { switch (token) {
case 0x00: case 0x00:
/* Number of usable probes */ /* Number of usable probes */
ctx->num_probes = tmp_int; for (ui = 0; ui < tmp_int; ui++) {
if (!(probe = sr_probe_new(ui, SR_PROBE_LOGIC, TRUE,
probe_names[ui])))
return 0;
sdi->probes = g_slist_append(sdi->probes, probe);
}
break; break;
case 0x01: case 0x01:
/* Amount of sample memory available (bytes) */ /* Amount of sample memory available (bytes) */
@ -322,7 +328,12 @@ static struct sr_dev_inst *get_metadata(int fd)
switch (token) { switch (token) {
case 0x00: case 0x00:
/* Number of usable probes */ /* Number of usable probes */
ctx->num_probes = tmp_c; for (ui = 0; ui < tmp_c; ui++) {
if (!(probe = sr_probe_new(ui, SR_PROBE_LOGIC, TRUE,
probe_names[ui])))
return 0;
sdi->probes = g_slist_append(sdi->probes, probe);
}
break; break;
case 0x01: case 0x01:
/* protocol version */ /* protocol version */
@ -356,16 +367,19 @@ static int hw_init(void)
return SR_OK; return SR_OK;
} }
static int hw_scan(void) static GSList *hw_scan(GSList *options)
{ {
struct sr_dev_inst *sdi; struct sr_dev_inst *sdi;
struct context *ctx; struct context *ctx;
GSList *ports, *l; struct sr_probe *probe;
GSList *devices, *ports, *l;
GPollFD *fds, probefd; GPollFD *fds, probefd;
int devcnt, final_devcnt, num_ports, fd, ret, i; int devcnt, final_devcnt, num_ports, fd, ret, i, j;
char buf[8], **dev_names, **serial_params; char buf[8], **dev_names, **serial_params;
(void)options;
final_devcnt = 0; final_devcnt = 0;
devices = NULL;
/* Scan all serial ports. */ /* Scan all serial ports. */
ports = list_serial_ports(); ports = list_serial_ports();
@ -455,7 +469,12 @@ static int hw_scan(void)
sdi = sr_dev_inst_new(final_devcnt, SR_ST_INACTIVE, sdi = sr_dev_inst_new(final_devcnt, SR_ST_INACTIVE,
"Sump", "Logic Analyzer", "v1.0"); "Sump", "Logic Analyzer", "v1.0");
ctx = ols_dev_new(); ctx = ols_dev_new();
ctx->num_probes = 32; for (j = 0; j < 32; j++) {
if (!(probe = sr_probe_new(j, SR_PROBE_LOGIC, TRUE,
probe_names[j])))
return 0;
sdi->probes = g_slist_append(sdi->probes, probe);
}
sdi->priv = ctx; sdi->priv = ctx;
} }
ctx->serial = sr_serial_dev_inst_new(dev_names[i], -1); ctx->serial = sr_serial_dev_inst_new(dev_names[i], -1);
@ -485,7 +504,7 @@ hw_init_free_fds:
hw_init_free_ports: hw_init_free_ports:
g_slist_free(ports); g_slist_free(ports);
return final_devcnt; return devices;
} }
static int hw_dev_open(int dev_index) static int hw_dev_open(int dev_index)

View File

@ -64,7 +64,6 @@ struct context {
uint32_t max_samplerate; uint32_t max_samplerate;
uint32_t max_samples; uint32_t max_samples;
uint32_t protocol_version; uint32_t protocol_version;
int num_probes;
uint64_t cur_samplerate; uint64_t cur_samplerate;
uint32_t cur_samplerate_divider; uint32_t cur_samplerate_divider;