mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-05-06 11:26:47 +02:00
added terrestrial services reading support
This commit is contained in:
@@ -174,13 +174,21 @@ 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 in "tc":
|
||||
if tr_type == "c":
|
||||
continue
|
||||
|
||||
tr = tr.split(_SEP)
|
||||
service_type = SERVICE_TYPE.get(data[4], SERVICE_TYPE["-2"])
|
||||
# removing all non printable symbols!
|
||||
srv_name = "".join(c for c in ch[1] if c.isprintable())
|
||||
|
||||
if tr_type == "t":
|
||||
system = "DVB-T"
|
||||
pos = "T"
|
||||
else:
|
||||
system = "DVB-S2" if len(tr) > 7 else "DVB-S"
|
||||
pos = "{}.{}".format(tr[4][:-1], tr[4][-1:])
|
||||
|
||||
channels.append(Service(flags_cas=ch[2],
|
||||
transponder_type=tr_type,
|
||||
coded=coded,
|
||||
@@ -194,10 +202,10 @@ def parse_services(services, transponders, path):
|
||||
ssid=data[0],
|
||||
freq=tr[0],
|
||||
rate=tr[1],
|
||||
pol=POLARIZATION[tr[2]],
|
||||
pol=POLARIZATION.get(tr[2], None),
|
||||
fec=FEC[tr[3]],
|
||||
system="DVB-S2" if len(tr) > 7 else "DVB-S",
|
||||
pos="{}.{}".format(tr[4][:-1], tr[4][-1:]),
|
||||
system=system,
|
||||
pos=pos,
|
||||
data_id=ch[0],
|
||||
fav_id=fav_id,
|
||||
transponder=transponder))
|
||||
|
||||
@@ -1324,8 +1324,18 @@ class MainAppWindow:
|
||||
self._filter_sat_positions_box.set_active(0)
|
||||
|
||||
def update_sat_positions(self):
|
||||
""" Updates positions values for the filtering function """
|
||||
self._sat_positions.clear()
|
||||
self._sat_positions.extend(map(str, sorted({float(x.pos) for x in self._services.values() if x.pos})))
|
||||
sat_positions = set()
|
||||
terrestrial = False
|
||||
for srv in self._services.values():
|
||||
if srv.transponder_type == "s" and srv.pos:
|
||||
sat_positions.add(float(srv.pos))
|
||||
elif srv.transponder_type == "t":
|
||||
terrestrial = True
|
||||
if terrestrial:
|
||||
self._sat_positions.append("T")
|
||||
self._sat_positions.extend(map(str, sorted(sat_positions)))
|
||||
if self._filter_bar.is_visible():
|
||||
self.update_filter_sat_positions()
|
||||
|
||||
|
||||
@@ -191,12 +191,16 @@ class ServiceDetailsDialog:
|
||||
self._package_entry.set_text(srv.package)
|
||||
self._sid_entry.set_text(str(int(srv.ssid, 16)))
|
||||
# Transponder
|
||||
tr_type = srv.transponder_type
|
||||
self._freq_entry.set_text(srv.freq)
|
||||
self._rate_entry.set_text(srv.rate)
|
||||
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)
|
||||
self.set_sat_positions(srv.pos)
|
||||
if tr_type == "t" and self._profile is Profile.ENIGMA_2:
|
||||
self.update_ui_for_terrestrial()
|
||||
else:
|
||||
self.set_sat_positions(srv.pos)
|
||||
|
||||
if self._profile is Profile.ENIGMA_2:
|
||||
self.init_enigma2_service_data(srv)
|
||||
@@ -343,6 +347,10 @@ class ServiceDetailsDialog:
|
||||
self._dialog.destroy()
|
||||
|
||||
def on_edit(self):
|
||||
if self._old_service.transponder_type == "t":
|
||||
show_dialog(DialogType.ERROR, transient=self._dialog, text="Not implemented yet!")
|
||||
return
|
||||
|
||||
fav_id, data_id = self.get_srv_data()
|
||||
# transponder
|
||||
transponder = self._old_service.transponder
|
||||
@@ -598,6 +606,16 @@ class ServiceDetailsDialog:
|
||||
else:
|
||||
self._reference_entry.set_text("{:x}{:04x}{:04x}".format(tid, nid, ssid))
|
||||
|
||||
def update_ui_for_terrestrial(self):
|
||||
self._pids_grid.set_visible(False)
|
||||
tr_grid = self._builder.get_object("tr_grid")
|
||||
tr_grid.remove_column(0)
|
||||
tr_grid.remove_column(1)
|
||||
tr_grid.remove_column(1)
|
||||
self._builder.get_object("tr_extra_expander").set_visible(False)
|
||||
self._builder.get_object("srv_separator").set_visible(False)
|
||||
self._namespace_entry.set_hexpand(True)
|
||||
|
||||
|
||||
class TransponderServicesDialog:
|
||||
def __init__(self, transient, model, transponder, tr_iters):
|
||||
|
||||
Reference in New Issue
Block a user