diff --git a/docs/html/config_muxes.html b/docs/html/config_muxes.html
index e54a22c2..209e2213 100644
--- a/docs/html/config_muxes.html
+++ b/docs/html/config_muxes.html
@@ -17,7 +17,40 @@
Whether or not the mux is enabled and thus available.
EPG
- Whether or not to retrieve EPG information from the mux.
+ EPG scan setup
+
+
+ - Disable
+
- Disable the EPG scan
+
+
- Enable (auto)
+
- Enable the EPG scan (when some services from this mux are assigned to channels)
+
+
- Force (auto)
+
- Force the EPG scan (everytime when the EPG scan is triggered)
+
+
- Only EIT
+
- Do only EIT EPG scan (when some services from this mux are assigned to channels)
+
+
- Only UK Freesat
+
- Do only UK Freesat EPG scan (when some services from this mux are assigned to channels)
+
+
- Only UK Freeview
+
- Do only UK Freeview EPG scan (when some services from this mux are assigned to channels)
+
+
- Only Viasat Baltic
+
- Do only Viasat Baltic EPG scan (when some services from this mux are assigned to channels)
+
+
- Only OpenTV Sky UK
+
- Do only OpenTV Sky UK EPG scan (the TSID must match in the skyuk configuration file)
+
+
- Only OpenTV Sky Italia
+
- Do only OpenTV Sky Italia EPG scan (the TSID must match in the skyit configuration file)
+
+
- Only OpenTV Sky Ausat
+
- Do only OpenTV Sky Ausat EPG scan (the TSID must match in the ausat configuration file)
+
+
Network
The name of the network to which the mux belongs. Networks are defined in Configuration -> DVB Inputs -> Networks - DVB-S or ATSC, for example.
diff --git a/src/epggrab/otamux.c b/src/epggrab/otamux.c
index 5c815242..9c6e0886 100644
--- a/src/epggrab/otamux.c
+++ b/src/epggrab/otamux.c
@@ -416,13 +416,13 @@ epggrab_ota_kick_cb ( void *p )
[MM_EPG_DISABLE] = NULL,
[MM_EPG_ENABLE] = NULL,
[MM_EPG_FORCE] = NULL,
- [MM_EPG_FORCE_EIT] = "eit",
- [MM_EPG_FORCE_UK_FREESAT] = "uk_freesat",
- [MM_EPG_FORCE_UK_FREEVIEW] = "uk_freeview",
- [MM_EPG_FORCE_VIASAT_BALTIC] = "viasat_baltic",
- [MM_EPG_FORCE_OPENTV_SKY_UK] = "opentv-skyuk",
- [MM_EPG_FORCE_OPENTV_SKY_ITALIA] = "opentv-skyit",
- [MM_EPG_FORCE_OPENTV_SKY_AUSAT] = "opentv-ausat",
+ [MM_EPG_ONLY_EIT] = "eit",
+ [MM_EPG_ONLY_UK_FREESAT] = "uk_freesat",
+ [MM_EPG_ONLY_UK_FREEVIEW] = "uk_freeview",
+ [MM_EPG_ONLY_VIASAT_BALTIC] = "viasat_baltic",
+ [MM_EPG_ONLY_OPENTV_SKY_UK] = "opentv-skyuk",
+ [MM_EPG_ONLY_OPENTV_SKY_ITALIA] = "opentv-skyit",
+ [MM_EPG_ONLY_OPENTV_SKY_AUSAT] = "opentv-ausat",
};
lock_assert(&global_lock);
@@ -476,26 +476,25 @@ next_one:
goto done;
}
- if (epg_flag != MM_EPG_FORCE) {
- /* Check we have modules attached and enabled */
- LIST_FOREACH(map, &om->om_modules, om_link) {
- if (map->om_module->tune(map, om, mm))
- break;
- }
- if (!map) {
- char name[256];
- mpegts_mux_nice_name(mm, name, sizeof(name));
- tvhdebug("epggrab", "no OTA modules active for %s, check again next time", name);
- goto done;
+ /* Check we have modules attached and enabled */
+ i = r = 0;
+ LIST_FOREACH(map, &om->om_modules, om_link) {
+ if (map->om_module->tune(map, om, mm)) {
+ i++;
+ if (modname && !strcmp(modname, map->om_module->id))
+ r = 1;
}
}
+ if ((i == 0 || (r == 0 && modname)) && epg_flag != MM_EPG_FORCE) {
+ char name[256];
+ mpegts_mux_nice_name(mm, name, sizeof(name));
+ tvhdebug("epggrab", "no OTA modules active for %s, check again next time", name);
+ goto done;
+ }
/* Some init stuff */
free(om->om_force_modname);
- if (modname)
- om->om_force_modname = strdup(modname);
- else
- om->om_force_modname = NULL;
+ om->om_force_modname = modname ? strdup(modname) : NULL;
/* Subscribe to the mux */
if ((r = mpegts_mux_subscribe(mm, "epggrab", SUBSCRIPTION_PRIO_EPG))) {
diff --git a/src/input/mpegts.h b/src/input/mpegts.h
index ba92210f..20e78058 100644
--- a/src/input/mpegts.h
+++ b/src/input/mpegts.h
@@ -312,15 +312,15 @@ enum mpegts_mux_epg_flag
MM_EPG_DISABLE,
MM_EPG_ENABLE,
MM_EPG_FORCE,
- MM_EPG_FORCE_EIT,
- MM_EPG_FORCE_UK_FREESAT,
- MM_EPG_FORCE_UK_FREEVIEW,
- MM_EPG_FORCE_VIASAT_BALTIC,
- MM_EPG_FORCE_OPENTV_SKY_UK,
- MM_EPG_FORCE_OPENTV_SKY_ITALIA,
- MM_EPG_FORCE_OPENTV_SKY_AUSAT,
+ MM_EPG_ONLY_EIT,
+ MM_EPG_ONLY_UK_FREESAT,
+ MM_EPG_ONLY_UK_FREEVIEW,
+ MM_EPG_ONLY_VIASAT_BALTIC,
+ MM_EPG_ONLY_OPENTV_SKY_UK,
+ MM_EPG_ONLY_OPENTV_SKY_ITALIA,
+ MM_EPG_ONLY_OPENTV_SKY_AUSAT,
};
-#define MM_EPG_LAST MM_EPG_FORCE_OPENTV_SKY_AUSAT
+#define MM_EPG_LAST MM_EPG_ONLY_OPENTV_SKY_AUSAT
/* Multiplex */
struct mpegts_mux
diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c
index d3959271..2add0bfd 100644
--- a/src/input/mpegts/mpegts_mux.c
+++ b/src/input/mpegts/mpegts_mux.c
@@ -303,13 +303,13 @@ mpegts_mux_epg_list ( void *o )
{ "Disable", MM_EPG_DISABLE },
{ "Enable (auto)", MM_EPG_ENABLE },
{ "Force (auto)", MM_EPG_FORCE },
- { "Force EIT", MM_EPG_FORCE_EIT },
- { "Force UK Freesat", MM_EPG_FORCE_UK_FREESAT },
- { "Force UK Freeview", MM_EPG_FORCE_UK_FREEVIEW },
- { "Force Viasat Baltic", MM_EPG_FORCE_VIASAT_BALTIC },
- { "Force OpenTV Sky UK", MM_EPG_FORCE_OPENTV_SKY_UK },
- { "Force OpenTV Sky Italia", MM_EPG_FORCE_OPENTV_SKY_ITALIA },
- { "Force OpenTV Sky Ausat", MM_EPG_FORCE_OPENTV_SKY_AUSAT },
+ { "Only EIT", MM_EPG_ONLY_EIT },
+ { "Only UK Freesat", MM_EPG_ONLY_UK_FREESAT },
+ { "Only UK Freeview", MM_EPG_ONLY_UK_FREEVIEW },
+ { "Only Viasat Baltic", MM_EPG_ONLY_VIASAT_BALTIC },
+ { "Only OpenTV Sky UK", MM_EPG_ONLY_OPENTV_SKY_UK },
+ { "Only OpenTV Sky Italia", MM_EPG_ONLY_OPENTV_SKY_ITALIA },
+ { "Only OpenTV Sky Ausat", MM_EPG_ONLY_OPENTV_SKY_AUSAT },
};
return strtab2htsmsg(tab);
}