*************** *** 864,883 **** return false; } - dvb_fe_params params; - if (ioctl(fd_frontend, FE_GET_FRONTEND, ¶ms) < 0) { VERBOSE(VB_IMPORTANT, LOC_ERR + "Getting Frontend tuning parameters failed." + ENO); return false; } - - uint mplex = tuning.mplex; - QString sistandard = QDeepCopy(tuning.sistandard); - - tuning = dvbparams_to_dtvmultiplex(card_type, params); - tuning.mplex = mplex; tuning.sistandard = sistandard; --- 920,955 ---- return false; } + #ifdef DVB_API_MULTIPROTO + + uint mplex; + QString sistandard; + if (card_type == DTVTunerType::kTunerTypeQPSK || card_type == DTVTunerType::kTunerTypeDVB_S2){ + struct dvbfe_params params; + if (ioctl(fd_frontend, DVBFE_GET_PARAMS, ¶ms) < 0){ + VERBOSE(VB_IMPORTANT, LOC_ERR + + "Getting Frontend (multiproto) tuning parameters failed." + ENO); + + return false; + } + mplex = tuning.mplex; + sistandard = QDeepCopy(tuning.sistandard); + tuning = dvbparams_to_dtvmultiplex(params); + } + else + #endif { + struct dvb_frontend_parameters params; + if (ioctl(fd_frontend, FE_GET_FRONTEND, ¶ms) < 0){ VERBOSE(VB_IMPORTANT, LOC_ERR + "Getting Frontend tuning parameters failed." + ENO); return false; + } + mplex = tuning.mplex; + sistandard = QDeepCopy(tuning.sistandard); + tuning = dvbparams_to_dtvmultiplex(card_type, params); } tuning.mplex = mplex; tuning.sistandard = sistandard;