diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2021-09-18 08:54:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-18 08:54:22 +0200 |
commit | f514962bd73c324a04eb4771256ad9ec80e73717 (patch) | |
tree | 122ace548f045487ec5f6fad9d3960e5c811578f /src | |
parent | ddbf8af267ff79ed52dfab248f409c21722a7280 (diff) | |
parent | 44170cc85cc2ff4298265a58e07ef2d9004a4c3d (diff) |
Merge pull request #4290 from Be-ing/qmutexlocker
use Qt5/6 QMutex & QMutexLocker compatibility macros
Diffstat (limited to 'src')
26 files changed, 158 insertions, 173 deletions
diff --git a/src/controllers/controllermanager.cpp b/src/controllers/controllermanager.cpp index 48472ae69f..606a45132a 100644 --- a/src/controllers/controllermanager.cpp +++ b/src/controllers/controllermanager.cpp @@ -8,6 +8,7 @@ #include "controllers/midi/portmidienumerator.h" #include "moc_controllermanager.cpp" #include "util/cmdlineargs.h" +#include "util/qtmutex.h" #include "util/time.h" #include "util/trace.h" #ifdef __HSS1394__ @@ -162,7 +163,7 @@ void ControllerManager::slotShutdown() { // Clear m_enumerators before deleting the enumerators to prevent other code // paths from accessing them. - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); QList<ControllerEnumerator*> enumerators = m_enumerators; m_enumerators.clear(); locker.unlock(); @@ -177,7 +178,7 @@ void ControllerManager::slotShutdown() { } void ControllerManager::updateControllerList() { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); if (m_enumerators.isEmpty()) { qWarning() << "updateControllerList called but no enumerators have been added!"; return; @@ -199,14 +200,14 @@ void ControllerManager::updateControllerList() { } QList<Controller*> ControllerManager::getControllers() const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); return m_controllers; } QList<Controller*> ControllerManager::getControllerList(bool bOutputDevices, bool bInputDevices) { qDebug() << "ControllerManager::getControllerList"; - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); QList<Controller*> controllers = m_controllers; locker.unlock(); @@ -294,7 +295,7 @@ void ControllerManager::slotSetUpDevices() { } void ControllerManager::maybeStartOrStopPolling() { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); QList<Controller*> controllers = m_controllers; locker.unlock(); diff --git a/src/engine/cachingreader/cachingreaderworker.cpp b/src/engine/cachingreader/cachingreaderworker.cpp index 3a9fd507a2..515b8d7e9c 100644 --- a/src/engine/cachingreader/cachingreaderworker.cpp +++ b/src/engine/cachingreader/cachingreaderworker.cpp @@ -11,6 +11,7 @@ #include "util/compatibility.h" #include "util/event.h" #include "util/logger.h" +#include "util/qtmutex.h" namespace { @@ -78,7 +79,7 @@ ReaderStatusUpdate CachingReaderWorker::processReadRequest( // WARNING: Always called from a different thread (GUI) void CachingReaderWorker::newTrack(TrackPointer pTrack) { { - QMutexLocker locker(&m_newTrackMutex); + const auto locker = lockMutex(&m_newTrackMutex); m_pNewTrack = pTrack; m_newTrackAvailable = true; } @@ -96,7 +97,7 @@ void CachingReaderWorker::run() { if (m_newTrackAvailable) { TrackPointer pLoadTrack; { // locking scope - QMutexLocker locker(&m_newTrackMutex); + const auto locker = lockMutex(&m_newTrackMutex); pLoadTrack = m_pNewTrack; m_pNewTrack.reset(); m_newTrackAvailable = false; diff --git a/src/engine/controls/cuecontrol.cpp b/src/engine/controls/cuecontrol.cpp index ffd16e752b..a41068631b 100644 --- a/src/engine/controls/cuecontrol.cpp +++ b/src/engine/controls/cuecontrol.cpp @@ -84,12 +84,8 @@ CueControl::CueControl(const QString& group, m_pStopButton(ControlObject::getControl(ConfigKey(group, "stop"))), m_bypassCueSetByPlay(false), m_iNumHotCues(NUM_HOT_CUES), - m_pCurrentSavedLoopControl(nullptr) -#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) - , - m_trackMutex(QMutex::Recursive) -#endif -{ + m_pCurrentSavedLoopControl(nullptr), + m_trackMutex(QT_RECURSIVE_MUTEX_INIT) { // To silence a compiler warning about CUE_MODE_PIONEER. Q_UNUSED(CUE_MODE_PIONEER); createControls(); @@ -418,7 +414,7 @@ void CueControl::detachCue(HotcueControl* pControl) { // via seekOnLoad(). There is the theoretical and pending issue of a delayed control // command intended for the old track that might be performed instead. void CueControl::trackLoaded(TrackPointer pNewTrack) { - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); if (m_pLoadedTrack) { disconnect(m_pLoadedTrack.get(), nullptr, this, nullptr); @@ -532,12 +528,12 @@ void CueControl::seekOnLoad(mixxx::audio::FramePos seekOnLoadPosition) { } void CueControl::cueUpdated() { - //QMutexLocker lock(&m_mutex); + //auto lock = lockMutex(&m_mutex); // We should get a trackCuesUpdated call anyway, so do nothing. } void CueControl::loadCuesFromTrack() { - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); if (!m_pLoadedTrack) { return; } @@ -752,7 +748,7 @@ void CueControl::hotcueSet(HotcueControl* pControl, double value, HotcueSetMode return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); if (!m_pLoadedTrack) { return; } @@ -1095,7 +1091,7 @@ void CueControl::hotcueClear(HotcueControl* pControl, double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); if (!m_pLoadedTrack) { return; } @@ -1111,7 +1107,7 @@ void CueControl::hotcueClear(HotcueControl* pControl, double value) { void CueControl::hotcuePositionChanged( HotcueControl* pControl, double value) { - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); if (!m_pLoadedTrack) { return; } @@ -1198,7 +1194,7 @@ void CueControl::cueSet(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const mixxx::audio::FramePos position = getQuantizedCurrentPosition(); TrackPointer pLoadedTrack = m_pLoadedTrack; lock.unlock(); @@ -1229,7 +1225,7 @@ void CueControl::cueGoto(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); // Seek to cue point const auto mainCuePosition = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( @@ -1251,7 +1247,7 @@ void CueControl::cueGotoAndPlay(double value) { } cueGoto(value); - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); // Start playing if not already // End previewing to not jump back if a sticking finger on a cue @@ -1466,7 +1462,7 @@ void CueControl::cueDefault(double v) { } void CueControl::pause(double v) { - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); //qDebug() << "CueControl::pause()" << v; if (v > 0.0) { m_pPlay->set(0.0); @@ -1474,7 +1470,7 @@ void CueControl::pause(double v) { } void CueControl::playStutter(double v) { - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); //qDebug() << "playStutter" << v; if (v > 0.0) { if (m_pPlay->toBool()) { @@ -1496,7 +1492,7 @@ void CueControl::introStartSet(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const mixxx::audio::FramePos position = getQuantizedCurrentPosition(); if (!position.isValid()) { @@ -1555,7 +1551,7 @@ void CueControl::introStartClear(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto introEndPosition = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pIntroEndPosition->get()); @@ -1596,7 +1592,7 @@ void CueControl::introEndSet(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const mixxx::audio::FramePos position = getQuantizedCurrentPosition(); if (!position.isValid()) { @@ -1655,7 +1651,7 @@ void CueControl::introEndClear(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto introStart = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pIntroStartPosition->get()); @@ -1681,7 +1677,7 @@ void CueControl::introEndActivate(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto introEnd = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pIntroEndPosition->get()); @@ -1699,7 +1695,7 @@ void CueControl::outroStartSet(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const mixxx::audio::FramePos position = getQuantizedCurrentPosition(); if (!position.isValid()) { @@ -1758,7 +1754,7 @@ void CueControl::outroStartClear(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto outroEnd = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pOutroEndPosition->get()); @@ -1784,7 +1780,7 @@ void CueControl::outroStartActivate(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto outroStart = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pOutroStartPosition->get()); @@ -1802,7 +1798,7 @@ void CueControl::outroEndSet(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const mixxx::audio::FramePos position = getQuantizedCurrentPosition(); if (!position.isValid()) { @@ -1861,7 +1857,7 @@ void CueControl::outroEndClear(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto outroStart = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pOutroStartPosition->get()); @@ -1887,7 +1883,7 @@ void CueControl::outroEndActivate(double value) { return; } - QMutexLocker lock(&m_trackMutex); + auto lock = lockMutex(&m_trackMutex); const auto outroEnd = mixxx::audio::FramePos::fromEngineSamplePosMaybeInvalid( m_pOutroEndPosition->get()); diff --git a/src/engine/controls/cuecontrol.h b/src/engine/controls/cuecontrol.h index bcaf81629e..2d26732f91 100644 --- a/src/engine/controls/cuecontrol.h +++ b/src/engine/controls/cuecontrol.h @@ -12,6 +12,7 @@ #include "track/cue.h" #include "track/track_decl.h" #include "util/parented_ptr.h" +#include "util/qtmutex.h" #define NUM_HOT_CUES 37 @@ -348,11 +349,7 @@ class CueControl : public EngineControl { QMap<QObject*, int> m_controlMap; // Must be locked when using the m_pLoadedTrack and it's properties -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) - QRecursiveMutex m_trackMutex; -#else - QMutex m_trackMutex; -#endif + QT_RECURSIVE_MUTEX m_trackMutex; TrackPointer m_pLoadedTrack; // is written from an engine worker thread friend class HotcueControlTest; diff --git a/src/engine/engineworkerscheduler.cpp b/src/engine/engineworkerscheduler.cpp index 9f3a3ad7f6..120ff794ad 100644 --- a/src/engine/engineworkerscheduler.cpp +++ b/src/engine/engineworkerscheduler.cpp @@ -5,6 +5,7 @@ #include "engine/engineworker.h" #include "moc_engineworkerscheduler.cpp" #include "util/event.h" +#include "util/qtmutex.h" EngineWorkerScheduler::EngineWorkerScheduler(QObject* pParent) : m_bWakeScheduler(false), @@ -24,7 +25,7 @@ void EngineWorkerScheduler::workerReady() { void EngineWorkerScheduler::addWorker(EngineWorker* pWorker) { DEBUG_ASSERT(pWorker); - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); m_workers.push_back(pWorker); } @@ -43,14 +44,14 @@ void EngineWorkerScheduler::run() { while (!m_bQuit) { Event::start(tag); { - QMutexLocker lock(&m_mutex); + const auto locker = lockMutex(&m_mutex); for(const auto& pWorker: m_workers) { pWorker->wakeIfReady(); } } Event::end(tag); { - QMutexLocker lock(&m_mutex); + const auto lock = lockMutex(&m_mutex); if (!m_bQuit) { // Wait for next runWorkers() call m_waitCondition.wait(&m_mutex); // unlock mutex and wait diff --git a/src/errordialoghandler.cpp b/src/errordialoghandler.cpp index abea6f618e..276e898632 100644 --- a/src/errordialoghandler.cpp +++ b/src/errordialoghandler.cpp @@ -8,6 +8,7 @@ #include "moc_errordialoghandler.cpp" #include "util/assert.h" +#include "util/qtmutex.h" #include "util/versionstore.h" ErrorDialogProperties::ErrorDialogProperties() @@ -115,7 +116,7 @@ bool ErrorDialogHandler::requestErrorDialog(ErrorDialogProperties* props) { } // Skip if a dialog with the same key is already displayed - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); bool keyExists = m_dialogKeys.contains(props->getKey()); locker.unlock(); if (keyExists) { @@ -163,7 +164,7 @@ void ErrorDialogHandler::errorDialog(ErrorDialogProperties* pProps) { // This deletes the msgBox automatically, avoiding a memory leak pMsgBox->setAttribute(Qt::WA_DeleteOnClose, true); - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); // To avoid duplicate dialogs on the same error m_dialogKeys.append(props->m_key); @@ -201,7 +202,7 @@ void ErrorDialogHandler::errorDialog(ErrorDialogProperties* pProps) { } void ErrorDialogHandler::boxClosed(const QString& key, QMessageBox* msgBox) { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); locker.unlock(); QMessageBox::StandardButton whichStdButton = msgBox->standardButton(msgBox->clickedButton()); @@ -215,7 +216,7 @@ void ErrorDialogHandler::boxClosed(const QString& key, QMessageBox* msgBox) { return; } - QMutexLocker locker2(&m_mutex); + const auto locker2 = lockMutex(&m_mutex); if (m_dialogKeys.contains(key)) { if (!m_dialogKeys.removeOne(key)) { qWarning() << "Error dialog key removal from list failed!"; diff --git a/src/library/scanner/scannerglobal.h b/src/library/scanner/scannerglobal.h index ed89f03118..18aaa4ad45 100644 --- a/src/library/scanner/scannerglobal.h +++ b/src/library/scanner/scannerglobal.h @@ -12,6 +12,7 @@ #include "util/cache.h" #include "util/fileaccess.h" #include "util/performancetimer.h" +#include "util/qtmutex.h" #include "util/task.h" class ScannerGlobal { @@ -56,7 +57,7 @@ class ScannerGlobal { bool testAndMarkDirectoryScanned(const QDir& dir) { const QString canonicalPath(dir.canonicalPath()); - QMutexLocker locker(&m_directoriesScannedMutex); + const auto locker = lockMutex(&m_directoriesScannedMutex); if (m_directoriesScanned.contains(canonicalPath)) { return true; } else { @@ -66,7 +67,7 @@ class ScannerGlobal { } void addUnhashedDir(const mixxx::FileAccess& dirAccess) { - QMutexLocker locker(&m_directoriesUnhashedMutex); + const auto locker = lockMutex(&m_directoriesUnhashedMutex); m_directoriesUnhashed.append(dirAccess); } @@ -78,7 +79,7 @@ class ScannerGlobal { // TODO(rryan) test whether tasks should create their own QRegExp. bool isAudioFileSupported(const QString& fileName) const { - QMutexLocker locker(&m_supportedExtensionsMatcherMutex); + const auto locker = lockMutex(&m_supportedExtensionsMatcherMutex); return m_supportedExtensionsMatcher.indexIn(fileName) != -1; } @@ -88,7 +89,7 @@ class ScannerGlobal { // TODO(rryan) test whether tasks should create their own QRegExp. bool isCoverFileSupported(const QString& fileName) const { - QMutexLocker locker(&m_supportedCoverExtensionsMatcherMutex); + const auto locker = lockMutex(&m_supportedCoverExtensionsMatcherMutex); return m_supportedCoverExtensionsMatcher.indexIn(fileName) != -1; } diff --git a/src/mixer/playerinfo.cpp b/src/mixer/playerinfo.cpp index 8d0aa4a31a..3b8085e2dd 100644 --- a/src/mixer/playerinfo.cpp +++ b/src/mixer/playerinfo.cpp @@ -9,6 +9,7 @@ #include "mixer/playermanager.h" #include "moc_playerinfo.cpp" #include "track/track.h" +#include "util/qtmutex.h" namespace { @@ -52,14 +53,14 @@ void PlayerInfo::destroy() { } TrackPointer PlayerInfo::getTrackInfo(const QString& group) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); return m_loadedTrackMap.value(group); } void PlayerInfo::setTrackInfo(const QString& group, const TrackPointer& pTrack) { TrackPointer pOld; { // Scope - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); pOld = m_loadedTrackMap.value(group); m_loadedTrackMap.insert(group, pTrack); } @@ -77,7 +78,7 @@ void PlayerInfo::setTrackInfo(const QString& group, const TrackPointer& pTrack) } bool PlayerInfo::isTrackLoaded(const TrackPointer& pTrack) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); QMapIterator<QString, TrackPointer> it(m_loadedTrackMap); while (it.hasNext()) { it.next(); @@ -89,13 +90,13 @@ bool PlayerInfo::isTrackLoaded(const TrackPointer& pTrack) const { } QMap<QString, TrackPointer> PlayerInfo::getLoadedTracks() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); QMap<QString, TrackPointer> ret = m_loadedTrackMap; return ret; } bool PlayerInfo::isFileLoaded(const QString& track_location) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); QMapIterator<QString, TrackPointer> it(m_loadedTrackMap); while (it.hasNext()) { it.next(); @@ -115,7 +116,7 @@ void PlayerInfo::timerEvent(QTimerEvent* pTimerEvent) { } void PlayerInfo::updateCurrentPlayingDeck() { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); double maxVolume = 0; int maxDeck = -1; diff --git a/src/mixer/playermanager.cpp b/src/mixer/playermanager.cpp index cce731dbaa..a3340cd210 100644 --- a/src/mixer/playermanager.cpp +++ b/src/mixer/playermanager.cpp @@ -43,10 +43,7 @@ PlayerManager::PlayerManager(UserSettingsPointer pConfig, SoundManager* pSoundManager, EffectsManager* pEffectsManager, EngineMaster* pEngine) - : -#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) - m_mutex(QMutex::Recursive), -#endif + : m_mutex(QT_RECURSIVE_MUTEX_INIT), m_pConfig(pConfig), m_pSoundManager(pSoundManager), m_pEffectsManager(pEffectsManager), @@ -84,7 +81,7 @@ PlayerManager::PlayerManager(UserSettingsPointer pConfig, PlayerManager::~PlayerManager() { kLogger.debug() << "Destroying"; - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); m_pSamplerBank->saveSamplerBankToPath( m_pConfig->getSettingsPath() + "/samplers.xml"); @@ -113,7 +110,7 @@ PlayerManager::~PlayerManager() { } void PlayerManager::bindToLibrary(Library* pLibrary) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); connect(pLibrary, &Library::loadTrackToPlayer, this, &PlayerManager::slotLoadTrackToPlayer); connect(pLibrary, &Library::loadTrack, @@ -279,7 +276,7 @@ unsigned int PlayerManager::numPreviewDecks() { } void PlayerManager::slotChangeNumDecks(double v) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); int num = (int)v; VERIFY_OR_DEBUG_ASSERT(num <= kMaxNumberOfDecks) { @@ -309,7 +306,7 @@ void PlayerManager::slotChangeNumDecks(double v) { } void PlayerManager::slotChangeNumSamplers(double v) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); int num = (int)v; if (num < m_samplers.size()) { // The request was invalid -- don't set the value. @@ -324,7 +321,7 @@ void PlayerManager::slotChangeNumSamplers(double v) { } void PlayerManager::slotChangeNumPreviewDecks(double v) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); int num = (int)v; if (num < m_previewDecks.size()) { // The request was invalid -- don't set the value. @@ -338,7 +335,7 @@ void PlayerManager::slotChangeNumPreviewDecks(double v) { } void PlayerManager::slotChangeNumMicrophones(double v) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); int num = (int)v; if (num < m_microphones.size()) { // The request was invalid -- don't set the value. @@ -352,7 +349,7 @@ void PlayerManager::slotChangeNumMicrophones(double v) { } void PlayerManager::slotChangeNumAuxiliaries(double v) { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); int num = (int)v; if (num < m_auxiliaries.size()) { // The request was invalid -- don't set the value. @@ -366,7 +363,7 @@ void PlayerManager::slotChangeNumAuxiliaries(double v) { } void PlayerManager::addDeck() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); double count = m_pCONumDecks->get() + 1; slotChangeNumDecks(count); } @@ -446,7 +443,7 @@ void PlayerManager::loadSamplers() { } void PlayerManager::addSampler() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); double count = m_pCONumSamplers->get() + 1; slotChangeNumSamplers(count); } @@ -480,7 +477,7 @@ void PlayerManager::addSamplerInner() { } void PlayerManager::addPreviewDeck() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); slotChangeNumPreviewDecks(m_pCONumPreviewDecks->get() + 1); } @@ -513,7 +510,7 @@ void PlayerManager::addPreviewDeckInner() { } void PlayerManager::addMicrophone() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); slotChangeNumMicrophones(m_pCONumMicrophones->get() + 1); } @@ -535,7 +532,7 @@ void PlayerManager::addMicrophoneInner() { } void PlayerManager::addAuxiliary() { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); slotChangeNumAuxiliaries(m_pCONumAuxiliaries->get() + 1); } @@ -558,7 +555,7 @@ BaseTrackPlayer* PlayerManager::getPlayer(const QString& group) const { } BaseTrackPlayer* PlayerManager::getPlayer(const ChannelHandle& handle) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); if (m_players.contains(handle)) { return m_players[handle]; @@ -567,7 +564,7 @@ BaseTrackPlayer* PlayerManager::getPlayer(const ChannelHandle& handle) const { } Deck* PlayerManager::getDeck(unsigned int deck) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); VERIFY_OR_DEBUG_ASSERT(deck > 0 && deck <= numDecks()) { qWarning() << "getDeck() called with invalid number:" << deck; return nullptr; @@ -576,7 +573,7 @@ Deck* PlayerManager::getDeck(unsigned int deck) const { } PreviewDeck* PlayerManager::getPreviewDeck(unsigned int libPreviewPlayer) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); if (libPreviewPlayer < 1 || libPreviewPlayer > numPreviewDecks()) { kLogger.warning() << "Warning getPreviewDeck() called with invalid index: " << libPreviewPlayer; @@ -586,7 +583,7 @@ PreviewDeck* PlayerManager::getPreviewDeck(unsigned int libPreviewPlayer) const } Sampler* PlayerManager::getSampler(unsigned int sampler) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); if (sampler < 1 || sampler > numSamplers()) { kLogger.warning() << "Warning getSampler() called with invalid index: " << sampler; @@ -596,7 +593,7 @@ Sampler* PlayerManager::getSampler(unsigned int sampler) const { } Microphone* PlayerManager::getMicrophone(unsigned int microphone) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); if (microphone < 1 || microphone >= static_cast<unsigned int>(m_microphones.size())) { kLogger.warning() << "Warning getMicrophone() called with invalid index: " << microphone; @@ -606,7 +603,7 @@ Microphone* PlayerManager::getMicrophone(unsigned int microphone) const { } Auxiliary* PlayerManager::getAuxiliary(unsigned int auxiliary) const { - QMutexLocker locker(&m_mutex); + const auto locker = lockMutex(&m_mutex); if (auxiliary < 1 || auxiliary > static_cast<unsigned int>(m_auxiliaries.size())) { kLogger.warning() << "Warning getAuxiliary() called with invalid index: " << auxiliary; @@ -685,7 +682,7 @@ void PlayerManager::slotLoadToSampler(const QString& location, int sampler) { } void PlayerManager::slotLoadTrackIntoNextAvailableDeck(TrackPointer pTrack) { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); QList<Deck*>::iterator it = m_decks.begin(); while (it != m_decks.end()) { Deck* pDeck = *it; @@ -704,7 +701,7 @@ void PlayerManager::slotLoadTrackIntoNextAvailableDeck(TrackPointer pTrack) { } void PlayerManager::slotLoadTrackIntoNextAvailableSampler(TrackPointer pTrack) { - QMutexLocker locker(&m_mutex); + auto locker = lockMutex(&m_mutex); QList<Sampler*>::iterator it = m_samplers.begin(); while (it != m_samplers.end()) { Sampler* pSampler = *it; diff --git a/src/mixer/playermanager.h b/src/mixer/playermanager.h index 661579e0ca..f1bba67615 100644 --- a/src/mixer/playermanager.h +++ b/src/mixer/playermanager.h @@ -11,6 +11,7 @@ #include "track/track_decl.h" #include "util/parented_ptr.h" #include "util/performancetimer.h" +#include "util/qtmutex.h" class Auxiliary; class BaseTrackPlayer; @@ -251,11 +252,7 @@ class PlayerManager : public QObject, public PlayerManagerInterface { void addAuxiliaryInner(); // Used to protect access to PlayerManager state across threads. -#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) - mutable QRecursiveMutex m_mutex; -#else - mutable QMutex m_mutex; -#endif + mutable QT_RECURSIVE_MUTEX m_mutex; PerformanceTimer m_cloneTimer; QString m_lastLoadedPlayer; diff --git a/src/track/beatgrid.cpp b/src/track/beatgrid.cpp index ebd4478027..6b4d3758c5 100644 --- a/src/track/beatgrid.cpp +++ b/src/track/beatgrid.cpp @@ -1,6 +1,5 @@ #include "track/beatgrid.h" -#include <QMutexLocker> #include <QtDebug> #include "track/beatutils.h" diff --git a/src/track/beatmap.cpp b/src/track/beatmap.cpp index e82929abbe..d91e21cf43 100644 --- a/src/track/beatmap.cpp +++ b/src/track/beatmap.cpp @@ -7,7 +7,6 @@ #include "track/beatmap.h" -#include <QMutexLocker> #include <QtDebug> #include <QtGlobal> #include <algorithm> diff --git a/src/track/cue.cpp b/src/track/cue.cpp index 74c7e52148..9b50216ec3 100644 --- a/src/track/cue.cpp +++ b/src/track/cue.cpp @@ -9,6 +9,7 @@ #include "util/assert.h" #include "util/color/color.h" #include "util/color/predefinedcolorpalettes.h" +#include "util/qtmutex.h" namespace { @@ -111,7 +112,7 @@ Cue::Cue( mixxx::CueInfo Cue::getCueInfo( mixxx::audio::SampleRate sampleRate) const { |