From c4ce18c47dcbfde56c714790b4c41b50f6f12f30 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 14 Dec 2014 11:20:13 +0100 Subject: [PATCH] linuxdvb: do not send switch command twice for rotor, add 'Switch Then Rotor' config --- src/input/mpegts/linuxdvb/linuxdvb_private.h | 1 + src/input/mpegts/linuxdvb/linuxdvb_satconf.c | 14 +++++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/input/mpegts/linuxdvb/linuxdvb_private.h b/src/input/mpegts/linuxdvb/linuxdvb_private.h index 5fb7fb2e..0826f000 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_private.h +++ b/src/input/mpegts/linuxdvb/linuxdvb_private.h @@ -136,6 +136,7 @@ struct linuxdvb_satconf gtimer_t ls_diseqc_timer; int ls_diseqc_idx; int ls_diseqc_repeats; + int ls_switch_rotor; /* * LNB settings diff --git a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c index 91b6a85e..90d49a4b 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c @@ -231,6 +231,13 @@ const idclass_t linuxdvb_satconf_class = .opts = PO_ADVANCED, .def.i = 1 }, + { + .type = PT_BOOL, + .id = "switch_rotor", + .name = "Switch Then Rotor", + .off = offsetof(linuxdvb_satconf_t, ls_switch_rotor), + .opts = PO_ADVANCED, + }, { .type = PT_U32, .id = "max_rotor_move", @@ -659,9 +666,10 @@ linuxdvb_satconf_ele_tune ( linuxdvb_satconf_ele_t *lse ) linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)ls->ls_frontend; dvb_mux_t *lm = (dvb_mux_t*)mmi->mmi_mux; linuxdvb_diseqc_t *lds[] = { - lse->lse_rotor ? (linuxdvb_diseqc_t*)lse->lse_switch : NULL, - (linuxdvb_diseqc_t*)lse->lse_rotor, - (linuxdvb_diseqc_t*)lse->lse_switch, + ls->ls_switch_rotor ? (linuxdvb_diseqc_t*)lse->lse_switch : + (linuxdvb_diseqc_t*)lse->lse_rotor, + ls->ls_switch_rotor ? (linuxdvb_diseqc_t*)lse->lse_rotor : + (linuxdvb_diseqc_t*)lse->lse_switch, (linuxdvb_diseqc_t*)lse->lse_en50494, (linuxdvb_diseqc_t*)lse->lse_lnb };