diff options
Diffstat (limited to 'src/mixer')
-rw-r--r-- | src/mixer/playermanager.cpp | 22 | ||||
-rw-r--r-- | src/mixer/playermanager.h | 8 | ||||
-rw-r--r-- | src/mixer/samplerbank.cpp | 2 |
3 files changed, 24 insertions, 8 deletions
diff --git a/src/mixer/playermanager.cpp b/src/mixer/playermanager.cpp index 81230764e8..ae76ecbc8b 100644 --- a/src/mixer/playermanager.cpp +++ b/src/mixer/playermanager.cpp @@ -661,22 +661,23 @@ void PlayerManager::slotLoadTrackToPlayer(TrackPointer pTrack, const QString& gr m_lastLoadedPlayer = group; } -void PlayerManager::slotLoadToPlayer(const QString& location, const QString& group) { +void PlayerManager::slotLoadLocationToPlayer( + const QString& location, const QString& group, bool play) { // The library will get the track and then signal back to us to load the // track via slotLoadTrackToPlayer. - emit loadLocationToPlayer(location, group); + emit loadLocationToPlayer(location, group, play); } void PlayerManager::slotLoadToDeck(const QString& location, int deck) { - slotLoadToPlayer(location, groupForDeck(deck-1)); + slotLoadLocationToPlayer(location, groupForDeck(deck - 1)); } void PlayerManager::slotLoadToPreviewDeck(const QString& location, int previewDeck) { - slotLoadToPlayer(location, groupForPreviewDeck(previewDeck-1)); + slotLoadLocationToPlayer(location, groupForPreviewDeck(previewDeck - 1)); } void PlayerManager::slotLoadToSampler(const QString& location, int sampler) { - slotLoadToPlayer(location, groupForSampler(sampler-1)); + slotLoadLocationToPlayer(location, groupForSampler(sampler - 1)); } void PlayerManager::slotLoadTrackIntoNextAvailableDeck(TrackPointer pTrack) { @@ -690,6 +691,17 @@ void PlayerManager::slotLoadTrackIntoNextAvailableDeck(TrackPointer pTrack) { pDeck->slotLoadTrack(pTrack, false); } +void PlayerManager::slotLoadLocationIntoNextAvailableDeck(const QString& location, bool play) { + auto locker = lockMutex(&m_mutex); + BaseTrackPlayer* pDeck = findFirstStoppedPlayerInList(m_decks); + if (pDeck == nullptr) { + qDebug() << "PlayerManager: No stopped deck found, not loading track!"; + return; + } + + slotLoadLocationToPlayer(location, pDeck->getGroup(), play); +} + void PlayerManager::slotLoadTrackIntoNextAvailableSampler(TrackPointer pTrack) { auto locker = lockMutex(&m_mutex); BaseTrackPlayer* pSampler = findFirstStoppedPlayerInList(m_samplers); diff --git a/src/mixer/playermanager.h b/src/mixer/playermanager.h index 04ab325f09..723b9b799c 100644 --- a/src/mixer/playermanager.h +++ b/src/mixer/playermanager.h @@ -179,11 +179,15 @@ class PlayerManager : public QObject, public PlayerManagerInterface { public slots: // Slots for loading tracks into a Player, which is either a Sampler or a Deck void slotLoadTrackToPlayer(TrackPointer pTrack, const QString& group, bool play = false); - void slotLoadToPlayer(const QString& location, const QString& group); + void slotLoadLocationToPlayer(const QString& location, const QString& group, bool play = false); + void slotLoadLocationToPlayerStopped(const QString& location, const QString& group) { + slotLoadLocationToPlayer(location, group, false); + }; void slotCloneDeck(const QString& source_group, const QString& target_group); // Slots for loading tracks to decks void slotLoadTrackIntoNextAvailableDeck(TrackPointer pTrack); + void slotLoadLocationIntoNextAvailableDeck(const QString& location, bool play = false); // Loads the location to the deck. deckNumber is 1-indexed void slotLoadToDeck(const QString& location, int deckNumber); @@ -207,7 +211,7 @@ class PlayerManager : public QObject, public PlayerManagerInterface { void onTrackAnalysisFinished(); signals: - void loadLocationToPlayer(const QString& location, const QString& group); + void loadLocationToPlayer(const QString& location, const QString& group, bool play); // Emitted when the user tries to enable a microphone talkover control when // there is no input configured. diff --git a/src/mixer/samplerbank.cpp b/src/mixer/samplerbank.cpp index 732f58ec0b..64f9472b5d 100644 --- a/src/mixer/samplerbank.cpp +++ b/src/mixer/samplerbank.cpp @@ -216,7 +216,7 @@ bool SamplerBank::loadSamplerBankFromPath(const QString& samplerBankPath) { if (location.isEmpty()) { m_pPlayerManager->slotLoadTrackToPlayer(TrackPointer(), group); } else { - m_pPlayerManager->slotLoadToPlayer(location, group); + m_pPlayerManager->slotLoadLocationToPlayer(location, group); } } |