Send some details about services attached to a channel over HTSP

This commit is contained in:
Andreas Öman 2010-02-03 19:19:25 +00:00
parent 3dff8cd0bb
commit ea294604e7
4 changed files with 22 additions and 4 deletions

View file

@ -673,6 +673,7 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
pthread_mutex_unlock(&t->tht_stream_mutex);
t->tht_config_save(t);
transport_refresh_channel(t);
}
}
break;

View file

@ -299,7 +299,7 @@ htsp_build_channel(channel_t *ch, const char *method)
htsmsg_t *out = htsmsg_create_map();
htsmsg_t *tags = htsmsg_create_list();
htsmsg_t *servicetypes = htsmsg_create_list();
htsmsg_t *services = htsmsg_create_list();
htsmsg_add_u32(out, "channelId", ch->ch_id);
htsmsg_add_u32(out, "channelNumber", ch->ch_number);
@ -318,10 +318,13 @@ htsp_build_channel(channel_t *ch, const char *method)
}
LIST_FOREACH(t, &ch->ch_transports, tht_ch_link) {
htsmsg_add_u32(servicetypes, NULL, t->tht_servicetype);
htsmsg_t *svcmsg = htsmsg_create_map();
htsmsg_add_str(svcmsg, "name", transport_nicename(t));
htsmsg_add_str(svcmsg, "type", transport_servicetype_txt(t));
htsmsg_add_msg(services, NULL, svcmsg);
}
htsmsg_add_msg(out, "servicetypes", servicetypes);
htsmsg_add_msg(out, "services", services);
htsmsg_add_msg(out, "tags", tags);
htsmsg_add_str(out, "method", method);
return out;

View file

@ -720,8 +720,9 @@ transport_map_channel(th_transport_t *t, channel_t *ch, int save)
lock_assert(&global_lock);
if(t->tht_ch != NULL) {
t->tht_ch = NULL;
LIST_REMOVE(t, tht_ch_link);
htsp_channel_update(t->tht_ch);
t->tht_ch = NULL;
}
@ -732,6 +733,7 @@ transport_map_channel(th_transport_t *t, channel_t *ch, int save)
t->tht_ch = ch;
LIST_INSERT_HEAD(&ch->ch_transports, t, tht_ch_link);
htsp_channel_update(t->tht_ch);
}
if(save)
@ -1045,3 +1047,13 @@ transport_tss2text(int flags)
return "No status";
}
/**
*
*/
void
transport_refresh_channel(th_transport_t *t)
{
if(t->tht_channel != NULL)
htsp_channel_update(t->tht_channel);
}

View file

@ -112,4 +112,6 @@ static inline int transport_tss_is_error(int flags)
return flags & TSS_ERRORS ? 1 : 0;
}
void transport_refresh_channel(th_transport_t *t);
#endif /* TRANSPORTS_H */