bouquet: another satellite position fix

This commit is contained in:
Jaroslav Kysela 2014-11-05 19:31:18 +01:00
parent b11b218d7b
commit 1af5f9f5d1
2 changed files with 8 additions and 4 deletions

View file

@ -515,9 +515,13 @@ dvb_freesat_add_service
{
char name[96], src[64];
if (!fr->bouquet) {
strcpy(name, "???");
if (idnode_is_instance(&bi->mm->mm_id, &dvb_mux_dvbs_class))
dvb_sat_position_to_str(dvb_sat_position(&((dvb_mux_t *)bi->mm)->lm_tuning),
name, sizeof(name));
snprintf(src, sizeof(src), "dvb-%s://dvbs,%s,%04X,%u",
bi->freesat ? "freesat" : "bskyb", name, bi->nbid, fr->regionid);
snprintf(name, sizeof(name), "%s: %s", bi->name, fr->name);
snprintf(src, sizeof(src), "dvb-%s://dvbs,28.2E,%04X,%u",
bi->freesat ? "freesat" : "bskyb", bi->nbid, fr->regionid);
fr->bouquet = bouquet_find_by_source(name, src, 1);
}
bouquet_add_service(fr->bouquet, (service_t *)s, lcn);

View file

@ -861,10 +861,10 @@ dvb_sat_position_to_str(int position, char *buf, size_t buflen)
if (!buf || !buflen)
return "";
snprintf(buf, buflen, "%d", position / 10);
snprintf(buf, buflen, "%d", abs(position / 10));
if (dec)
snprintf(buf + strlen(buf), buflen - strlen(buf), ".%d", abs(dec));
snprintf(buf + strlen(buf), buflen - strlen(buf), "%c", dec < 0 ? 'W' : 'E');
snprintf(buf + strlen(buf), buflen - strlen(buf), "%c", position < 0 ? 'W' : 'E');
return buf;
}