bool DVBStreamData::HasEITPIDChanges(const uint_vec_t &in_use_pids) const { QMutexLocker locker(&_listener_lock); bool want_eit = (_eit_rate >= 0.5f) && HasAnyEIT(); bool has_eit = in_use_pids.size(); return want_eit != has_eit; }
bool DVBStreamData::GetEITPIDChanges(const uint_vec_t &cur_pids, uint_vec_t &add_pids, uint_vec_t &del_pids) const { QMutexLocker locker(&_listener_lock); if ((_eit_rate >= 0.5f) && HasAnyEIT()) { if (find(cur_pids.begin(), cur_pids.end(), (uint) DVB_EIT_PID) == cur_pids.end()) { add_pids.push_back(DVB_EIT_PID); } if (_dvb_eit_dishnet_long && find(cur_pids.begin(), cur_pids.end(), (uint) DVB_DNLONG_EIT_PID) == cur_pids.end()) { add_pids.push_back(DVB_DNLONG_EIT_PID); } if (_dvb_eit_dishnet_long && find(cur_pids.begin(), cur_pids.end(), (uint) DVB_BVLONG_EIT_PID) == cur_pids.end()) { add_pids.push_back(DVB_BVLONG_EIT_PID); } if (_desired_netid == PREMIERE_ONID && find(cur_pids.begin(), cur_pids.end(), (uint) PREMIERE_EIT_DIREKT_PID) == cur_pids.end()) { add_pids.push_back(PREMIERE_EIT_DIREKT_PID); } if (_desired_netid == PREMIERE_ONID && find(cur_pids.begin(), cur_pids.end(), (uint) PREMIERE_EIT_SPORT_PID) == cur_pids.end()) { add_pids.push_back(PREMIERE_EIT_SPORT_PID); } if (find(cur_pids.begin(), cur_pids.end(), (uint) FREESAT_EIT_PID) == cur_pids.end()) { add_pids.push_back(FREESAT_EIT_PID); } if (MCA_ONID == _desired_netid && MCA_EIT_TSID == _desired_tsid && find(cur_pids.begin(), cur_pids.end(), (uint) MCA_EIT_PID) == cur_pids.end()) { add_pids.push_back(MCA_EIT_PID); } } else { if (find(cur_pids.begin(), cur_pids.end(), (uint) DVB_EIT_PID) != cur_pids.end()) { del_pids.push_back(DVB_EIT_PID); } if (_dvb_eit_dishnet_long && find(cur_pids.begin(), cur_pids.end(), (uint) DVB_DNLONG_EIT_PID) != cur_pids.end()) { del_pids.push_back(DVB_DNLONG_EIT_PID); } if (_dvb_eit_dishnet_long && find(cur_pids.begin(), cur_pids.end(), (uint) DVB_BVLONG_EIT_PID) != cur_pids.end()) { del_pids.push_back(DVB_BVLONG_EIT_PID); } if (_desired_netid == PREMIERE_ONID && find(cur_pids.begin(), cur_pids.end(), (uint) PREMIERE_EIT_DIREKT_PID) != cur_pids.end()) { del_pids.push_back(PREMIERE_EIT_DIREKT_PID); } if (_desired_netid == PREMIERE_ONID && find(cur_pids.begin(), cur_pids.end(), (uint) PREMIERE_EIT_SPORT_PID) != cur_pids.end()) { del_pids.push_back(PREMIERE_EIT_SPORT_PID); } if (find(cur_pids.begin(), cur_pids.end(), (uint) FREESAT_EIT_PID) != cur_pids.end()) { del_pids.push_back(FREESAT_EIT_PID); } if (MCA_ONID == _desired_netid && MCA_EIT_TSID == _desired_tsid && find(cur_pids.begin(), cur_pids.end(), (uint) MCA_EIT_PID) != cur_pids.end()) { del_pids.push_back(MCA_EIT_PID); } } return add_pids.size() || del_pids.size(); }
bool uint_vec_t_comp(const uint_vec_t& a,const uint_vec_t& b) { return a.size()<b.size(); }