diff --git a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.h b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.h
index 3df7ac9..fe072d9 100644
|
a
|
b
|
typedef vector<DVBMainStreamListener*> dvb_main_listener_vec_t;
|
| 18 | 20 | typedef vector<DVBOtherStreamListener*> dvb_other_listener_vec_t; |
| 19 | 21 | typedef vector<DVBEITStreamListener*> dvb_eit_listener_vec_t; |
| 20 | 22 | |
| 21 | | typedef QMap<uint, bool> dvb_has_eit_t; |
| 22 | | |
| 23 | 23 | class DVBStreamData : virtual public MPEGStreamData |
| 24 | 24 | { |
| 25 | 25 | public: |
| … |
… |
class DVBStreamData : virtual public MPEGStreamData
|
| 43 | 43 | // EIT info/processing |
| 44 | 44 | inline void SetDishNetEIT(bool); |
| 45 | 45 | inline bool HasAnyEIT(void) const; |
| 46 | | inline bool HasEIT(uint serviceid) const; |
| 47 | 46 | bool HasEITPIDChanges(const uint_vec_t &in_use_pids) const; |
| 48 | 47 | bool GetEITPIDChanges(const uint_vec_t &in_use_pids, |
| 49 | 48 | uint_vec_t &add_pids, |
| … |
… |
class DVBStreamData : virtual public MPEGStreamData
|
| 215 | 214 | /// Decode DishNet's long-term DVB EIT |
| 216 | 215 | bool _dvb_eit_dishnet_long; |
| 217 | 216 | /// Tell us if the DVB service has EIT |
| 218 | | dvb_has_eit_t _dvb_has_eit; |
| | 217 | bool _dvb_has_eit; |
| 219 | 218 | |
| 220 | 219 | // Signals |
| 221 | 220 | dvb_main_listener_vec_t _dvb_main_listeners; |
| … |
… |
inline void DVBStreamData::SetDishNetEIT(bool use_dishnet_eit)
|
| 254 | 257 | inline bool DVBStreamData::HasAnyEIT(void) const |
| 255 | 258 | { |
| 256 | 259 | QMutexLocker locker(&_listener_lock); |
| 257 | | return _dvb_has_eit.size(); |
| 258 | | } |
| 259 | | |
| 260 | | inline bool DVBStreamData::HasEIT(uint serviceid) const |
| 261 | | { |
| 262 | | QMutexLocker locker(&_listener_lock); |
| 263 | | |
| 264 | | dvb_has_eit_t::const_iterator it = _dvb_has_eit.find(serviceid); |
| 265 | | if (it != _dvb_has_eit.end()) |
| 266 | | return *it; |
| 267 | | |
| 268 | | return false; |
| | 260 | return _dvb_has_eit; |
| 269 | 261 | } |
| 270 | 262 | |
| 271 | 263 | #endif // DVBSTREAMDATA_H_ |
diff --git a/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp b/mythtv/libs/libmythtv/mpeg/dvbstreamdata.cpp
index d12f177..113b1b5 100644
|
a
|
b
|
DVBStreamData::~DVBStreamData()
|
| 37 | 40 | _dvb_main_listeners.clear(); |
| 38 | 41 | _dvb_other_listeners.clear(); |
| 39 | 42 | _dvb_eit_listeners.clear(); |
| 40 | | _dvb_has_eit.clear(); |
| | 43 | _dvb_has_eit = false; |
| 41 | 44 | } |
| 42 | 45 | |
| 43 | 46 | void DVBStreamData::SetDesiredService(uint netid, uint tsid, int serviceid) |
| … |
… |
void DVBStreamData::ProcessSDT(uint tsid, const ServiceDescriptionTable *sdt)
|
| 398 | 433 | { |
| 399 | 434 | QMutexLocker locker(&_listener_lock); |
| | 435 | uint i; |
| 400 | 436 | |
| 401 | | for (uint i = 0; i < sdt->ServiceCount(); i++) |
| 402 | | { |
| 403 | | if (sdt->HasEITSchedule(i) || sdt->HasEITPresentFollowing(i)) |
| 404 | | _dvb_has_eit[sdt->ServiceID(i)] = true; |
| 405 | | } |
| | 437 | for (i = 0; (i < sdt->ServiceCount() && |
| | 438 | !sdt->HasEITSchedule(i) && |
| | 439 | !sdt->HasEITPresentFollowing(i)); i++); |
| | 440 | _dvb_has_eit = i < sdt->ServiceCount(); |
| 406 | 441 | |
| 407 | 442 | for (uint i = 0; i < _dvb_main_listeners.size(); i++) |
| 408 | 443 | _dvb_main_listeners[i]->HandleSDT(tsid, sdt); |