if ( !channel->name || strcmp(channel->name, name) ) {
if (channel->name) free(channel->name);
channel->name = strdup(name);
- // NOTE: does not remap
+ // TODO: need to allow overriding of EIT created channels
if ( !channel->channel ) {
LIST_FOREACH(ch, &channel_unmapped, ch_eulink) {
if ( _epg_channel_cmp(channel, ch) ) {
}
}
}
+ // pass through
+ if ( channel->channel ) {
+ save |= channel_rename(channel->channel, name);
+ }
save |= 1;
}
return save;
}
+int epg_channel_set_icon ( epg_channel_t *channel, const char *icon )
+{
+ int save = 0;
+ if ( !channel | !icon ) return 0;
+ if ( !channel->icon || strcmp(channel->icon, icon) ) {
+ if ( channel->icon ) free(channel->icon);
+ channel->icon = strdup(icon);
+ // pass through
+ if ( channel->channel ) {
+ channel_set_icon(channel->channel, icon);
+ }
+ save = 1;
+ }
+ return save;
+}
+
int epg_channel_set_channel ( epg_channel_t *ec, channel_t *ch )
{
int save = 0;
return save;
}
-int epg_channel_set_icon ( epg_channel_t *channel, const char *icon )
-{
- int save = 0;
- if ( !channel | !icon ) return 0;
- if ( !channel->icon || strcmp(channel->icon, icon) ) {
- if ( channel->icon ) free(channel->icon);
- channel->icon = strdup(icon);
- save = 1;
- }
- return save;
-}
-
epg_broadcast_t *epg_channel_get_broadcast
( epg_channel_t *channel, time_t start, time_t stop, int create, int *save )
{
return "eit";
}
-static void _eit_episode_uri ( char *uri, const char *title, const char *summary )
+static void _eit_episode_uri
+ ( char *uri, const char *title, const char *summary )
{
-
}
// called from dvb_tables.c
const char *extitem, const char *extdesc,
const char *exttext ) {
int save = 0;
+ epg_channel_t *ec;
epg_broadcast_t *ebc;
epg_episode_t *ee;
const char *summary = NULL;
//if (epggrab_eit_disabled) return;
/* Channel */
- if (!ch->ch_epg_channel) {
- // TODO: create??
- return;
+ ec = ch->ch_epg_channel;
+ if (!ec) {
+ ec = epg_channel_find_by_uri(ch->ch_name, 1, &save);
+ if (ec)
+ epg_channel_set_channel(ec, ch);
}
+ if (!ec) return;
/* Find broadcast */
ebc = epg_channel_get_broadcast(ch->ch_epg_channel, start, stop, 1, &save);
/* Create/Replace episode */
if ( !ebc->episode ||
- !epg_episode_fuzzy_match(ebc->episode, uri, title, summary, description) ) {
+ !epg_episode_fuzzy_match(ebc->episode, uri, title,
+ summary, description) ) {
/* Create episode */
ee = epg_episode_find_by_uri(uri, 1, &save);