idnode_notify_changed(&bq->bq_id);
}
+/**
+ *
+ */
+
+void
+bouquet_change_comment ( bouquet_t *bq, const char *comment, int replace )
+{
+ if (!replace && (bq->bq_comment || bq->bq_comment[0]))
+ return;
+ free(bq->bq_comment);
+ bq->bq_comment = strdup(comment);
+ bq->bq_saveflag = 1;
+}
+
/* **************************************************************************
* Class definition
* **************************************************************************/
bouquet_class_rescan_notify0 ( bouquet_t *bq, const char *lang )
{
void mpegts_mux_bouquet_rescan ( const char *src, const char *extra );
+ void iptv_bouquet_trigger_by_uuid( const char *uuid );
+#if ENABLE_IPTV
+ if (bq->bq_src && strncmp(bq->bq_src, "iptv-network://", 15) == 0)
+ return iptv_bouquet_trigger_by_uuid(bq->bq_src + 15);
+#endif
mpegts_mux_bouquet_rescan(bq->bq_src, bq->bq_comment);
bq->bq_rescan = 0;
}
void bouquet_notify_channels(bouquet_t *bq);
void bouquet_add_service(bouquet_t *bq, service_t *s, uint64_t lcn, uint32_t tag);
void bouquet_completed(bouquet_t *bq, uint32_t seen);
+void bouquet_change_comment(bouquet_t *bq, const char *comment, int replace);
uint64_t bouquet_get_channel_number(bouquet_t *bq, service_t *t);
if (bq->bq_comment && bq->bq_comment[0])
return;
- free(bq->bq_comment);
mpegts_mux_nice_name(mm, comment, sizeof(comment));
- bq->bq_comment = strdup(comment);
- bq->bq_saveflag = 1;
+ bouquet_change_comment(bq, comment, 0);
}
#if ENABLE_MPEGTS_DVB
#ifndef __IPTV_H__
#define __IPTV_H__
+void iptv_bouquet_trigger_by_uuid(const char *uuid);
+
void iptv_init ( void );
void iptv_done ( void );
{
char buf[128];
snprintf(buf, sizeof(buf), "iptv-network://%s", idnode_uuid_as_sstr(&in->mn_id));
- return bouquet_find_by_source(in->in_url, buf, create);
+ return bouquet_find_by_source(in->mn_network_name, buf, create);
}
static void
uint32_t seen = 0;
if (bq == NULL)
return;
+ bouquet_change_comment(bq, in->in_url, 1);
LIST_FOREACH(mm, &in->mn_muxes, mm_network_link)
LIST_FOREACH(ms, &mm->mm_services, s_dvb_mux_link) {
bouquet_add_service(bq, (service_t *)ms, ((iptv_mux_t *)mm)->mm_iptv_chnum, 0);
gtimer_arm(&in->in_bouquet_timer, iptv_bouquet_update, in, timeout);
}
+void
+iptv_bouquet_trigger_by_uuid(const char *uuid)
+{
+ iptv_network_t *in = (iptv_network_t *)idnode_find(uuid, &iptv_network_class, NULL);
+ iptv_bouquet_trigger(in, 0);
+}
+
/* **************************************************************************
* IPTV input