Changeset 18573


Ignore:
Timestamp:
11/14/12 22:51:06 (11 years ago)
Author:
nit
Message:

[titan] update epg logic

Location:
titan/titan
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/epg.h

    r18571 r18573  
    813813                }
    814814
     815                if(prev != NULL)
     816                {
     817                        //check if new epg overlapps prev epg
     818                        if(epgnode->starttime < prev->endtime)
     819                        {
     820                                struct epg *tmp = prev->prev;
     821                                addoldentryepg(chnode, prev, 1);
     822                                prev = tmp;
     823                        }
     824                        //check if new epg overlaps next epg
     825                        while(node != NULL && epgnode->endtime > node->starttime)
     826                        {
     827                                struct epg *tmp = node;
     828                                node = node->next;
     829                                addoldentryepg(chnode, tmp, 1);
     830                        }
     831                }
     832
    815833                if(prev == NULL)
    816834                        chnode->epg = epgnode;
     
    921939        }
    922940
    923         if(prev != NULL)
    924         {
    925                 if(newnode->starttime < prev->endtime - 60) //don't save epg with same starttime
    926                 {
    927                         free(newnode); newnode = NULL;
     941        if(prev != NULL)
     942        {
     943                //don't save epg with same starttime / endtime
     944                if(newnode->starttime == prev->starttime && newnode->endtime == prev->endtime)
     945                {
     946                        free(newnode); newnode == NULL;
    928947                        if(flag == 0) m_unlock(&status.epgmutex, 4);
    929948                        return NULL;
     949                }
     950                //check if new epg overlapps prev epg
     951                if(newnode->starttime < prev->endtime) //don't save epg with same starttime
     952                {
     953                        struct epg *tmp = prev->prev;
     954                        addoldentryepg(chnode, prev, 1);
     955                        prev = tmp;
     956                }
     957                //check if new epg overlaps next epg
     958                while(node != NULL && newnode->endtime > node->starttime)
     959                {
     960                        struct epg *tmp = node;
     961                        node = node->next;
     962                        addoldentryepg(chnode, tmp, 1);
    930963                }
    931964        }
  • titan/titan/oldentry.h

    r18571 r18573  
    1313                prev = node;
    1414                node = node->next;
    15                 if(node->del < time(NULL))
     15                if(prev->del < time(NULL))
    1616                        deloldentry(prev, 1);
    1717        }
     
    7272        while(node != NULL)
    7373        {
    74                 if(node->entry == entry)
     74                if(node == entry)
    7575                {
    7676                        if(node == oldentry)
Note: See TracChangeset for help on using the changeset viewer.