minisatip7 -0 change
This commit is contained in:
parent
d50f0f44b1
commit
84a531f3fc
@ -59,10 +59,35 @@ index ed8b1e5..f41b772 100644
|
|||||||
+-include $(DEPS)
|
+-include $(DEPS)
|
||||||
+endif
|
+endif
|
||||||
diff --git a/adapter.c b/adapter.c
|
diff --git a/adapter.c b/adapter.c
|
||||||
index 26bd3b6..c88ddef 100644
|
index 26bd3b6..3c4c0b3 100644
|
||||||
--- a/adapter.c
|
--- a/adapter.c
|
||||||
+++ b/adapter.c
|
+++ b/adapter.c
|
||||||
@@ -119,8 +119,7 @@ void find_adapters()
|
@@ -65,6 +65,7 @@ adapter *adapter_alloc()
|
||||||
|
{
|
||||||
|
adapter *ad = malloc1(sizeof(adapter));
|
||||||
|
memset(ad, 0, sizeof(adapter));
|
||||||
|
+
|
||||||
|
/* diseqc setup */
|
||||||
|
ad->diseqc_param.fast = opts.diseqc_fast;
|
||||||
|
ad->diseqc_param.committed_no = opts.diseqc_committed_no;
|
||||||
|
@@ -84,14 +85,14 @@ adapter *adapter_alloc()
|
||||||
|
ad->old_pol = -1;
|
||||||
|
ad->dmx_source = -1;
|
||||||
|
ad->slow_dev = opts.nopm;
|
||||||
|
- /* LOF setup */
|
||||||
|
+ ad->diseqc_multi = opts.diseqc_multi;
|
||||||
|
|
||||||
|
+ /* LOF setup */
|
||||||
|
ad->diseqc_param.lnb_low = opts.lnb_low;
|
||||||
|
ad->diseqc_param.lnb_high = opts.lnb_high;
|
||||||
|
ad->diseqc_param.lnb_circular = opts.lnb_circular;
|
||||||
|
ad->diseqc_param.lnb_switch = opts.lnb_switch;
|
||||||
|
|
||||||
|
-
|
||||||
|
return ad;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -119,8 +120,7 @@ void find_adapters()
|
||||||
// avoid adapter close unless all the adapters can be closed
|
// avoid adapter close unless all the adapters can be closed
|
||||||
int adapter_timeout(sockets *s)
|
int adapter_timeout(sockets *s)
|
||||||
{
|
{
|
||||||
@ -72,7 +97,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
adapter *ad = get_adapter(s->sid);
|
adapter *ad = get_adapter(s->sid);
|
||||||
if (!ad)
|
if (!ad)
|
||||||
return 1;
|
return 1;
|
||||||
@@ -187,7 +186,6 @@ int num_adapters = 0;
|
@@ -187,7 +187,6 @@ int num_adapters = 0;
|
||||||
|
|
||||||
int init_hw(int i)
|
int init_hw(int i)
|
||||||
{
|
{
|
||||||
@ -80,7 +105,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
int64_t st, et;
|
int64_t st, et;
|
||||||
adapter *ad;
|
adapter *ad;
|
||||||
if (i < 0 || i >= MAX_ADAPTERS)
|
if (i < 0 || i >= MAX_ADAPTERS)
|
||||||
@@ -291,7 +289,6 @@ int init_hw(int i)
|
@@ -291,7 +290,6 @@ int init_hw(int i)
|
||||||
get_delsys(ad->sys[0]), get_delsys(ad->sys[1]),
|
get_delsys(ad->sys[0]), get_delsys(ad->sys[1]),
|
||||||
get_delsys(ad->sys[2]), get_delsys(ad->sys[3]));
|
get_delsys(ad->sys[2]), get_delsys(ad->sys[3]));
|
||||||
|
|
||||||
@ -88,7 +113,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
mutex_unlock(&ad->mutex);
|
mutex_unlock(&ad->mutex);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@@ -303,7 +300,6 @@ NOK:
|
@@ -303,7 +301,6 @@ NOK:
|
||||||
int init_all_hw()
|
int init_all_hw()
|
||||||
{
|
{
|
||||||
int i, rv;
|
int i, rv;
|
||||||
@ -96,7 +121,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
|
|
||||||
LOG("starting init_all_hw %d", init_complete);
|
LOG("starting init_all_hw %d", init_complete);
|
||||||
if (init_complete)
|
if (init_complete)
|
||||||
@@ -385,11 +381,10 @@ int close_adapter(int na)
|
@@ -385,11 +382,10 @@ int close_adapter(int na)
|
||||||
|
|
||||||
int getAdaptersCount()
|
int getAdaptersCount()
|
||||||
{
|
{
|
||||||
@ -111,7 +136,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
char order[] =
|
char order[] =
|
||||||
{ SYS_DVBS2, SYS_DVBT, SYS_DVBC_ANNEX_A, SYS_DVBT2, SYS_DVBC2 };
|
{ SYS_DVBS2, SYS_DVBT, SYS_DVBC_ANNEX_A, SYS_DVBT2, SYS_DVBC2 };
|
||||||
|
|
||||||
@@ -701,7 +696,6 @@ int tune(int aid, int sid)
|
@@ -701,7 +697,6 @@ int tune(int aid, int sid)
|
||||||
{
|
{
|
||||||
adapter *ad = get_adapter(aid);
|
adapter *ad = get_adapter(aid);
|
||||||
int rv = 0, flush_data = 0;
|
int rv = 0, flush_data = 0;
|
||||||
@ -119,7 +144,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
|
|
||||||
if (!ad)
|
if (!ad)
|
||||||
return -400;
|
return -400;
|
||||||
@@ -936,7 +930,6 @@ int mark_pids_add(int sid, int aid, char *pids)
|
@@ -936,7 +931,6 @@ int mark_pids_add(int sid, int aid, char *pids)
|
||||||
|
|
||||||
int compare_tunning_parameters(int aid, transponder * tp)
|
int compare_tunning_parameters(int aid, transponder * tp)
|
||||||
{
|
{
|
||||||
@ -127,7 +152,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
adapter *ad = get_adapter(aid);
|
adapter *ad = get_adapter(aid);
|
||||||
if (!ad)
|
if (!ad)
|
||||||
return -1;
|
return -1;
|
||||||
@@ -1072,7 +1065,7 @@ char* get_stream_pids(int s_id, char *dest, int max_size);
|
@@ -1072,7 +1066,7 @@ char* get_stream_pids(int s_id, char *dest, int max_size);
|
||||||
char *
|
char *
|
||||||
describe_adapter(int sid, int aid, char *dad, int ld)
|
describe_adapter(int sid, int aid, char *dad, int ld)
|
||||||
{
|
{
|
||||||
@ -136,7 +161,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
transponder *t;
|
transponder *t;
|
||||||
adapter *ad;
|
adapter *ad;
|
||||||
streams *ss;
|
streams *ss;
|
||||||
@@ -1092,7 +1085,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
@@ -1092,7 +1086,7 @@ describe_adapter(int sid, int aid, char *dad, int ld)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
t = &ad->tp;
|
t = &ad->tp;
|
||||||
@ -145,7 +170,59 @@ index 26bd3b6..c88ddef 100644
|
|||||||
|
|
||||||
if (use_ad)
|
if (use_ad)
|
||||||
{
|
{
|
||||||
@@ -1404,7 +1397,7 @@ void set_diseqc_timing(char *o)
|
@@ -1333,6 +1327,51 @@ void set_diseqc_adapters(char *o)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+void set_diseqc_multi(char *o)
|
||||||
|
+{
|
||||||
|
+ int i, la, a_id, position;
|
||||||
|
+ char buf[100], *arg[20], *sep1;
|
||||||
|
+ adapter *ad;
|
||||||
|
+ strncpy(buf, o, sizeof(buf));
|
||||||
|
+ la = split(arg, buf, sizeof(arg), ',');
|
||||||
|
+ for (i = 0; i < la; i++)
|
||||||
|
+ {
|
||||||
|
+ if (arg[i] && arg[i][0] == '*')
|
||||||
|
+ {
|
||||||
|
+ ad = NULL;
|
||||||
|
+ a_id = -1;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ a_id = map_intd(arg[i], NULL, -1);
|
||||||
|
+ if (a_id < 0 || a_id >= MAX_ADAPTERS)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (!a[a_id])
|
||||||
|
+ a[a_id] = adapter_alloc();
|
||||||
|
+ ad = a[a_id];
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ sep1 = strchr(arg[i], ':');
|
||||||
|
+
|
||||||
|
+ if (!sep1)
|
||||||
|
+ continue;
|
||||||
|
+ position = map_intd(sep1 + 1, NULL, -1);
|
||||||
|
+ if (position < 0)
|
||||||
|
+ continue;
|
||||||
|
+ if (ad)
|
||||||
|
+ {
|
||||||
|
+ ad->diseqc_multi = position;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ opts.diseqc_multi = position;
|
||||||
|
+ }
|
||||||
|
+ LOGL(0,
|
||||||
|
+ "Setting diseqc multi adapter %d position %d",
|
||||||
|
+ a_id, position);
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
|
||||||
|
void set_lnb_adapters(char *o)
|
||||||
|
{
|
||||||
|
@@ -1404,7 +1443,7 @@ void set_diseqc_timing(char *o)
|
||||||
int before_cmd, after_cmd, after_repeated_cmd;
|
int before_cmd, after_cmd, after_repeated_cmd;
|
||||||
int after_switch, after_burst, after_tone;
|
int after_switch, after_burst, after_tone;
|
||||||
char buf[2000], *arg[20];
|
char buf[2000], *arg[20];
|
||||||
@ -154,7 +231,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
adapter *ad;
|
adapter *ad;
|
||||||
strncpy(buf, o, sizeof(buf));
|
strncpy(buf, o, sizeof(buf));
|
||||||
la = split(arg, buf, sizeof(arg), ',');
|
la = split(arg, buf, sizeof(arg), ',');
|
||||||
@@ -1550,7 +1543,7 @@ void set_nopm_adapters(char *o)
|
@@ -1550,7 +1589,7 @@ void set_nopm_adapters(char *o)
|
||||||
extern char *fe_delsys[];
|
extern char *fe_delsys[];
|
||||||
void set_adapters_delsys(char *o)
|
void set_adapters_delsys(char *o)
|
||||||
{
|
{
|
||||||
@ -163,7 +240,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
char buf[100], *arg[20], *sep;
|
char buf[100], *arg[20], *sep;
|
||||||
adapter *ad;
|
adapter *ad;
|
||||||
strncpy(buf, o, sizeof(buf));
|
strncpy(buf, o, sizeof(buf));
|
||||||
@@ -1652,7 +1645,6 @@ int signal_thread(sockets *s)
|
@@ -1652,7 +1691,6 @@ int signal_thread(sockets *s)
|
||||||
int i;
|
int i;
|
||||||
int64_t ts, ctime;
|
int64_t ts, ctime;
|
||||||
adapter *ad;
|
adapter *ad;
|
||||||
@ -171,7 +248,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
for (i = 0; i < MAX_ADAPTERS; i++)
|
for (i = 0; i < MAX_ADAPTERS; i++)
|
||||||
if ((ad = get_adapter_nw(i)) && ad->get_signal && ad->tp.freq
|
if ((ad = get_adapter_nw(i)) && ad->get_signal && ad->tp.freq
|
||||||
&& (ad->status_cnt++ > 2) // make sure the kernel has updated the status
|
&& (ad->status_cnt++ > 2) // make sure the kernel has updated the status
|
||||||
@@ -1873,9 +1865,9 @@ _symbols adapters_sym[] =
|
@@ -1873,9 +1911,9 @@ _symbols adapters_sym[] =
|
||||||
{ "ad_sys", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(
|
{ "ad_sys", VAR_AARRAY_INT, a, 1, MAX_ADAPTERS, offsetof(
|
||||||
adapter, tp.sys) },
|
adapter, tp.sys) },
|
||||||
{ "ad_allsys", VAR_FUNCTION_STRING, (void *) &get_all_delsys, 0,
|
{ "ad_allsys", VAR_FUNCTION_STRING, (void *) &get_all_delsys, 0,
|
||||||
@ -184,7 +261,7 @@ index 26bd3b6..c88ddef 100644
|
|||||||
{ "tuner_t2", VAR_INT, &tuner_t2, 1, 0, 0 },
|
{ "tuner_t2", VAR_INT, &tuner_t2, 1, 0, 0 },
|
||||||
{ "tuner_c2", VAR_INT, &tuner_c2, 1, 0, 0 },
|
{ "tuner_c2", VAR_INT, &tuner_c2, 1, 0, 0 },
|
||||||
diff --git a/adapter.h b/adapter.h
|
diff --git a/adapter.h b/adapter.h
|
||||||
index db7c270..06055b3 100755
|
index db7c270..2d379cc 100755
|
||||||
--- a/adapter.h
|
--- a/adapter.h
|
||||||
+++ b/adapter.h
|
+++ b/adapter.h
|
||||||
@@ -53,6 +53,7 @@ typedef int (*Del_filters)(int fd, int pid);
|
@@ -53,6 +53,7 @@ typedef int (*Del_filters)(int fd, int pid);
|
||||||
@ -195,7 +272,15 @@ index db7c270..06055b3 100755
|
|||||||
typedef int (*Tune)(int aid, transponder * tp);
|
typedef int (*Tune)(int aid, transponder * tp);
|
||||||
typedef fe_delivery_system_t (*Dvb_delsys)(int aid, int fd,
|
typedef fe_delivery_system_t (*Dvb_delsys)(int aid, int fd,
|
||||||
fe_delivery_system_t *sys);
|
fe_delivery_system_t *sys);
|
||||||
@@ -115,6 +116,7 @@ typedef struct struct_adapter
|
@@ -99,6 +100,7 @@ typedef struct struct_adapter
|
||||||
|
uint16_t strength, snr, max_strength, max_snr;
|
||||||
|
uint32_t pid_err, dec_err; // detect pids received but not part of any stream, decrypt errors
|
||||||
|
diseqc diseqc_param;
|
||||||
|
+ int diseqc_multi;
|
||||||
|
int old_diseqc;
|
||||||
|
int old_hiband;
|
||||||
|
int old_pol;
|
||||||
|
@@ -115,6 +117,7 @@ typedef struct struct_adapter
|
||||||
Tune tune;
|
Tune tune;
|
||||||
Dvb_delsys delsys;
|
Dvb_delsys delsys;
|
||||||
Device_signal get_signal;
|
Device_signal get_signal;
|
||||||
@ -203,8 +288,16 @@ index db7c270..06055b3 100755
|
|||||||
Adapter_commit post_init, close;
|
Adapter_commit post_init, close;
|
||||||
} adapter;
|
} adapter;
|
||||||
|
|
||||||
|
@@ -147,6 +150,7 @@ void enable_adapters(char *o);
|
||||||
|
void set_unicable_adapters(char *o, int type);
|
||||||
|
void set_diseqc_adapters(char *o);
|
||||||
|
void set_diseqc_timing(char *o);
|
||||||
|
+void set_diseqc_multi(char *o);
|
||||||
|
void set_slave_adapters(char *o);
|
||||||
|
void set_nopm_adapters(char *o);
|
||||||
|
void set_adapter_dmxsource(char *o);
|
||||||
diff --git a/axe.c b/axe.c
|
diff --git a/axe.c b/axe.c
|
||||||
index 486b2f8..9f136ab 100755
|
index 486b2f8..1373ba7 100755
|
||||||
--- a/axe.c
|
--- a/axe.c
|
||||||
+++ b/axe.c
|
+++ b/axe.c
|
||||||
@@ -47,10 +47,7 @@
|
@@ -47,10 +47,7 @@
|
||||||
@ -246,6 +339,15 @@ index 486b2f8..9f136ab 100755
|
|||||||
|
|
||||||
if (tp->diseqc_param.switch_type != SWITCH_UNICABLE &&
|
if (tp->diseqc_param.switch_type != SWITCH_UNICABLE &&
|
||||||
tp->diseqc_param.switch_type != SWITCH_JESS) {
|
tp->diseqc_param.switch_type != SWITCH_JESS) {
|
||||||
|
@@ -341,7 +340,7 @@ int axe_setup_switch(adapter *ad)
|
||||||
|
input = master;
|
||||||
|
if (!tune_check(adm, pol, hiband, diseqc)) {
|
||||||
|
send_diseqc(adm, adm->fe2, diseqc, adm->old_diseqc != diseqc,
|
||||||
|
- pol, hiband, &tp->diseqc_param);
|
||||||
|
+ pol, hiband, &tp->diseqc_param);
|
||||||
|
adm->old_pol = pol;
|
||||||
|
adm->old_hiband = hiband;
|
||||||
|
adm->old_diseqc = diseqc;
|
||||||
@@ -385,18 +384,35 @@ int axe_setup_switch(adapter *ad)
|
@@ -385,18 +384,35 @@ int axe_setup_switch(adapter *ad)
|
||||||
}else
|
}else
|
||||||
ad->axe_used |= (1 << aid);
|
ad->axe_used |= (1 << aid);
|
||||||
@ -488,7 +590,7 @@ index af35a61..46ce50c 100644
|
|||||||
int axe_setup_switch(adapter *ad);
|
int axe_setup_switch(adapter *ad);
|
||||||
void free_axe_input(adapter *ad);
|
void free_axe_input(adapter *ad);
|
||||||
diff --git a/dvb.c b/dvb.c
|
diff --git a/dvb.c b/dvb.c
|
||||||
index 15f59c8..a5d20fb 100644
|
index 15f59c8..a38e5ef 100644
|
||||||
--- a/dvb.c
|
--- a/dvb.c
|
||||||
+++ b/dvb.c
|
+++ b/dvb.c
|
||||||
@@ -42,10 +42,6 @@
|
@@ -42,10 +42,6 @@
|
||||||
@ -502,7 +604,19 @@ index 15f59c8..a5d20fb 100644
|
|||||||
char *fe_pilot[] =
|
char *fe_pilot[] =
|
||||||
{ "on", "off", " ", //auto
|
{ "on", "off", " ", //auto
|
||||||
NULL };
|
NULL };
|
||||||
@@ -436,9 +432,8 @@ int send_diseqc(adapter *ad, int fd, int pos, int pos_change, int pol, int hiban
|
@@ -417,6 +413,11 @@ int send_diseqc(adapter *ad, int fd, int pos, int pos_change, int pol, int hiban
|
||||||
|
{ 0xe0, 0x10, 0x39, 0xf0, 0x00, 0x00 }, 4
|
||||||
|
};
|
||||||
|
|
||||||
|
+ if (pos_change && ad->diseqc_multi >= 0 && pos != ad->diseqc_multi) {
|
||||||
|
+ send_diseqc(ad, fd, ad->diseqc_multi, 1, pol, hiband, d);
|
||||||
|
+ pos_change = 1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (uncommitted_no > committed_no)
|
||||||
|
uncommitted_first = 1;
|
||||||
|
|
||||||
|
@@ -436,9 +437,8 @@ int send_diseqc(adapter *ad, int fd, int pos, int pos_change, int pol, int hiban
|
||||||
|
|
||||||
LOGL(3, "send_diseqc fd %d, pos = %d (c %d u %d), pol = %d, hiband = %d",
|
LOGL(3, "send_diseqc fd %d, pos = %d (c %d u %d), pol = %d, hiband = %d",
|
||||||
fd, pos, posc, posu, pol, hiband);
|
fd, pos, posc, posu, pol, hiband);
|
||||||
@ -514,7 +628,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
|
|
||||||
if (ioctl(fd, FE_SET_TONE, SEC_TONE_OFF) == -1)
|
if (ioctl(fd, FE_SET_TONE, SEC_TONE_OFF) == -1)
|
||||||
LOG("send_diseqc: FE_SET_TONE failed for fd %d: %s", fd,
|
LOG("send_diseqc: FE_SET_TONE failed for fd %d: %s", fd,
|
||||||
@@ -504,9 +499,8 @@ int send_unicable(adapter *ad, int fd, int freq, int pos, int pol, int hiband, d
|
@@ -504,9 +504,8 @@ int send_unicable(adapter *ad, int fd, int freq, int pos, int pol, int hiband, d
|
||||||
"send_unicable fd %d, freq %d, ufreq %d, pos = %d, pol = %d, hiband = %d, slot %d, diseqc => %02x %02x %02x %02x %02x",
|
"send_unicable fd %d, freq %d, ufreq %d, pos = %d, pol = %d, hiband = %d, slot %d, diseqc => %02x %02x %02x %02x %02x",
|
||||||
fd, freq, d->ufreq, pos, pol, hiband, d->uslot, cmd.msg[0],
|
fd, freq, d->ufreq, pos, pol, hiband, d->uslot, cmd.msg[0],
|
||||||
cmd.msg[1], cmd.msg[2], cmd.msg[3], cmd.msg[4]);
|
cmd.msg[1], cmd.msg[2], cmd.msg[3], cmd.msg[4]);
|
||||||
@ -526,7 +640,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
if(!ad->tune_time)
|
if(!ad->tune_time)
|
||||||
{
|
{
|
||||||
if (ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_13) == -1)
|
if (ioctl(fd, FE_SET_VOLTAGE, SEC_VOLTAGE_13) == -1)
|
||||||
@@ -551,14 +545,12 @@ int send_jess(adapter *ad, int fd, int freq, int pos, int pol, int hiband, diseq
|
@@ -551,14 +550,12 @@ int send_jess(adapter *ad, int fd, int freq, int pos, int pol, int hiband, diseq
|
||||||
cmd.msg[4] = d->pin;
|
cmd.msg[4] = d->pin;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -546,7 +660,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
|
|
||||||
if(!ad->tune_time)
|
if(!ad->tune_time)
|
||||||
{
|
{
|
||||||
@@ -609,23 +601,13 @@ int setup_switch(adapter *ad)
|
@@ -609,23 +606,13 @@ int setup_switch(adapter *ad)
|
||||||
|
|
||||||
if (tp->diseqc_param.switch_type == SWITCH_UNICABLE)
|
if (tp->diseqc_param.switch_type == SWITCH_UNICABLE)
|
||||||
{
|
{
|
||||||
@ -574,7 +688,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
}
|
}
|
||||||
else if (tp->diseqc_param.switch_type == SWITCH_SLAVE)
|
else if (tp->diseqc_param.switch_type == SWITCH_SLAVE)
|
||||||
{
|
{
|
||||||
@@ -639,9 +621,9 @@ int setup_switch(adapter *ad)
|
@@ -639,9 +626,9 @@ int setup_switch(adapter *ad)
|
||||||
hiband, &tp->diseqc_param);
|
hiband, &tp->diseqc_param);
|
||||||
else
|
else
|
||||||
LOGL(3, "Skip sending diseqc commands since "
|
LOGL(3, "Skip sending diseqc commands since "
|
||||||
@ -587,7 +701,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
ad->old_pol = pol;
|
ad->old_pol = pol;
|
||||||
@@ -694,35 +676,24 @@ int dvb_tune(int aid, transponder * tp)
|
@@ -694,35 +681,24 @@ int dvb_tune(int aid, transponder * tp)
|
||||||
case SYS_DVBS2:
|
case SYS_DVBS2:
|
||||||
|
|
||||||
bpol = getTick();
|
bpol = getTick();
|
||||||
@ -633,7 +747,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
|
|
||||||
case SYS_DVBT:
|
case SYS_DVBT:
|
||||||
case SYS_DVBT2:
|
case SYS_DVBT2:
|
||||||
@@ -799,7 +770,7 @@ int dvb_tune(int aid, transponder * tp)
|
@@ -799,7 +775,7 @@ int dvb_tune(int aid, transponder * tp)
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -642,7 +756,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
fe_delsys[tp->sys], bclear)
|
fe_delsys[tp->sys], bclear)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -822,14 +793,8 @@ int dvb_tune(int aid, transponder * tp)
|
@@ -822,14 +798,8 @@ int dvb_tune(int aid, transponder * tp)
|
||||||
if (ioctl(fd_frontend, FE_SET_PROPERTY, &p) == -1)
|
if (ioctl(fd_frontend, FE_SET_PROPERTY, &p) == -1)
|
||||||
{
|
{
|
||||||
LOG("dvb_tune: set property failed %d %s", errno, strerror(errno));
|
LOG("dvb_tune: set property failed %d %s", errno, strerror(errno));
|
||||||
@ -657,7 +771,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -984,7 +949,7 @@ fe_delivery_system_t dvb_delsys(int aid, int fd, fe_delivery_system_t *sys)
|
@@ -984,7 +954,7 @@ fe_delivery_system_t dvb_delsys(int aid, int fd, fe_delivery_system_t *sys)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -666,7 +780,7 @@ index 15f59c8..a5d20fb 100644
|
|||||||
uint16_t * snr)
|
uint16_t * snr)
|
||||||
{
|
{
|
||||||
*status = *ber = *snr = *strength = 0;
|
*status = *ber = *snr = *strength = 0;
|
||||||
@@ -1009,7 +974,7 @@ void get_signal(int fd, int * status, uint32_t * ber, uint16_t * strength,
|
@@ -1009,7 +979,7 @@ void get_signal(int fd, int * status, uint32_t * ber, uint16_t * strength,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1210,10 +1324,54 @@ index 8d2f6e5..812a13d 100755
|
|||||||
});
|
});
|
||||||
|
|
||||||
diff --git a/minisatip.c b/minisatip.c
|
diff --git a/minisatip.c b/minisatip.c
|
||||||
index e6e2254..bdb96d5 100755
|
index e6e2254..bafbf8b 100755
|
||||||
--- a/minisatip.c
|
--- a/minisatip.c
|
||||||
+++ b/minisatip.c
|
+++ b/minisatip.c
|
||||||
@@ -482,7 +482,7 @@ void set_options(int argc, char *argv[])
|
@@ -73,6 +73,7 @@ static const struct option long_options[] =
|
||||||
|
{ "jess", required_argument, NULL, 'j' },
|
||||||
|
{ "diseqc", required_argument, NULL, 'd' },
|
||||||
|
{ "diseqc-timing", required_argument, NULL, 'q' },
|
||||||
|
+ { "diseqc-multi", required_argument, NULL, '0' },
|
||||||
|
{ "nopm", required_argument, NULL, 'Z' },
|
||||||
|
#ifndef DISABLE_DVBAPI
|
||||||
|
{ "dvbapi", required_argument, NULL, 'o' },
|
||||||
|
@@ -149,6 +150,7 @@ static const struct option long_options[] =
|
||||||
|
#define AXE_SKIP_PKT 'M'
|
||||||
|
#define AXE_POWER 'W'
|
||||||
|
#define ABSOLUTE_SRC 'A'
|
||||||
|
+#define DISEQC_MULTI '0'
|
||||||
|
|
||||||
|
char *built_info[] =
|
||||||
|
{
|
||||||
|
@@ -235,7 +237,7 @@ void usage()
|
||||||
|
#ifdef AXE
|
||||||
|
"[-7 M1:S1[,M2:S2]] [-M mpegts_packets] [-A SRC1:INP1:DISEQC1[,SRC2:INP2:DISEQC2]]\n\n"
|
||||||
|
#endif
|
||||||
|
- "\t[-x http_port] [-X xml_path] [-y rtsp_port] \n\n\
|
||||||
|
+ "\t[-x http_port] [-X xml_path] [-y rtsp_port]\n\n\
|
||||||
|
Help\n\
|
||||||
|
-------\n\
|
||||||
|
\n\
|
||||||
|
@@ -263,6 +265,10 @@ Help\n\
|
||||||
|
\t* All timing values are in ms, default adapter values are: 15-54-15-15-15-0\n\
|
||||||
|
- note: * as adapter means apply to all adapters\n\
|
||||||
|
\n\
|
||||||
|
+* -0 --diseqc-multi ADAPTER1:DISEQC_POSITION[,...]\n\
|
||||||
|
+\t* Send diseqc to selected position before other position is set.\n\
|
||||||
|
+ - note: * as adapter means apply to all adapters\n\
|
||||||
|
+\n\
|
||||||
|
* -D --device-id DVC_ID: specify the device id (in case there are multiple SAT>IP servers in the network)\n \
|
||||||
|
* eg: -D 4 \n\
|
||||||
|
\n\
|
||||||
|
@@ -464,6 +470,7 @@ void set_options(int argc, char *argv[])
|
||||||
|
opts.diseqc_after_burst = 15;
|
||||||
|
opts.diseqc_after_tone = 0;
|
||||||
|
opts.diseqc_committed_no = 1;
|
||||||
|
+ opts.diseqc_multi = -1;
|
||||||
|
opts.nopm = 0;
|
||||||
|
opts.lnb_low = (9750*1000UL);
|
||||||
|
opts.lnb_high = (10600*1000UL);
|
||||||
|
@@ -482,7 +489,7 @@ void set_options(int argc, char *argv[])
|
||||||
#ifdef AXE
|
#ifdef AXE
|
||||||
opts.no_threads = 1;
|
opts.no_threads = 1;
|
||||||
opts.axe_skippkt = 35;
|
opts.axe_skippkt = 35;
|
||||||
@ -1222,7 +1380,29 @@ index e6e2254..bdb96d5 100755
|
|||||||
#define AXE_OPTS "7:QW:M:8:A:"
|
#define AXE_OPTS "7:QW:M:8:A:"
|
||||||
#else
|
#else
|
||||||
#define AXE_OPTS ""
|
#define AXE_OPTS ""
|
||||||
@@ -830,7 +830,6 @@ int read_rtsp(sockets * s)
|
@@ -491,7 +498,7 @@ void set_options(int argc, char *argv[])
|
||||||
|
memset(opts.playlist, 0, sizeof(opts.playlist));
|
||||||
|
|
||||||
|
while ((opt = getopt_long(argc, argv,
|
||||||
|
- "flr:a:td:w:p:s:n:hB:b:H:m:p:e:x:u:j:o:gy:i:q:D:VR:S:TX:Y:OL:EP:Z:"AXE_OPTS,
|
||||||
|
+ "flr:a:td:w:p:s:n:hB:b:H:m:p:e:x:u:j:o:gy:i:q:D:VR:S:TX:Y:OL:EP:Z:0:"AXE_OPTS,
|
||||||
|
long_options, NULL)) != -1)
|
||||||
|
{
|
||||||
|
// printf("options %d %c %s\n",opt,opt,optarg);
|
||||||
|
@@ -651,6 +658,12 @@ void set_options(int argc, char *argv[])
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ case DISEQC_MULTI:
|
||||||
|
+ {
|
||||||
|
+ set_diseqc_multi(optarg);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
case LNB_OPT:
|
||||||
|
{
|
||||||
|
set_lnb_adapters(optarg);
|
||||||
|
@@ -830,7 +843,6 @@ int read_rtsp(sockets * s)
|
||||||
int sess_id = 0;
|
int sess_id = 0;
|
||||||
int end = s->type == TYPE_HTTP;
|
int end = s->type == TYPE_HTTP;
|
||||||
char buf[2000];
|
char buf[2000];
|
||||||
@ -1230,7 +1410,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
streams *sid = get_sid(s->sid);
|
streams *sid = get_sid(s->sid);
|
||||||
|
|
||||||
if (s->buf[0] == 0x24 && s->buf[1] < 2)
|
if (s->buf[0] == 0x24 && s->buf[1] < 2)
|
||||||
@@ -850,7 +849,7 @@ int read_rtsp(sockets * s)
|
@@ -850,7 +862,7 @@ int read_rtsp(sockets * s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1239,7 +1419,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
{
|
{
|
||||||
if (s->rlen > RBUF - 10)
|
if (s->rlen > RBUF - 10)
|
||||||
{
|
{
|
||||||
@@ -1024,7 +1023,7 @@ int read_rtsp(sockets * s)
|
@@ -1024,7 +1036,7 @@ int read_rtsp(sockets * s)
|
||||||
arg[1], getTick(), (getTickUs() / 1000000));
|
arg[1], getTick(), (getTickUs() / 1000000));
|
||||||
}
|
}
|
||||||
if (buf[0] == 0 && sid->type == STREAM_HTTP)
|
if (buf[0] == 0 && sid->type == STREAM_HTTP)
|
||||||
@ -1248,7 +1428,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
http_response(s, 200, buf, NULL, cseq, 0, end);
|
http_response(s, 200, buf, NULL, cseq, 0, end);
|
||||||
}
|
}
|
||||||
else if (strncmp(arg[0], "TEARDOWN", 8) == 0)
|
else if (strncmp(arg[0], "TEARDOWN", 8) == 0)
|
||||||
@@ -1066,6 +1065,8 @@ int read_rtsp(sockets * s)
|
@@ -1066,6 +1078,8 @@ int read_rtsp(sockets * s)
|
||||||
|
|
||||||
#define REPLY_AND_RETURN(c) {http_response (s, c, NULL, NULL, 0, 0, 1); return 0;}
|
#define REPLY_AND_RETURN(c) {http_response (s, c, NULL, NULL, 0, 0, 1); return 0;}
|
||||||
|
|
||||||
@ -1257,7 +1437,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
char uuid[100];
|
char uuid[100];
|
||||||
int uuidi;
|
int uuidi;
|
||||||
struct sockaddr_in ssdp_sa;
|
struct sockaddr_in ssdp_sa;
|
||||||
@@ -1096,7 +1097,7 @@ int read_http(sockets * s)
|
@@ -1096,7 +1110,7 @@ int read_http(sockets * s)
|
||||||
"<satip:X_SATIPCAP xmlns:satip=\"urn:ses-com:satip\">%s</satip:X_SATIPCAP>"
|
"<satip:X_SATIPCAP xmlns:satip=\"urn:ses-com:satip\">%s</satip:X_SATIPCAP>"
|
||||||
"%s"
|
"%s"
|
||||||
"</device></root>";
|
"</device></root>";
|
||||||
@ -1266,7 +1446,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
{
|
{
|
||||||
if (s->rlen > RBUF - 10)
|
if (s->rlen > RBUF - 10)
|
||||||
{
|
{
|
||||||
@@ -1114,7 +1115,7 @@ int read_http(sockets * s)
|
@@ -1114,7 +1128,7 @@ int read_http(sockets * s)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
url[0] = 0;
|
url[0] = 0;
|
||||||
@ -1275,7 +1455,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
if(space)
|
if(space)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
@@ -1134,6 +1135,8 @@ int read_http(sockets * s)
|
@@ -1134,6 +1148,8 @@ int read_http(sockets * s)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1284,7 +1464,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
if(!strncasecmp((const char*) s->buf, "HEAD ", 5))
|
if(!strncasecmp((const char*) s->buf, "HEAD ", 5))
|
||||||
is_head = 1;
|
is_head = 1;
|
||||||
|
|
||||||
@@ -1149,13 +1152,11 @@ int read_http(sockets * s)
|
@@ -1149,13 +1165,11 @@ int read_http(sockets * s)
|
||||||
|
|
||||||
split(arg, (char*) s->buf, 50, ' ');
|
split(arg, (char*) s->buf, 50, ' ');
|
||||||
// LOG("args: %s -> %s -> %s",arg[0],arg[1],arg[2]);
|
// LOG("args: %s -> %s -> %s",arg[0],arg[1],arg[2]);
|
||||||
@ -1299,7 +1479,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
if (strcmp(arg[1], "/"DESC_XML) == 0)
|
if (strcmp(arg[1], "/"DESC_XML) == 0)
|
||||||
{
|
{
|
||||||
extern int tuner_s2, tuner_t, tuner_c, tuner_t2, tuner_c2;
|
extern int tuner_s2, tuner_t, tuner_c, tuner_t2, tuner_c2;
|
||||||
@@ -1179,11 +1180,29 @@ int read_http(sockets * s)
|
@@ -1179,11 +1193,29 @@ int read_http(sockets * s)
|
||||||
snprintf(buf, sizeof(buf), xml, app_name, app_name, app_name, uuid,
|
snprintf(buf, sizeof(buf), xml, app_name, app_name, app_name, uuid,
|
||||||
opts.http_host, adapters, opts.playlist);
|
opts.http_host, adapters, opts.playlist);
|
||||||
sprintf(headers,
|
sprintf(headers,
|
||||||
@ -1330,7 +1510,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
// process file from html directory, the images are just sent back
|
// process file from html directory, the images are just sent back
|
||||||
|
|
||||||
if (!strcmp(arg[1], "/"))
|
if (!strcmp(arg[1], "/"))
|
||||||
@@ -1206,8 +1225,7 @@ int read_http(sockets * s)
|
@@ -1206,8 +1238,7 @@ int read_http(sockets * s)
|
||||||
http_response(s, 200, ctype, NULL, 0, 0, 1);
|
http_response(s, 200, ctype, NULL, 0, 0, 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1340,7 +1520,7 @@ index e6e2254..bdb96d5 100755
|
|||||||
{
|
{
|
||||||
http_response(s, 200, ctype, f, 0, nl, 1);
|
http_response(s, 200, ctype, f, 0, nl, 1);
|
||||||
closefile(f, nl);
|
closefile(f, nl);
|
||||||
@@ -1433,7 +1451,7 @@ pthread_t main_tid;
|
@@ -1433,7 +1464,7 @@ pthread_t main_tid;
|
||||||
extern int sock_signal;
|
extern int sock_signal;
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -1350,18 +1530,29 @@ index e6e2254..bdb96d5 100755
|
|||||||
thread_name = "main";
|
thread_name = "main";
|
||||||
set_options(argc, argv);
|
set_options(argc, argv);
|
||||||
diff --git a/minisatip.h b/minisatip.h
|
diff --git a/minisatip.h b/minisatip.h
|
||||||
index a242532..5f67288 100644
|
index a242532..55cd5e5 100644
|
||||||
--- a/minisatip.h
|
--- a/minisatip.h
|
||||||
+++ b/minisatip.h
|
+++ b/minisatip.h
|
||||||
@@ -10,7 +10,7 @@
|
@@ -8,9 +8,9 @@
|
||||||
|
#include "utils.h"
|
||||||
|
|
||||||
#define VERSION_BUILD "4"
|
|
||||||
|
-#define VERSION_BUILD "4"
|
||||||
|
+#define VERSION_BUILD "5"
|
||||||
#define CC(a,b,c) #a b #c
|
#define CC(a,b,c) #a b #c
|
||||||
-#define VERSION CC(0.7.,VERSION_BUILD,)
|
-#define VERSION CC(0.7.,VERSION_BUILD,)
|
||||||
+#define VERSION CC(0.7.,VERSION_BUILD,-axe204)
|
+#define VERSION CC(0.7.,VERSION_BUILD,-axe204)
|
||||||
|
|
||||||
void set_options (int argc, char *argv[]);
|
void set_options (int argc, char *argv[]);
|
||||||
|
|
||||||
|
@@ -77,6 +77,7 @@ struct struct_opts
|
||||||
|
int diseqc_after_switch;
|
||||||
|
int diseqc_after_burst;
|
||||||
|
int diseqc_after_tone;
|
||||||
|
+ int diseqc_multi;
|
||||||
|
int lnb_low, lnb_high, lnb_switch, lnb_circular;
|
||||||
|
int nopm;
|
||||||
|
int max_pids;
|
||||||
diff --git a/satipc.c b/satipc.c
|
diff --git a/satipc.c b/satipc.c
|
||||||
index c16f5ef..e08d80f 100755
|
index c16f5ef..e08d80f 100755
|
||||||
--- a/satipc.c
|
--- a/satipc.c
|
||||||
|
Loading…
Reference in New Issue
Block a user