From cff7beea59f2217d5dbdf59915922d90f3bbee63 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Wed, 11 Jul 2012 10:18:30 +0100 Subject: [PATCH] Revert earlier changes to EIT and OpenTV, now have a new API. --- src/epggrab/module/eit.c | 20 ++++++++------------ src/epggrab/module/opentv.c | 34 +++++++++++++++------------------- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/epggrab/module/eit.c b/src/epggrab/module/eit.c index a1e9c2ff..c2082de2 100644 --- a/src/epggrab/module/eit.c +++ b/src/epggrab/module/eit.c @@ -162,7 +162,6 @@ static int _eit_callback char summary[256]; char desc[5000]; htsmsg_t *extra; - int update; /* Invalid */ if(tableid < 0x4e || tableid > 0x6f || len < 11) @@ -362,9 +361,8 @@ static int _eit_callback len -= dlen; ptr += dlen; dllen -= dlen; } - /* Broadcast Metadata */ - update = epg_broadcast_set_grabber(ebc, (epggrab_module_t*)mod, &save); - if (update) { + /* Metadata */ + if ( save2 ) { save |= epg_broadcast_set_is_hd(ebc, hd); save |= epg_broadcast_set_is_widescreen(ebc, ws); save |= epg_broadcast_set_is_audio_desc(ebc, ad); @@ -378,7 +376,7 @@ static int _eit_callback char *uri; uri = epg_hash(title, summary, desc); if (uri) { - if ((ee = epg_episode_find_by_uri(uri, 1, &save2)) && update) + if ((ee = epg_episode_find_by_uri(uri, 1, &save2))) save |= epg_broadcast_set_episode(ebc, ee); free(uri); } @@ -387,16 +385,14 @@ static int _eit_callback /* Episode data */ if (ee) { - update = epg_episode_set_grabber(ee, (epggrab_module_t*)mod, &save); - if (update) - save |= epg_episode_set_is_bw(ee, bw); - if ( *title && (update || !ee->title) ) + save |= epg_episode_set_is_bw(ee, bw); + if ( !ee->title && *title ) save |= epg_episode_set_title(ee, title); - if ( *summary && (update || !ee->summary) ) + if ( !ee->summary && *summary ) save |= epg_episode_set_summary(ee, summary); - if ( *desc && (update || !ee->description) ) + if ( !ee->description && *desc ) save |= epg_episode_set_description(ee, desc); - if ( egl && (update || !LIST_FIRST(&ee->genre)) ) + if ( !LIST_FIRST(&ee->genre) && egl ) save |= epg_episode_set_genre(ee, egl); #if TODO_ADD_EXTRA if ( extra ) diff --git a/src/epggrab/module/opentv.c b/src/epggrab/module/opentv.c index 355d1844..18c77f7c 100644 --- a/src/epggrab/module/opentv.c +++ b/src/epggrab/module/opentv.c @@ -341,7 +341,7 @@ static int _opentv_parse_event_section ( opentv_module_t *mod, opentv_status_t *sta, uint8_t *buf, int len, int type ) { - int i, cid, update, save = 0; + int i, cid, save = 0; time_t mjd; char *uri; epggrab_channel_t *ec; @@ -381,11 +381,10 @@ static int _opentv_parse_event_section /* Find episode */ if (ebc) { - update = epg_broadcast_set_grabber(ebc, (epggrab_module_t*)mod, &save); - ee = NULL; + ee = NULL; /* Find episode */ - if ((update && (ev.type & OPENTV_SUMMARY)) || !ebc->episode) { + if (ev.type & OPENTV_SUMMARY || !ebc->episode) { uri = epg_hash(ev.title, ev.summary, ev.desc); if (uri) { ee = epg_episode_find_by_uri(uri, 1, &save); @@ -393,36 +392,33 @@ static int _opentv_parse_event_section } } - /* Copy existing title */ - if (!ev.title && ebc->episode && ebc->episode->title) - ev.title = strdup(ebc->episode->title); - /* Use existing */ - if (!ee) - ee = ebc->episode; - else if (update || !ebc->episode) - save |= epg_broadcast_set_episode(ebc, ee); + if (!ee) ee = ebc->episode; /* Update */ if (ee) { - update = epg_episode_set_grabber(ee, (epggrab_module_t*)mod, &save); - - if (ev.title && (update || !ee->title)) + if (!ev.title && ebc->episode) + save |= epg_episode_set_title(ee, ebc->episode->title); + else if (ev.title) save |= epg_episode_set_title(ee, ev.title); - if (ev.summary && (update || !ee->summary)) + if (ev.summary) save |= epg_episode_set_summary(ee, ev.summary); - if (ev.desc && (update || !ee->description)) + if (ev.desc) save |= epg_episode_set_description(ee, ev.desc); - if (ev.cat && (update || !LIST_FIRST(&ee->genre))) { + if (ev.cat) { epg_genre_list_t *egl = calloc(1, sizeof(epg_genre_list_t)); epg_genre_list_add_by_eit(egl, ev.cat); save |= epg_episode_set_genre(ee, egl); epg_genre_list_destroy(egl); } - if (ev.series && (update || !ee->season)) { + // Note: don't override the season (since the ID is channel specific + // it'll keep changing! + if (ev.series && !ee->season) { es = _opentv_find_season(mod, cid, ev.series); if (es) save |= epg_episode_set_season(ee, es); } + + save |= epg_broadcast_set_episode(ebc, ee); } }