From 604ff922fa820f6559d2652cd22ab8849d1f4e12 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 3 Oct 2014 11:01:37 +0200 Subject: [PATCH] mpegts service: use dvb_network_get_orbital_pos() in the picons code for dvb-s --- src/input/mpegts/mpegts_network_dvb.c | 2 ++ src/input/mpegts/mpegts_service.c | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/input/mpegts/mpegts_network_dvb.c b/src/input/mpegts/mpegts_network_dvb.c index f2237218..cebf472d 100644 --- a/src/input/mpegts/mpegts_network_dvb.c +++ b/src/input/mpegts/mpegts_network_dvb.c @@ -650,6 +650,8 @@ int dvb_network_get_orbital_pos mpegts_mux_t *mm; dvb_mux_t *lm = NULL; + if (!mn) + return -1; LIST_FOREACH(mm, &ln->mn_muxes, mm_network_link) { lm = (dvb_mux_t *)mm; if (lm->lm_tuning.u.dmc_fe_qpsk.orbital_dir) diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index 7ca500ae..e1dba191 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -408,14 +408,14 @@ mpegts_service_channel_icon ( service_t *s ) int32_t hash = 0; static __thread char buf[128]; dvb_mux_t *mmd = (dvb_mux_t*)ms->s_dvb_mux; + char dir; + int pos; switch ( mmd->lm_tuning.dmc_fe_type) { case DVB_TYPE_S: - if (mmd->lm_tuning.u.dmc_fe_qpsk.orbital_dir == 'E') - hash = mmd->lm_tuning.u.dmc_fe_qpsk.orbital_pos; - else - hash = 0xFFFF - mmd->lm_tuning.u.dmc_fe_qpsk.orbital_pos; - hash <<= 16; + if (dvb_network_get_orbital_pos(mmd->mm_network, &pos, &dir) < 0) + return NULL; + hash = (dir == 'E' ? pos : 0xFFFF - pos) << 16; break; case DVB_TYPE_C: hash = 0xFFFF0000;