added basic support of cable services

This commit is contained in:
DYefremov
2018-11-25 19:34:28 +03:00
parent 9f9db9257e
commit cd1a3c5df2
4 changed files with 16 additions and 9 deletions

View File

@@ -32,7 +32,6 @@ To create a simple debian package, you can use the *build-deb.sh.*
Tests only with openATV image and Formuler F1 receiver in my preferred Linux distros
(latest Linux Mint 18.* and 19 MATE 64-bit)!
**Terrestrial(DVB-T/T2) channels are supported with limitations (Enigma2 only)!**
**Cable channels at the moment are not supported!**
**Terrestrial(DVB-T/T2) and cable channels are supported(Enigma2 only) with limitation!**

View File

@@ -174,10 +174,6 @@ def parse_services(services, transponders, path):
if transponder is not None:
tr_type, sp, tr = str(transponder).partition(" ")
# Skipping terrestrial and cable channels
if tr_type == "c":
continue
tr = tr.split(_SEP)
service_type = SERVICE_TYPE.get(data[4], SERVICE_TYPE["-2"])
# removing all non printable symbols!
@@ -186,6 +182,9 @@ def parse_services(services, transponders, path):
if tr_type == "t":
system = "DVB-T"
pos = "T"
elif tr_type == "c":
system = "CABLE"
pos = "C"
else:
system = "DVB-S2" if len(tr) > 7 else "DVB-S"
pos = "{}.{}".format(tr[4][:-1], tr[4][-1:])

View File

@@ -1420,13 +1420,22 @@ class MainAppWindow:
self._sat_positions.clear()
sat_positions = set()
terrestrial = False
cable = False
for srv in self._services.values():
if srv.transponder_type == "s" and srv.pos:
tr_type = srv.transponder_type
if tr_type == "s" and srv.pos:
sat_positions.add(float(srv.pos))
elif srv.transponder_type == "t":
elif tr_type == "t":
terrestrial = True
elif tr_type == "c":
cable = True
if terrestrial:
self._sat_positions.append("T")
if cable:
self._sat_positions.append("C")
self._sat_positions.extend(map(str, sorted(sat_positions)))
if self._filter_bar.is_visible():
self.update_filter_sat_positions()

View File

@@ -197,7 +197,7 @@ class ServiceDetailsDialog:
self.select_active_text(self._pol_combo_box, srv.pol)
self.select_active_text(self._fec_combo_box, srv.fec)
self.select_active_text(self._sys_combo_box, srv.system)
if tr_type == "t" and self._profile is Profile.ENIGMA_2:
if tr_type in "tc" and self._profile is Profile.ENIGMA_2:
self.update_ui_for_terrestrial()
else:
self.set_sat_positions(srv.pos)