Store names for backends, print autodetection.

This commit is contained in:
Ian Gulliver
2016-02-17 08:34:19 +00:00
parent a0d94a4198
commit f15ebf497e
2 changed files with 16 additions and 6 deletions

View File

@@ -21,9 +21,18 @@ static void backend_connect_handler(struct peer *, int);
static void backend_read(struct peer *, int);
static parser parsers[] = {
airspy_adsb_parse,
beast_parse,
struct parser {
char *name;
parser parse;
} parsers[] = {
{
.name = "airspy_adsb",
.parse = airspy_adsb_parse,
},
{
.name = "beast",
.parse = beast_parse,
},
};
#define NUM_PARSERS (sizeof(parsers) / sizeof(*parsers))
@@ -143,8 +152,9 @@ static void backend_read(struct peer *peer, int epoll_fd) {
static bool backend_autodetect_parse(struct backend *backend, struct packet *packet) {
for (int i = 0; i < NUM_PARSERS; i++) {
if (parsers[i](backend, packet)) {
backend->parser = parsers[i];
if (parsers[i].parse(backend, packet)) {
fprintf(stderr, "B %s: Detected input format %s\n", backend->id, parsers[i].name);
backend->parser = parsers[i].parse;
return true;
}
}

View File

@@ -29,7 +29,7 @@ struct serializer {
{
.name = "stats",
.serialize = stats_serialize,
}
},
};
#define NUM_SERIALIZERS (sizeof(serializers) / sizeof(*serializers))