diff -u libs/libtuxtxt_orig/libtuxtxt.c libs/libtuxtxt/libtuxtxt.c --- libs/libtuxtxt_orig/libtuxtxt.c 2009-01-29 21:21:08.000000000 +0100 +++ libs/libtuxtxt/libtuxtxt.c 2009-01-29 21:26:49.000000000 +0100 @@ -65,6 +65,13 @@ tuxtxt_cache.thread_id = 0; tuxtxt_cache.dmx = -1; pthread_mutex_unlock(&tuxtxt_control_lock); + +#if HAVE_DVB_API_VERSION < 3 + strcpy(tuxtxt_cache.demux, "/dev/dvb/card0/demux0"); +#else + strcpy(tuxtxt_cache.demux, "/dev/dvb/adapter0/demux0"); +#endif + return 1;//tuxtxt_init_demuxer(); } @@ -82,7 +89,7 @@ pthread_mutex_unlock(&tuxtxt_control_lock); return res; } -int tuxtxt_start(int tpid) +int tuxtxt_start(int tpid, int demux) { int ret = 1; pthread_mutex_lock(&tuxtxt_control_lock); @@ -92,10 +99,26 @@ tuxtxt_clear_cache(); tuxtxt_cache.page = 0x100; tuxtxt_cache.vtxtpid = tpid; + if (demux >= 0) + { +#if HAVE_DVB_API_VERSION < 3 + snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux); +#else + snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux); +#endif + } ret = tuxtxt_start_thread(); } else if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving) { + if (demux >= 0) + { +#if HAVE_DVB_API_VERSION < 3 + snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux); +#else + snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux); +#endif + } ret = tuxtxt_start_thread(); } pthread_mutex_unlock(&tuxtxt_control_lock); diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h --- libs/libtuxtxt_orig/tuxtxt_common.h 2009-01-29 21:24:32.000000000 +0100 +++ libs/libtuxtxt/tuxtxt_common.h 2009-01-29 21:26:49.000000000 +0100 @@ -1751,9 +1751,9 @@ if (tuxtxt_cache.dmx != -1) { ioctl(tuxtxt_cache.dmx, DMX_STOP); -// close(tuxtxt_cache.dmx); - } -// tuxtxt_cache.dmx = -1; + close(tuxtxt_cache.dmx); + } + tuxtxt_cache.dmx = -1; #if 1//DEBUG printf("TuxTxt stopped service %x\n", tuxtxt_cache.vtxtpid); #endif diff -u libs/libtuxtxt_orig/tuxtxt_def.h libs/libtuxtxt/tuxtxt_def.h --- libs/libtuxtxt_orig/tuxtxt_def.h 2009-01-29 21:19:23.000000000 +0100 +++ libs/libtuxtxt/tuxtxt_def.h 2009-01-29 21:26:49.000000000 +0100 @@ -19,12 +19,12 @@ #define pes_type pesType #define dmx_sct_filter_params dmxSctFilterParams #include - #define DMX "/dev/dvb/card0/demux0" #else #include - #define DMX "/dev/dvb/adapter0/demux0" #endif +#define DMX tuxtxt_cache.demux + #include #include FT_FREETYPE_H #include FT_CACHE_H @@ -325,6 +325,7 @@ short flofpages[0x900][FLOFSIZE]; unsigned char adip[0x900][13]; unsigned char subpagetable[0x900]; + char demux[64]; int dmx; int vtxtpid; int cached_pages, page, subpage, pageupdate,page_receiving, current_page[9], current_subpage[9];