input: use dummy device when loading from file

This commit is contained in:
Bert Vermeulen 2010-05-05 19:55:58 -07:00
parent 873080cc03
commit db91a1c3c1
1 changed files with 11 additions and 6 deletions

View File

@ -37,37 +37,42 @@ static int format_match(char *filename)
} }
/* TODO: number of probes hardcoded to 8 */
static int in_loadfile(char *filename) static int in_loadfile(char *filename)
{ {
struct datafeed_header header; struct datafeed_header header;
struct datafeed_packet packet; struct datafeed_packet packet;
struct device *device;
char buffer[CHUNKSIZE]; char buffer[CHUNKSIZE];
int fd, size; int fd, size, num_probes;
if( (fd = open(filename, O_RDONLY)) == -1) if( (fd = open(filename, O_RDONLY)) == -1)
return SIGROK_ERR; return SIGROK_ERR;
/* TODO: number of probes hardcoded to 8 */
num_probes = 8;
device = device_new(NULL, 0, num_probes);
header.feed_version = 1; header.feed_version = 1;
header.num_probes = 8; header.num_probes = num_probes;
header.protocol_id = PROTO_RAW; header.protocol_id = PROTO_RAW;
header.samplerate = 0; header.samplerate = 0;
gettimeofday(&header.starttime, NULL); gettimeofday(&header.starttime, NULL);
packet.type = DF_HEADER; packet.type = DF_HEADER;
packet.length = sizeof(struct datafeed_header); packet.length = sizeof(struct datafeed_header);
packet.payload = &header; packet.payload = &header;
session_bus(NULL, &packet); session_bus(device, &packet);
packet.type = DF_LOGIC8; packet.type = DF_LOGIC8;
packet.payload = buffer; packet.payload = buffer;
while( (size = read(fd, buffer, CHUNKSIZE)) > 0) { while( (size = read(fd, buffer, CHUNKSIZE)) > 0) {
packet.length = size; packet.length = size;
session_bus(NULL, &packet); session_bus(device, &packet);
} }
close(fd); close(fd);
packet.type = DF_END; packet.type = DF_END;
session_bus(NULL, &packet); packet.length = 0;
session_bus(device, &packet);
return SIGROK_OK; return SIGROK_OK;