Ticket #6340: DVBStreamHandler_replaceQMap.diff
File DVBStreamHandler_replaceQMap.diff, 4.9 KB (added by , 15 years ago) |
---|
-
mythtv/libs/libmythtv/dvbstreamhandler.h
6 6 #include <vector> 7 7 using namespace std; 8 8 9 #include <qmap.h> 10 #include <qmutex.h> 9 #include <QMap> 10 #include <QHash> 11 #include <QMutex> 11 12 12 13 #include "util.h" 13 14 #include "DeviceReadBuffer.h" … … 19 20 class DVBChannel; 20 21 class DeviceReadBuffer; 21 22 22 typedef QMap<uint,int> FilterMap;23 24 23 //#define RETUNE_TIMEOUT 5000 25 24 26 25 class PIDInfo … … 119 118 vector<MPEGStreamData*> _stream_data_list; 120 119 121 120 // for caching TS monitoring supported value. 122 static QMutex _rec_supports_ts_monitoring_lock;123 static Q Map<QString,bool> _rec_supports_ts_monitoring;121 static QMutex _rec_supports_ts_monitoring_lock; 122 static QHash<QString,bool> _rec_supports_ts_monitoring; 124 123 125 124 // for implementing Get & Return 126 static QMutex _handlers_lock;127 static Q Map<QString,DVBStreamHandler*> _handlers;128 static Q Map<QString,uint> _handlers_refcnt;125 static QMutex _handlers_lock; 126 static QHash<QString,DVBStreamHandler*> _handlers; 127 static QHash<QString,uint> _handlers_refcnt; 129 128 }; 130 129 131 130 #endif // _DVBSTREAMHANDLER_H_ -
mythtv/libs/libmythtv/dvbstreamhandler.cpp
10 10 #include <sys/ioctl.h> 11 11 12 12 // Qt headers 13 #include <qstring.h> 13 #include <QString> 14 #include <QHash> 14 15 15 16 // MythTV headers 16 17 #include "dvbstreamhandler.h" … … 26 27 #define LOC_WARN QString("DVBSH(%1) Warning: ").arg(_dvb_dev) 27 28 #define LOC_ERR QString("DVBSH(%1) Error: ").arg(_dvb_dev) 28 29 29 Q Map<QString,bool> DVBStreamHandler::_rec_supports_ts_monitoring;30 QMutex DVBStreamHandler::_rec_supports_ts_monitoring_lock;30 QHash<QString,bool> DVBStreamHandler::_rec_supports_ts_monitoring; 31 QMutex DVBStreamHandler::_rec_supports_ts_monitoring_lock; 31 32 32 Q Map<QString,DVBStreamHandler*> DVBStreamHandler::_handlers;33 Q Map<QString,uint> DVBStreamHandler::_handlers_refcnt;34 QMutex DVBStreamHandler::_handlers_lock;33 QHash<QString,DVBStreamHandler*> DVBStreamHandler::_handlers; 34 QHash<QString,uint> DVBStreamHandler::_handlers_refcnt; 35 QMutex DVBStreamHandler::_handlers_lock; 35 36 36 37 DVBStreamHandler *DVBStreamHandler::Get(const QString &dvb_device) 37 38 { 38 39 QMutexLocker locker(&_handlers_lock); 39 40 40 Q Map<QString,DVBStreamHandler*>::iterator it =41 QHash<QString,DVBStreamHandler*>::iterator it = 41 42 _handlers.find(dvb_device); 42 43 43 44 if (it == _handlers.end()) … … 59 60 60 61 QString dvb_dev = ref->_dvb_dev; 61 62 62 Q Map<QString,uint>::iterator rit = _handlers_refcnt.find(dvb_dev);63 QHash<QString,uint>::iterator rit = _handlers_refcnt.find(dvb_dev); 63 64 if (rit == _handlers_refcnt.end()) 64 65 return; 65 66 … … 69 70 return; 70 71 } 71 72 72 Q Map<QString,DVBStreamHandler*>::iterator it = _handlers.find(dvb_dev);73 QHash<QString,DVBStreamHandler*>::iterator it = _handlers.find(dvb_dev); 73 74 if ((it != _handlers.end()) && (*it == ref)) 74 75 { 75 76 ref = NULL; … … 482 483 void DVBStreamHandler::CycleFiltersByPriority(void) 483 484 { 484 485 QMutexLocker writing_locker(&_pid_lock); 485 Q Map<PIDPriority, pid_list_t> priority_queue;486 Q Map<PIDPriority, uint> priority_open_cnt;486 QHash<PIDPriority, pid_list_t> priority_queue; 487 QHash<PIDPriority, uint> priority_open_cnt; 487 488 488 489 PIDInfoMap::const_iterator cit = _pid_info.begin(); 489 490 for (; cit != _pid_info.end(); ++cit) … … 494 495 priority_open_cnt[priority]++; 495 496 } 496 497 497 Q Map<PIDPriority, pid_list_t>::iterator it = priority_queue.begin();498 QHash<PIDPriority, pid_list_t>::iterator it = priority_queue.begin(); 498 499 for (; it != priority_queue.end(); ++it) 499 500 sort((*it).begin(), (*it).end()); 500 501 … … 677 678 _stream_data_list[i]->GetPIDs(pids); 678 679 } 679 680 680 Q Map<uint, PIDInfo*> add_pids;681 QHash<uint, PIDInfo*> add_pids; 681 682 vector<uint> del_pids; 682 683 683 684 { … … 711 712 ok &= RemovePIDFilter(*dit); 712 713 713 714 // Add PIDs 714 Q Map<uint, PIDInfo*>::iterator ait = add_pids.begin();715 QHash<uint, PIDInfo*>::iterator ait = add_pids.begin(); 715 716 for (; ait != add_pids.end(); ++ait) 716 717 ok &= AddPIDFilter(*ait); 717 718 … … 787 788 788 789 { 789 790 QMutexLocker locker(&_rec_supports_ts_monitoring_lock); 790 Q Map<QString,bool>::const_iterator it;791 QHash<QString,bool>::const_iterator it; 791 792 it = _rec_supports_ts_monitoring.find(_dvb_dev); 792 793 if (it != _rec_supports_ts_monitoring.end()) 793 794 return *it;