summaryrefslogtreecommitdiffstats
path: root/src/mixer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mixer')
-rw-r--r--src/mixer/playermanager.cpp22
-rw-r--r--src/mixer/playermanager.h8
-rw-r--r--src/mixer/samplerbank.cpp2
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);
}
}