diff -ur VideoteXt-0.6/cct.h VideoteXt-0.6a/cct.h --- VideoteXt-0.6/cct.h Wed Feb 14 00:38:13 1996 +++ VideoteXt-0.6a/cct.h Fri Jul 26 23:31:31 1996 @@ -24,6 +24,7 @@ byte_t cct_mkparity(byte_t val); int cct_open(int major, int minor, vtx_info_t *prg_info); void cct_close(void); +int cct_tune(int); int cct_clearpgbuf(int pgbuf); int cct_checkpage(int pgbuf); int cct_stop_dau(int pgbuf); diff -ur VideoteXt-0.6/examples/vtx-hotlist VideoteXt-0.6a/examples/vtx-hotlist --- VideoteXt-0.6/examples/vtx-hotlist Mon Aug 21 02:31:05 1995 +++ VideoteXt-0.6a/examples/vtx-hotlist Fri Jul 26 23:13:31 1996 @@ -61,6 +61,16 @@ top_disable=false index_page=100 auto_search_pages=normal +frequency=567250 + +station CH-TXT/F +page_timeout=60 +top_interleave=25 +page_lookahead=1 +top_disable=false +index_page=100 +auto_search_pages=normal +frequency=543250 station RTL-Text page_timeout=60 @@ -133,6 +143,7 @@ top_disable=false index_page=100 auto_search_pages=normal +frequency=591250 station TV5--TXT page_timeout=60 diff -ur VideoteXt-0.6/hotlist.c VideoteXt-0.6a/hotlist.c --- VideoteXt-0.6/hotlist.c Wed Feb 21 18:35:17 1996 +++ VideoteXt-0.6a/hotlist.c Fri Jul 26 23:24:27 1996 @@ -30,7 +30,7 @@ typedef struct { char name[STATIONNAME_MAXLEN + 1], *inc_list, *ex_list; - int count, *pages, page_timeout, top_interleave, lookahead, index_page, expire; + int count, *pages, page_timeout, top_interleave, lookahead, index_page, expire, freq; tt_pageclass_t search_level; unsigned top_disable : 1; unsigned readspool : 1; @@ -122,6 +122,7 @@ newentry->count = 0; newentry->inc_list = sstrdup(hotlist[0].inc_list); newentry->ex_list = sstrdup(hotlist[0].ex_list); + newentry->freq = 0; } else if (stfound != 2) { /* Ignore line if no station was given, but print warning only once */ if (!stfound) { @@ -150,6 +151,9 @@ } else if (config_parse_int(token, tmpstr, "expire", 0, 99 * 24 + 23, 10, &tmpval, &invalid)) { newentry->expire = tmpval; + } else if (config_parse_int(token, tmpstr, "frequency", 500000, 999999, 10, &tmpval, + &invalid)) { + newentry->freq = tmpval; } else if (config_parse_bool(token, tmpstr, "read_spooldir", &tmpval, &invalid)) { newentry->readspool = tmpval; } else if (config_parse_bool(token, tmpstr, "write_spooldir", &tmpval, &invalid)) { @@ -271,6 +275,8 @@ hotlist[entry].index_page, tt_pageclass_str[hotlist[entry].search_level], (hotlist[entry].readspool ? "true" : "false"), (hotlist[entry].writespool ? "true" : "false"), hotlist[entry].expire); + if (hotlist[entry].freq) + fprintf(file, "frequency=%d\n", hotlist[entry].freq); if (entry) { /* Save exclude-list, include-list and hotlist only if station != Unknown */ fprintf(file, "include_pages=%s\nexclude_pages=%s\n", hotlist[entry].inc_list, @@ -599,6 +605,17 @@ } } + +int +hotlist_get_freq(void) { + return current->freq; +} + + +void +hotlist_set_freq(int freq) { + current->freq = freq; +} int hotlist_get_expire(void) { diff -ur VideoteXt-0.6/hotlist.h VideoteXt-0.6a/hotlist.h --- VideoteXt-0.6/hotlist.h Mon Feb 19 04:44:41 1996 +++ VideoteXt-0.6a/hotlist.h Fri Jul 26 23:30:38 1996 @@ -54,6 +54,8 @@ void hotlist_set_searchlevel(tt_pageclass_t level); int hotlist_get_spoolflag(int private, int read); void hotlist_set_spoolflag(int read, int flag); +int hotlist_get_freq(void); +void hotlist_set_freq(int expire); int hotlist_get_expire(void); void hotlist_set_expire(int expire); const char* hotlist_get_includelist(void); diff -ur VideoteXt-0.6/vtxqueue.c VideoteXt-0.6a/vtxqueue.c --- VideoteXt-0.6/vtxqueue.c Tue Feb 20 02:28:42 1996 +++ VideoteXt-0.6a/vtxqueue.c Fri Jul 26 21:45:57 1996 @@ -140,7 +140,11 @@ buffer[0] = vtx_mkparity(1); } /* Search for page in DAU 0 */ - CCTCHK(cct_searchpage(page, 0, 0, PGMASK_PAGE, 0), "cct_searchpage", return -1); +/* BB/960726 */ + if (subpage) + CCTCHK(cct_searchpage(page, 0, subpage, PGMASK_PAGE | PGMASK_MINUTE, 0), "cct_searchpage", return -1); + else + CCTCHK(cct_searchpage(page, 0, 0, PGMASK_PAGE, 0), "cct_searchpage", return -1); CCTCHK(cct_reset_pgfound(0), "cct_reset_pgfound", return -1); dau_status[0].page = page; dau_status[0].subpage = subpage; diff -ur VideoteXt-0.6/xevents.c VideoteXt-0.6a/xevents.c --- VideoteXt-0.6/xevents.c Wed Feb 21 02:27:56 1996 +++ VideoteXt-0.6a/xevents.c Fri Jul 26 23:23:34 1996 @@ -161,9 +161,12 @@ int new_station(int station) { + int freq; write_cache(); clear_cache = TRUE; hotlist_set_current(station); + freq = hotlist_get_freq(); + cct_tune(freq); station_status = (station ? STATION_RECOGNIZED : STATION_CHANGED); station_selected = FALSE; remove_priority(PRI_ALL);