if(dllen > len)
break;
- if (!(t = dvb_service_find(tdmi, service_id, 0, NULL))) {
- len -= dllen;
- ptr += dllen;
- continue;
- }
-
stype = 0;
chname = NULL;
*crid = 0;
}
len -= dlen; ptr += dlen; dllen -= dlen;
}
+
+ if (!servicetype_is_tv(stype) &&
+ !servicetype_is_radio(stype))
+ continue;
+ if (!(t = dvb_service_find(tdmi, service_id, 0, NULL)))
+ continue;
+
if(t->s_servicetype != stype ||
t->s_scrambled != free_ca_mode) {
t->s_servicetype = stype;
*
*/
int
-service_is_tv(service_t *t)
+servicetype_is_tv(int servicetype)
{
return
- t->s_servicetype == ST_SDTV ||
- t->s_servicetype == ST_HDTV ||
- t->s_servicetype == ST_EX_HDTV ||
- t->s_servicetype == ST_EX_SDTV ||
- t->s_servicetype == ST_EP_HDTV ||
- t->s_servicetype == ST_ET_HDTV ||
- t->s_servicetype == ST_DN_SDTV ||
- t->s_servicetype == ST_DN_HDTV ||
- t->s_servicetype == ST_SK_SDTV ||
- t->s_servicetype == ST_NE_SDTV ||
- t->s_servicetype == ST_AC_SDTV ||
- t->s_servicetype == ST_AC_HDTV;
+ servicetype == ST_SDTV ||
+ servicetype == ST_HDTV ||
+ servicetype == ST_EX_HDTV ||
+ servicetype == ST_EX_SDTV ||
+ servicetype == ST_EP_HDTV ||
+ servicetype == ST_ET_HDTV ||
+ servicetype == ST_DN_SDTV ||
+ servicetype == ST_DN_HDTV ||
+ servicetype == ST_SK_SDTV ||
+ servicetype == ST_NE_SDTV ||
+ servicetype == ST_AC_SDTV ||
+ servicetype == ST_AC_HDTV;
+}
+int
+service_is_tv(service_t *t)
+{
+ return servicetype_is_tv(t->s_servicetype);
}
/**
*
*/
int
+servicetype_is_radio(int servicetype)
+{
+ return servicetype == ST_RADIO;
+}
+int
service_is_radio(service_t *t)
{
- return t->s_servicetype == ST_RADIO;
+ return servicetype_is_radio(t->s_servicetype);
}
/**
int service_is_radio(service_t *t);
+int servicetype_is_tv(int st);
+
+int servicetype_is_radio(int st);
+
void service_destroy(service_t *t);
void service_remove_subscriber(service_t *t, struct th_subscription *s,