diff --git a/src/input/mpegts/linuxdvb/linuxdvb_private.h b/src/input/mpegts/linuxdvb/linuxdvb_private.h index 38bb2b0c..a0c8a4b6 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_private.h +++ b/src/input/mpegts/linuxdvb/linuxdvb_private.h @@ -140,6 +140,7 @@ struct linuxdvb_satconf * LNB settings */ int ls_lnb_poweroff; + uint32_t ls_max_rotor_move; /* * Position diff --git a/src/input/mpegts/linuxdvb/linuxdvb_rotor.c b/src/input/mpegts/linuxdvb/linuxdvb_rotor.c index e83ad681..65477fa0 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_rotor.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_rotor.c @@ -138,7 +138,7 @@ linuxdvb_rotor_grace int newpos, curpos, delta; if (!ls->ls_orbital_dir || lr->lr_rate == 0) - return 120; + return ls->ls_max_rotor_move; if (idnode_is_instance(&lr->ld_id, &linuxdvb_rotor_gotox_class)) newpos = lr->lr_position; /* GotoX */ diff --git a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c index 41ad0de8..76738bc4 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_satconf.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_satconf.c @@ -231,6 +231,14 @@ const idclass_t linuxdvb_satconf_class = .opts = PO_ADVANCED, .def.i = 1 }, + { + .type = PT_U32, + .id = "max_rotor_move", + .name = "Max Rotor Movement (seconds)", + .off = offsetof(linuxdvb_satconf_t, ls_max_rotor_move), + .opts = PO_ADVANCED, + .def.u32 = 120 + }, {} } }; @@ -745,6 +753,8 @@ linuxdvb_satconf_create ls->ls_type = lst->type; TAILQ_INIT(&ls->ls_elements); + ls->ls_max_rotor_move = 120; + /* Create node */ if (idnode_insert(&ls->ls_id, uuid, lst->idc, 0)) { free(ls);