diff --git a/Makefile b/Makefile index 882dbe94..d1e6956c 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ include ${BUILDDIR}/config.mak PROG=${BUILDDIR}/tvheadend CFLAGS += -Wall -Werror -Wwrite-strings -Wno-deprecated-declarations -CFLAGS += -Wmissing-prototypes +CFLAGS += -Wmissing-prototypes -fms-extensions LDFLAGS += -lrt -ldl BUNDLES += docs/html docs/docresources src/webui/static @@ -77,8 +77,6 @@ SRCS += src/epggrab/pyepg.c\ src/epggrab/xmltv.c\ src/epggrab/eit.c - - SRCS += src/plumbing/tsfix.c \ src/plumbing/globalheaders.c \ diff --git a/src/dvr/dvr_autorec.c b/src/dvr/dvr_autorec.c index 0176a092..6f755517 100644 --- a/src/dvr/dvr_autorec.c +++ b/src/dvr/dvr_autorec.c @@ -198,9 +198,9 @@ autorec_entry_destroy(dvr_autorec_entry_t *dae) LIST_REMOVE(dae, dae_channel_tag_link); if(dae->dae_brand) - dae->dae_brand->_.putref((epg_object_t*)dae->dae_brand); + dae->dae_brand->putref((epg_object_t*)dae->dae_brand); if(dae->dae_season) - dae->dae_season->_.putref((epg_object_t*)dae->dae_season); + dae->dae_season->putref((epg_object_t*)dae->dae_season); TAILQ_REMOVE(&autorec_entries, dae, dae_link); @@ -275,9 +275,9 @@ autorec_record_build(dvr_autorec_entry_t *dae) htsmsg_add_str(e, "pri", dvr_val2pri(dae->dae_pri)); if (dae->dae_brand) - htsmsg_add_str(e, "brand", dae->dae_brand->_.uri); + htsmsg_add_str(e, "brand", dae->dae_brand->uri); if (dae->dae_season) - htsmsg_add_str(e, "season", dae->dae_season->_.uri); + htsmsg_add_str(e, "season", dae->dae_season->uri); return e; } @@ -402,12 +402,12 @@ autorec_record_update(void *opaque, const char *id, htsmsg_t *values, if((s = htsmsg_get_str(values, "brand")) != NULL) { dae->dae_brand = epg_brand_find_by_uri(s, 1, &save); if (dae->dae_brand) - dae->dae_brand->_.getref((epg_object_t*)dae->dae_brand); + dae->dae_brand->getref((epg_object_t*)dae->dae_brand); } if((s = htsmsg_get_str(values, "season")) != NULL) { dae->dae_season = epg_season_find_by_uri(s, 1, &save); if (dae->dae_season) - dae->dae_season->_.getref((epg_object_t*)dae->dae_season); + dae->dae_season->getref((epg_object_t*)dae->dae_season); } dvr_autorec_changed(dae); @@ -494,11 +494,11 @@ _dvr_autorec_add(const char *config_name, if(brand) { dae->dae_brand = brand; - brand->_.getref((epg_object_t*)brand); + brand->getref((epg_object_t*)brand); } if(season) { dae->dae_season = season; - season->_.getref((epg_object_t*)season); + season->getref((epg_object_t*)season); } m = autorec_record_build(dae); @@ -588,7 +588,7 @@ dvr_autorec_changed(dvr_autorec_entry_t *dae) dvr_autorec_purge_spawns(dae); RB_FOREACH(ch, &channel_name_tree, ch_name_link) { - RB_FOREACH(e, &ch->ch_epg_schedule, glink) { + RB_FOREACH(e, &ch->ch_epg_schedule, sched_link) { if(autorec_cmp(dae, e)) dvr_entry_create_by_autorec(e, dae); } diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index 754c1565..569940bf 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -290,7 +290,7 @@ static dvr_entry_t *_dvr_entry_create ( de->de_desc = description ? strdup(description) : NULL; de->de_content_type = content_type; de->de_bcast = e; - if (e) e->_.getref((epg_object_t*)e); + if (e) e->getref((epg_object_t*)e); dvr_entry_link(de); @@ -406,7 +406,7 @@ dvr_entry_dec_ref(dvr_entry_t *de) free(de->de_title); free(de->de_ititle); free(de->de_desc); - if(de->de_bcast) de->de_bcast->_.putref((epg_object_t*)de->de_bcast); + if(de->de_bcast) de->de_bcast->putref((epg_object_t*)de->de_bcast); free(de); } @@ -595,7 +595,7 @@ dvr_entry_save(dvr_entry_t *de) htsmsg_add_u32(m, "contenttype", de->de_content_type); if(de->de_bcast) - htsmsg_add_u32(m, "broadcast", de->de_bcast->_.id); + htsmsg_add_u32(m, "broadcast", de->de_bcast->id); hts_settings_save(m, "dvr/log/%d", de->de_id); htsmsg_destroy(m); @@ -653,9 +653,9 @@ static dvr_entry_t *_dvr_entry_update save = 1; } if (de->de_bcast != e) { - de->de_bcast->_.putref((epg_object_t*)de->de_bcast); + de->de_bcast->putref((epg_object_t*)de->de_bcast); de->de_bcast = e; - e->_.getref((epg_object_t*)e); + e->getref((epg_object_t*)e); save = 1; } } diff --git a/src/epg.c b/src/epg.c index ca598453..badf017e 100644 --- a/src/epg.c +++ b/src/epg.c @@ -134,23 +134,23 @@ void epg_save ( void ) memset(&stats, 0, sizeof(stats)); if ( _epg_write_sect(fd, "brands") ) return; - RB_FOREACH(eo, &epg_brands, glink) { + RB_FOREACH(eo, &epg_brands, uri_link) { if (_epg_write(fd, epg_brand_serialize((epg_brand_t*)eo))) return; stats.brands.total++; } if ( _epg_write_sect(fd, "seasons") ) return; - RB_FOREACH(eo, &epg_seasons, glink) { + RB_FOREACH(eo, &epg_seasons, uri_link) { if (_epg_write(fd, epg_season_serialize((epg_season_t*)eo))) return; stats.seasons.total++; } if ( _epg_write_sect(fd, "episodes") ) return; - RB_FOREACH(eo, &epg_episodes, glink) { + RB_FOREACH(eo, &epg_episodes, uri_link) { if (_epg_write(fd, epg_episode_serialize((epg_episode_t*)eo))) return; stats.episodes.total++; } if ( _epg_write_sect(fd, "broadcasts") ) return; RB_FOREACH(ch, &channel_name_tree, ch_name_link) { - RB_FOREACH(ebc, &ch->ch_epg_schedule, glink) { + RB_FOREACH(ebc, &ch->ch_epg_schedule, sched_link) { if (_epg_write(fd, epg_broadcast_serialize(ebc))) return; stats.broadcasts.total++; } @@ -272,7 +272,7 @@ void epg_updated ( void ) while ((eo = LIST_FIRST(&epg_object_unref))) { tvhlog(LOG_DEBUG, "epg", "unref'd object %lu (%s) created during update", eo->id, eo->uri); - LIST_REMOVE(eo, ulink); + LIST_REMOVE(eo, un_link); eo->destroy(eo); } // Note: we do things this way around since unref'd objects are not likely @@ -282,7 +282,7 @@ void epg_updated ( void ) /* Update updated */ while ((eo = LIST_FIRST(&epg_object_updated))) { eo->updated(eo); - LIST_REMOVE(eo, uplink); + LIST_REMOVE(eo, up_link); eo->_updated = 0; } } @@ -296,14 +296,14 @@ static void _epg_object_destroy { assert(eo->refcount == 0); if (eo->uri) free(eo->uri); - if (tree) RB_REMOVE(tree, eo, glink); - if (eo->_updated) LIST_REMOVE(eo, uplink); - LIST_REMOVE(eo, hlink); + if (tree) RB_REMOVE(tree, eo, uri_link); + if (eo->_updated) LIST_REMOVE(eo, up_link); + LIST_REMOVE(eo, id_link); } static void _epg_object_getref ( epg_object_t *eo ) { - if (eo->refcount == 0) LIST_REMOVE(eo, ulink); + if (eo->refcount == 0) LIST_REMOVE(eo, un_link); eo->refcount++; } @@ -318,7 +318,7 @@ static void _epg_object_set_updated ( epg_object_t *eo ) { if (!eo->_updated) { eo->_updated = 1; - LIST_INSERT_HEAD(&epg_object_updated, eo, uplink); + LIST_INSERT_HEAD(&epg_object_updated, eo, up_link); } } @@ -329,8 +329,8 @@ static void _epg_object_create ( epg_object_t *eo ) if (!eo->getref) eo->getref = _epg_object_getref; if (!eo->putref) eo->putref = _epg_object_putref; _epg_object_set_updated(eo); - LIST_INSERT_HEAD(&epg_object_unref, eo, ulink); - LIST_INSERT_HEAD(&epg_objects[eo->id & EPG_HASH_MASK], eo, hlink); + LIST_INSERT_HEAD(&epg_object_unref, eo, un_link); + LIST_INSERT_HEAD(&epg_objects[eo->id & EPG_HASH_MASK], eo, id_link); } static epg_object_t *_epg_object_find_by_uri @@ -346,11 +346,11 @@ static epg_object_t *_epg_object_find_by_uri /* Find only */ if ( !create ) { - eo = RB_FIND(tree, *skel, glink, _uri_cmp); + eo = RB_FIND(tree, *skel, uri_link, _uri_cmp); /* Find/create */ } else { - eo = RB_INSERT_SORTED(tree, *skel, glink, _uri_cmp); + eo = RB_INSERT_SORTED(tree, *skel, uri_link, _uri_cmp); if ( !eo ) { *save = 1; eo = *skel; @@ -365,7 +365,7 @@ static epg_object_t *_epg_object_find_by_uri static epg_object_t *_epg_object_find_by_id ( uint64_t id ) { epg_object_t *eo; - LIST_FOREACH(eo, &epg_objects[id & EPG_HASH_MASK], hlink) { + LIST_FOREACH(eo, &epg_objects[id & EPG_HASH_MASK], id_link) { if (eo->id == id) return eo; } return NULL; @@ -517,7 +517,7 @@ static void _epg_brand_rem_episode htsmsg_t *epg_brand_serialize ( epg_brand_t *brand ) { htsmsg_t *m; - if ( !brand || !brand->_.uri ) return NULL; + if ( !brand || !brand->uri ) return NULL; if ( !(m = _epg_object_serialize((epg_object_t*)brand)) ) return NULL; if (brand->title) htsmsg_add_str(m, "title", brand->title); @@ -555,7 +555,7 @@ htsmsg_t *epg_brand_list ( void ) htsmsg_t *a, *e; a = htsmsg_create_list(); for ( i = 0; i < EPG_HASH_WIDTH; i++ ) { - LIST_FOREACH(eo, &epg_objects[i], hlink) { + LIST_FOREACH(eo, &epg_objects[i], id_link) { if (eo->type == EPG_BRAND) { e = epg_brand_serialize((epg_brand_t*)eo); htsmsg_add_msg(a, NULL, e); @@ -579,7 +579,7 @@ static void _epg_season_destroy ( epg_object_t *eo ) _epg_object_destroy(eo, &epg_seasons); if (es->brand) { _epg_brand_rem_season(es->brand, es); - es->brand->_.putref((epg_object_t*)es->brand); + es->brand->putref((epg_object_t*)es->brand); } if (es->summary) free(es->summary); if (es->image) free(es->image); @@ -658,11 +658,11 @@ int epg_season_set_brand ( epg_season_t *season, epg_brand_t *brand, int u ) if ( season->brand != brand ) { if ( season->brand ) { _epg_brand_rem_season(season->brand, season); - season->brand->_.putref((epg_object_t*)season->brand); + season->brand->putref((epg_object_t*)season->brand); } season->brand = brand; _epg_brand_add_season(brand, season); - brand->_.getref((epg_object_t*)brand); + brand->getref((epg_object_t*)brand); _epg_object_set_updated((epg_object_t*)season); save = 1; } @@ -686,7 +686,7 @@ static void _epg_season_rem_episode htsmsg_t *epg_season_serialize ( epg_season_t *season ) { htsmsg_t *m; - if (!season || !season->_.uri) return NULL; + if (!season || !season->uri) return NULL; if (!(m = _epg_object_serialize((epg_object_t*)season))) return NULL; if (season->summary) htsmsg_add_str(m, "summary", season->summary); @@ -695,7 +695,7 @@ htsmsg_t *epg_season_serialize ( epg_season_t *season ) if (season->episode_count) htsmsg_add_u32(m, "episode-count", season->episode_count); if (season->brand) - htsmsg_add_str(m, "brand", season->brand->_.uri); + htsmsg_add_str(m, "brand", season->brand->uri); return m; } @@ -738,11 +738,11 @@ static void _epg_episode_destroy ( epg_object_t *eo ) _epg_object_destroy(eo, &epg_episodes); if (ee->brand) { _epg_brand_rem_episode(ee->brand, ee); - ee->brand->_.putref((epg_object_t*)ee->brand); + ee->brand->putref((epg_object_t*)ee->brand); } if (ee->season) { _epg_season_rem_episode(ee->season, ee); - ee->season->_.putref((epg_object_t*)ee->season); + ee->season->putref((epg_object_t*)ee->season); } if (ee->title) free(ee->title); if (ee->subtitle) free(ee->subtitle); @@ -844,11 +844,11 @@ int epg_episode_set_brand ( epg_episode_t *episode, epg_brand_t *brand ) if ( episode->brand != brand ) { if ( episode->brand ) { _epg_brand_rem_episode(episode->brand, episode); - episode->brand->_.putref((epg_object_t*)episode->brand); + episode->brand->putref((epg_object_t*)episode->brand); } episode->brand = brand; _epg_brand_add_episode(brand, episode); - brand->_.getref((epg_object_t*)brand); + brand->getref((epg_object_t*)brand); _epg_object_set_updated((epg_object_t*)episode); save = 1; } @@ -862,11 +862,11 @@ int epg_episode_set_season ( epg_episode_t *episode, epg_season_t *season ) if ( episode->season != season ) { if ( episode->season ) { _epg_season_rem_episode(episode->season, episode); - episode->season->_.putref((epg_object_t*)episode->season); + episode->season->putref((epg_object_t*)episode->season); } episode->season = season; _epg_season_add_episode(season, episode); - season->_.getref((epg_object_t*)season); + season->getref((epg_object_t*)season); if ( season->brand ) save |= epg_episode_set_brand(episode, season->brand); _epg_object_set_updated((epg_object_t*)episode); save = 1; @@ -920,14 +920,14 @@ int epg_episode_set_genre_str ( epg_episode_t *ee, const char **gstr ) static void _epg_episode_add_broadcast ( epg_episode_t *episode, epg_broadcast_t *broadcast ) { - LIST_INSERT_SORTED(&episode->broadcasts, broadcast, elink, _ebc_start_cmp); + LIST_INSERT_SORTED(&episode->broadcasts, broadcast, ep_link, _ebc_start_cmp); _epg_object_set_updated((epg_object_t*)episode); } static void _epg_episode_rem_broadcast ( epg_episode_t *episode, epg_broadcast_t *broadcast ) { - LIST_REMOVE(broadcast, elink); + LIST_REMOVE(broadcast, ep_link); _epg_object_set_updated((epg_object_t*)episode); } @@ -962,7 +962,7 @@ int epg_episode_fuzzy_match // TODO: this is pretty noddy and likely to fail! // hence the reason I don't recommend mixing external grabbers and EIT if ( !episode ) return 0; - if ( uri && episode->_.uri && !strcmp(episode->_.uri, uri) ) return 1; + if ( uri && episode->uri && !strcmp(episode->uri, uri) ) return 1; if ( title && episode->title && (strstr(title, episode->title) || strstr(episode->title, title)) ) return 1; // TODO: could we do fuzzy string matching on the description/summary // : there are a few algorithms that might work, but some early testing @@ -973,9 +973,9 @@ int epg_episode_fuzzy_match htsmsg_t *epg_episode_serialize ( epg_episode_t *episode ) { htsmsg_t *m; - if (!episode || !episode->_.uri) return NULL; + if (!episode || !episode->uri) return NULL; if (!(m = _epg_object_serialize((epg_object_t*)episode))) return NULL; - htsmsg_add_str(m, "uri", episode->_.uri); + htsmsg_add_str(m, "uri", episode->uri); if (episode->title) htsmsg_add_str(m, "title", episode->title); if (episode->subtitle) @@ -991,9 +991,9 @@ htsmsg_t *epg_episode_serialize ( epg_episode_t *episode ) htsmsg_add_u32(m, "part-count", episode->part_count); } if (episode->brand) - htsmsg_add_str(m, "brand", episode->brand->_.uri); + htsmsg_add_str(m, "brand", episode->brand->uri); if (episode->season) - htsmsg_add_str(m, "season", episode->season->_.uri); + htsmsg_add_str(m, "season", episode->season->uri); return m; } @@ -1052,10 +1052,10 @@ static void _epg_channel_timer_callback ( void *p ) /* Expire */ if ( ebc->stop <= dispatch_clock ) { - RB_REMOVE(&ch->ch_epg_schedule, ebc, glink); + RB_REMOVE(&ch->ch_epg_schedule, ebc, sched_link); tvhlog(LOG_DEBUG, "epg", "expire event %lu from %s", - ebc->_.id, ch->ch_name); - ebc->_.putref((epg_object_t*)ebc); + ebc->id, ch->ch_name); + ebc->putref((epg_object_t*)ebc); continue; // skip to next /* No now */ @@ -1066,14 +1066,14 @@ static void _epg_channel_timer_callback ( void *p ) /* Now/Next */ } else { ch->ch_epg_now = ebc; - ch->ch_epg_next = RB_NEXT(ebc, glink); + ch->ch_epg_next = RB_NEXT(ebc, sched_link); next = ebc->stop; } break; } tvhlog(LOG_DEBUG, "epg", "now/next %lu/%lu set on %s", - ch->ch_epg_now ? ch->ch_epg_now->_.id : 0, - ch->ch_epg_next ? ch->ch_epg_next->_.id : 0, + ch->ch_epg_now ? ch->ch_epg_now->id : 0, + ch->ch_epg_next ? ch->ch_epg_next->id : 0, ch->ch_name); /* re-arm */ @@ -1095,8 +1095,8 @@ static void _epg_channel_rem_broadcast ( channel_t *ch, epg_broadcast_t *ebc, epg_broadcast_t *new ) { if (new) dvr_event_replaced(ebc, new); - RB_REMOVE(&ch->ch_epg_schedule, ebc, glink); - ebc->_.putref((epg_object_t*)ebc); + RB_REMOVE(&ch->ch_epg_schedule, ebc, sched_link); + ebc->putref((epg_object_t*)ebc); } static epg_broadcast_t *_epg_channel_add_broadcast @@ -1111,11 +1111,11 @@ static epg_broadcast_t *_epg_channel_add_broadcast /* Find (only) */ if ( !create ) { - ret = RB_FIND(&ch->ch_epg_schedule, *bcast, glink, _ebc_start_cmp); + ret = RB_FIND(&ch->ch_epg_schedule, *bcast, sched_link, _ebc_start_cmp); /* Find/Create */ } else { - ret = RB_INSERT_SORTED(&ch->ch_epg_schedule, *bcast, glink, _ebc_start_cmp); + ret = RB_INSERT_SORTED(&ch->ch_epg_schedule, *bcast, sched_link, _ebc_start_cmp); if (!ret) { save2 = 1; ret = *bcast; @@ -1133,18 +1133,18 @@ static epg_broadcast_t *_epg_channel_add_broadcast // the rest of this code will happen infrequently (hopefully) /* Grab ref */ - ret->_.getref((epg_object_t*)ret); + ret->getref((epg_object_t*)ret); *save |= 1; /* Remove overlapping (before) */ - while ( (ebc = RB_PREV(ret, glink)) != NULL ) { + while ( (ebc = RB_PREV(ret, sched_link)) != NULL ) { if ( ebc->stop <= ret->start ) break; if ( ch->ch_epg_now == ebc ) ch->ch_epg_now = NULL; _epg_channel_rem_broadcast(ch, ebc, ret); } /* Remove overlapping (after) */ - while ( (ebc = RB_NEXT(ret, glink)) != NULL ) { + while ( (ebc = RB_NEXT(ret, sched_link)) != NULL ) { if ( ebc->start >= ret->stop ) break; _epg_channel_rem_broadcast(ch, ebc, ret); } @@ -1153,7 +1153,7 @@ static epg_broadcast_t *_epg_channel_add_broadcast if ( RB_FIRST(&ch->ch_epg_schedule) == ret ) { timer = 1; } else if ( ch->ch_epg_now && - RB_NEXT(ch->ch_epg_now, glink) == ret ) { + RB_NEXT(ch->ch_epg_now, sched_link) == ret ) { timer = 1; } @@ -1181,7 +1181,7 @@ static void _epg_broadcast_destroy ( epg_object_t *eo ) _epg_object_destroy(eo, NULL); if (ebc->episode) { _epg_episode_rem_broadcast(ebc->episode, ebc); - ebc->episode->_.putref((epg_object_t*)ebc->episode); + ebc->episode->putref((epg_object_t*)ebc->episode); } free(ebc); } @@ -1197,9 +1197,9 @@ static epg_broadcast_t **_epg_broadcast_skel ( void ) static epg_broadcast_t *skel = NULL; if ( !skel ) { skel = calloc(1, sizeof(epg_broadcast_t)); - skel->_.type = EPG_BROADCAST; - skel->_.destroy = _epg_broadcast_destroy; - skel->_.updated = _epg_broadcast_updated; + skel->type = EPG_BROADCAST; + skel->destroy = _epg_broadcast_destroy; + skel->updated = _epg_broadcast_updated; } return &skel; } @@ -1234,11 +1234,11 @@ int epg_broadcast_set_episode if ( broadcast->episode != episode ) { if ( broadcast->episode ) { _epg_episode_rem_broadcast(broadcast->episode, broadcast); - broadcast->episode->_.putref((epg_object_t*)broadcast->episode); + broadcast->episode->putref((epg_object_t*)broadcast->episode); } _epg_episode_add_broadcast(episode, broadcast); broadcast->episode = episode; - episode->_.getref((epg_object_t*)episode); + episode->getref((epg_object_t*)episode); _epg_object_set_updated((epg_object_t*)broadcast); save = 1; } @@ -1248,18 +1248,18 @@ int epg_broadcast_set_episode epg_broadcast_t *epg_broadcast_get_next ( epg_broadcast_t *broadcast ) { if ( !broadcast ) return NULL; - return RB_NEXT(broadcast, glink); + return RB_NEXT(broadcast, sched_link); } htsmsg_t *epg_broadcast_serialize ( epg_broadcast_t *broadcast ) { htsmsg_t *m; if (!broadcast) return NULL; - if (!broadcast->episode || !broadcast->episode->_.uri) return NULL; + if (!broadcast->episode || !broadcast->episode->uri) return NULL; if (!(m = _epg_object_serialize((epg_object_t*)broadcast))) return NULL; htsmsg_add_u32(m, "start", broadcast->start); htsmsg_add_u32(m, "stop", broadcast->stop); - htsmsg_add_str(m, "episode", broadcast->episode->_.uri); + htsmsg_add_str(m, "episode", broadcast->episode->uri); if (broadcast->channel) htsmsg_add_u32(m, "channel", broadcast->channel->ch_id); @@ -1535,7 +1535,7 @@ static void _eqr_add_channel regex_t *preg, time_t start ) { epg_broadcast_t *ebc; - RB_FOREACH(ebc, &ch->ch_epg_schedule, glink) { + RB_FOREACH(ebc, &ch->ch_epg_schedule, sched_link) { if ( ebc->episode ) _eqr_add(eqr, ebc, genre, preg, start); } } diff --git a/src/epg.h b/src/epg.h index 3bcfdb53..d617436a 100644 --- a/src/epg.h +++ b/src/epg.h @@ -71,10 +71,10 @@ typedef enum epg_object_type /* Object */ struct epg_object { - RB_ENTRY(epg_object) glink; ///< Global URI link - LIST_ENTRY(epg_object) hlink; ///< Global (ID) link - LIST_ENTRY(epg_object) ulink; ///< Global unref'd link - LIST_ENTRY(epg_object) uplink; ///< Global updated link + RB_ENTRY(epg_object) uri_link; ///< Global URI link + LIST_ENTRY(epg_object) id_link; ///< Global (ID) link + LIST_ENTRY(epg_object) un_link; ///< Global unref'd link + LIST_ENTRY(epg_object) up_link; ///< Global updated link epg_object_type_t type; ///< Specific object type uint64_t id; ///< Internal ID @@ -98,7 +98,7 @@ struct epg_object /* Object */ struct epg_brand { - epg_object_t _; ///< Base object + epg_object_t; ///< Base object char *title; ///< Brand name char *summary; ///< Brand summary @@ -138,7 +138,7 @@ htsmsg_t *epg_brand_list ( void ); /* Object */ struct epg_season { - epg_object_t _; ///< Parent object + epg_object_t; ///< Parent object char *summary; ///< Season summary uint16_t number; ///< The season number @@ -179,7 +179,7 @@ epg_season_t *epg_season_deserialize ( htsmsg_t *m, int create, int *save ); /* Object */ struct epg_episode { - epg_object_t _; ///< Parent object + epg_object_t; ///< Parent object char *title; ///< Title char *subtitle; ///< Sub-title @@ -264,7 +264,7 @@ epg_episode_t *epg_episode_deserialize ( htsmsg_t *m, int create, int *save ); /* Object */ struct epg_broadcast { - epg_object_t _; ///< Parent object + epg_object_t; ///< Parent object time_t start; ///< Start time time_t stop; ///< End time @@ -284,8 +284,8 @@ struct epg_broadcast uint8_t is_new; ///< New series / file premiere uint8_t is_repeat; ///< Repeat screening - RB_ENTRY(epg_broadcast) glink; ///< Schedule link - LIST_ENTRY(epg_broadcast) elink; ///< Episode link + RB_ENTRY(epg_broadcast) sched_link; ///< Schedule link + LIST_ENTRY(epg_broadcast) ep_link; ///< Episode link epg_episode_t *episode; ///< Episode shown struct channel *channel; ///< Channel being broadcast on diff --git a/src/htsp.c b/src/htsp.c index 0b0710b4..39d8d28f 100644 --- a/src/htsp.c +++ b/src/htsp.c @@ -312,8 +312,8 @@ htsp_build_channel(channel_t *ch, const char *method) now = ch->ch_epg_now; next = ch->ch_epg_next; - htsmsg_add_u32(out, "eventId", now ? now->_.id : 0); - htsmsg_add_u32(out, "nextEventId", next ? next->_.id : 0); + htsmsg_add_u32(out, "eventId", now ? now->id : 0); + htsmsg_add_u32(out, "nextEventId", next ? next->id : 0); LIST_FOREACH(ctm, &ch->ch_ctms, ctm_channel_link) { ct = ctm->ctm_tag; @@ -735,7 +735,7 @@ htsp_method_epgQuery(htsp_connection_t *htsp, htsmsg_t *in) if( c ) { eventIds = htsmsg_create_list(); for(i = 0; i < c; ++i) { - htsmsg_add_u32(eventIds, NULL, eqr.eqr_array[i]->_.id); + htsmsg_add_u32(eventIds, NULL, eqr.eqr_array[i]->id); } htsmsg_add_msg(out, "eventIds", eventIds); } @@ -757,7 +757,7 @@ htsp_build_event(epg_broadcast_t *e) out = htsmsg_create_map(); - htsmsg_add_u32(out, "eventId", e->_.id); + htsmsg_add_u32(out, "eventId", e->id); htsmsg_add_u32(out, "channelId", e->channel->ch_id); htsmsg_add_u32(out, "start", e->start); htsmsg_add_u32(out, "stop", e->stop); @@ -778,7 +778,7 @@ htsp_build_event(epg_broadcast_t *e) n = epg_broadcast_get_next(e); if(n != NULL) - htsmsg_add_u32(out, "nextEventId", n->_.id); + htsmsg_add_u32(out, "nextEventId", n->id); return out; } @@ -1419,8 +1419,8 @@ htsp_channel_update_current(channel_t *ch) now = ch->ch_epg_now; next = ch->ch_epg_next; - htsmsg_add_u32(m, "eventId", now ? now->_.id : 0); - htsmsg_add_u32(m, "nextEventId", next ? next->_.id : 0); + htsmsg_add_u32(m, "eventId", now ? now->id : 0); + htsmsg_add_u32(m, "nextEventId", next ? next->id : 0); htsp_async_send(m); } diff --git a/src/webui/extjs.c b/src/webui/extjs.c index 2054f32d..ee86d89c 100644 --- a/src/webui/extjs.c +++ b/src/webui/extjs.c @@ -713,7 +713,7 @@ extjs_epg(http_connection_t *hc, const char *remain, void *opaque) if (epg_episode_number_format(ee, buf, 100, NULL, "Season %d", ".", "Episode %d", "/%d")) htsmsg_add_str(m, "episode", buf); - htsmsg_add_u32(m, "id", e->_.id); + htsmsg_add_u32(m, "id", e->id); htsmsg_add_u32(m, "start", e->start); htsmsg_add_u32(m, "end", e->stop); htsmsg_add_u32(m, "duration", e->stop - e->start); @@ -767,13 +767,13 @@ extjs_epgrelated(http_connection_t *hc, const char *remain, void *opaque) /* Alternative broadcasts */ if (!strcmp(type, "alternative")) { - LIST_FOREACH(ebc, &ee->broadcasts, elink) { + LIST_FOREACH(ebc, &ee->broadcasts, ep_link) { ch = ebc->channel; if ( !ch ) continue; // skip something not viewable if ( ebc == e ) continue; // skip self count++; m = htsmsg_create_map(); - htsmsg_add_u32(m, "id", ebc->_.id); + htsmsg_add_u32(m, "id", ebc->id); if ( ch->ch_name ) htsmsg_add_str(m, "channel", ch->ch_name); if ( ch->ch_icon ) htsmsg_add_str(m, "chicon", ch->ch_icon); htsmsg_add_u32(m, "start", ebc->start); @@ -788,7 +788,7 @@ extjs_epgrelated(http_connection_t *hc, const char *remain, void *opaque) if (!ee2->title) continue; count++; m = htsmsg_create_map(); - htsmsg_add_str(m, "uri", ee2->_.uri); + htsmsg_add_str(m, "uri", ee2->uri); htsmsg_add_str(m, "title", ee2->title); if (ee2->subtitle) htsmsg_add_str(m, "subtitle", ee2->subtitle); if (epg_episode_number_format(ee2, buf, 100, NULL, "Season %d", ".", "Episode %d", "/%d")) @@ -801,7 +801,7 @@ extjs_epgrelated(http_connection_t *hc, const char *remain, void *opaque) if (!ee2->title) continue; count++; m = htsmsg_create_map(); - htsmsg_add_str(m, "uri", ee2->_.uri); + htsmsg_add_str(m, "uri", ee2->uri); htsmsg_add_str(m, "title", ee2->title); if (ee2->subtitle) htsmsg_add_str(m, "subtitle", ee2->subtitle); if (epg_episode_number_format(ee2, buf, 100, NULL, "Season %d", ".", "Episode %d", "/%d")) diff --git a/src/webui/simpleui.c b/src/webui/simpleui.c index 9d19f08e..58f2fa61 100644 --- a/src/webui/simpleui.c +++ b/src/webui/simpleui.c @@ -126,7 +126,7 @@ page_simple(http_connection_t *hc, htsbuf_qprintf(hq, "" "%02d:%02d-%02d:%02d %s%s%s
", - e->_.id, + e->id, a.tm_hour, a.tm_min, b.tm_hour, b.tm_min, e->episode->title, rstatus ? " " : "", rstatus ?: ""); @@ -236,7 +236,7 @@ page_einfo(http_connection_t *hc, const char *remain, void *opaque) htsbuf_qprintf(hq, "Recording status: %s
", rstatus); htsbuf_qprintf(hq, "
", - e->_.id); + e->id); switch(dvr_status) { case DVR_SCHEDULED: diff --git a/src/webui/webui.c b/src/webui/webui.c index 7d44abac..5935b0e7 100644 --- a/src/webui/webui.c +++ b/src/webui/webui.c @@ -183,8 +183,8 @@ http_stream_run(http_connection_t *hc, streaming_queue_t *sq, th_subscription_t epg_broadcast_t *e = NULL; if(s->ths_channel) e = s->ths_channel->ch_epg_now; - if(e && event_id != e->_.id) { - event_id = e->_.id; + if(e && event_id != e->id) { + event_id = e->id; run = !mk_mux_append_meta(mkm, e); } break;