[dvblast-devel] [PATCH] Extend support for up to 16 uncommitted ports.
Zoran Turalija
zoran.turalija at gmail.com
Sun Nov 20 18:11:40 CET 2016
This will allow support for up to 64 satellites.
There are some 8/10 port DiSEqC switches, that act
as an uncommitted switch or a combination of committed
and uncommitted switches. Later is already supported,
and with this change we support former.
If used switch acts as eg. 10-port uncommitted switch,
one can now tune to a satellite on port 6 using dvblast
switch "-k 6" (tune to sixth uncommitted port).
Of course, using more conventional equipment or a switch
that combines committed and uncommitted switches within
itself, a setup would consist of 4 committed ports located
under first two uncommitted ports, and 2 more committed
ports under third uncommitted port.
This kind of setup is already supported, and tuning to
satellite on "port 6" was/is possible using dvblast
switches "-k 2 -S 2" (tune to second uncommitted port
and on second committed port).
---
NEWS | 1 +
dvb.c | 6 ++----
dvblast.1 | 2 +-
dvblast.c | 4 ++--
4 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/NEWS b/NEWS
index ce94eb6..f826845 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Changes between 3.0 and 3.1:
* Add HEVC support
* Add ONID remapping
* Add PCR even when PCR PID is not selected, but drop non-PCR packets
+ * Extend support for uncommitted DiSEqC switches with up to 16 ports
Changes between 2.2 and 3.0:
----------------------------
diff --git a/dvb.c b/dvb.c
index ec84ed0..ea528f0 100644
--- a/dvb.c
+++ b/dvb.c
@@ -548,12 +548,10 @@ static int FrontendDoDiseqc(void)
| (fe_voltage == SEC_VOLTAGE_13 ? 0 : 2)
| (fe_tone == SEC_TONE_ON ? 1 : 0);
- if ( i_uncommitted > 0 && i_uncommitted < 5 )
+ if ( i_uncommitted > 0 && i_uncommitted < 17 )
{
uncmd.msg[3] = 0xf0 /* reset bits */
- | ((i_uncommitted - 1) << 2)
- | (fe_voltage == SEC_VOLTAGE_13 ? 0 : 2)
- | (fe_tone == SEC_TONE_ON ? 1 : 0);
+ | (i_uncommitted - 1);
if( ioctl( i_frontend, FE_DISEQC_SEND_MASTER_CMD, &uncmd ) < 0 )
{
msg_Err( NULL, "ioctl FE_SEND_MASTER_CMD failed (%s)",
diff --git a/dvblast.1 b/dvblast.1
index 6dbb0f7..5f241f3 100644
--- a/dvblast.1
+++ b/dvblast.1
@@ -102,7 +102,7 @@ Character set used for printing messages (default UTF-8)
Character set used in output DVB tables (default ISO-8859-1)
.TP
\fB\-k\fR, \fB\-\-uncommitted\fR <uncommitted port>
-Port number for uncommitted diseqc (0: no uncommitted diseqc, 1\-4)
+Port number for uncommitted DiSEqC switch (0: no uncommitted DiSEqC swtich, 1\-16)
.TP
\fB\-K\fR, \fB\-\-fec-lp\fR
DVB-T low priority FEC (default auto)
diff --git a/dvblast.c b/dvblast.c
index 84ecabb..bf40565 100644
--- a/dvblast.c
+++ b/dvblast.c
@@ -639,7 +639,7 @@ void usage()
msg_Raw( NULL, " -X --transmission DVB-T transmission (2, 4, 8 or -1 auto, default)" );
msg_Raw( NULL, " -s --symbol-rate" );
msg_Raw( NULL, " -S --diseqc satellite number for diseqc (0: no diseqc, 1-4, A or B)" );
- msg_Raw( NULL, " -k --uncommitted port number for uncommitted diseqc (0: no uncommitted diseqc, 1-4)" );
+ msg_Raw( NULL, " -k --uncommitted port number for uncommitted DiSEqC switch (0: no uncommitted DiSEqC switch, 1-16)" );
msg_Raw( NULL, " -u --budget-mode turn on budget mode (no hardware PID filtering)" );
msg_Raw( NULL, " -v --voltage voltage to apply to the LNB (QPSK)" );
msg_Raw( NULL, " -w --select-pmts set a PID filter on all PMTs (auto on, when config file is used)" );
@@ -881,7 +881,7 @@ int main( int i_argc, char **pp_argv )
break;
case 'k':
- i_uncommitted = strtol( optarg, NULL, 16 );
+ i_uncommitted = strtol( optarg, NULL, 10 );
break;
case 'v':
--
2.7.4
--
Kind regards,
Zoran Turalija
More information about the dvblast-devel
mailing list