TAILQ_ENTRY(dvb_bat_svc) link;
mpegts_service_t *svc;
dvb_freesat_svc_t *fallback;
+ uint32_t used:1;
} dvb_bat_svc_t;
typedef struct dvb_bat_id {
uint16_t sid;
uint32_t total = 0, regions = 0, uregions = 0;
+ tvhtrace(dstr, "completed %s [%04X] bouquets '%s'",
+ bi->freesat ? "freesat" : "bskyb", bi->nbid, bi->name);
+
/* Find all "fallback" services and region specific */
TAILQ_FOREACH(bs, &bi->services, link) {
total++;
break;
if (!fr)
tvhtrace(dstr, "cannot find freesat region id %u", fs->regionid);
- else
+ else {
+ bs->used = 1;
TAILQ_INSERT_TAIL(&fr->services, fs, region_link);
+ }
}
}
uregions++;
TAILQ_FOREACH(fs, &fr->services, region_link)
dvb_freesat_add_service(bi, fr, fs->svc, fs->lcn);
- TAILQ_FOREACH(bs, &bi->services, link)
+ TAILQ_FOREACH(bs, &bi->services, link) {
+ if (bs->used) continue;
if ((fs = bs->fallback) != NULL)
dvb_freesat_add_service(bi, fr, bs->svc, fs->lcn);
else
dvb_freesat_add_service(bi, fr, bs->svc, 0);
+ }
}
tvhtrace(dstr, "completed %s [%04X] bouquets '%s' total %u regions %u (%u)",
}
/* Clear all "fallback/default" services */
- TAILQ_FOREACH(bs, &bi->services, link)
+ TAILQ_FOREACH(bs, &bi->services, link) {
bs->fallback = NULL;
+ bs->used = 0;
+ }
+
+ tvhtrace(dstr, "completed %s [%04X] bouquets '%s' update finished",
+ bi->freesat ? "freesat" : "bskyb", bi->nbid, bi->name);
+
}
/*
len -= 2;
ptr += 2;
- tvhtrace(dstr, " region id %02X (%d) unknown %02X (%d)\n",
+ tvhtrace(dstr, " region id %02X (%d) unknown %02X (%d)",
regionid, regionid, ptr[0], ptr[0]);
while (len > 8) {
ptr += 9;
len -= 9;
- tvhtrace(dstr, " sid %04X (%d) type %02X (%d) lcn %d unknown %04X (%d)\n",
+ tvhtrace(dstr, " sid %04X (%d) type %02X (%d) lcn %d unknown %04X (%d)",
sid, sid, stype, stype, lcn, unk, unk);
TAILQ_FOREACH(fs, &b->fservices, link)