summaryrefslogtreecommitdiffstats
path: root/src/mixer/playermanager.cpp
diff options
context:
space:
mode:
authorxerus2000 <27jf@pm.me>2020-07-30 13:54:19 +0200
committerxerus2000 <27jf@pm.me>2020-07-31 11:43:29 +0200
commitbcc3123b506174f2c42a59a1d78759ed37cd983a (patch)
tree4e2dd012e65a29685766e7f5ba5f9cae058df4ba /src/mixer/playermanager.cpp
parent16950549cff6aad58fab58c1317e6a3eb40e9b87 (diff)
PlayerManager: Identify players by ChannelHandle
Diffstat (limited to 'src/mixer/playermanager.cpp')
-rw-r--r--src/mixer/playermanager.cpp71
1 files changed, 44 insertions, 27 deletions
diff --git a/src/mixer/playermanager.cpp b/src/mixer/playermanager.cpp
index b7d9aebf0b..cb99809f70 100644
--- a/src/mixer/playermanager.cpp
+++ b/src/mixer/playermanager.cpp
@@ -147,7 +147,7 @@ void PlayerManager::bindToLibrary(Library* pLibrary) {
// Connect the player to the analyzer queue so that loaded tracks are
// analyzed.
- foreach(PreviewDeck* pPreviewDeck, m_preview_decks) {
+ foreach (PreviewDeck* pPreviewDeck, m_previewDecks) {
connect(pPreviewDeck, SIGNAL(newTrackLoaded(TrackPointer)),
this, SLOT(slotAnalyzeTrack(TrackPointer)));
}
@@ -307,15 +307,15 @@ void PlayerManager::slotChangeNumSamplers(double v) {
void PlayerManager::slotChangeNumPreviewDecks(double v) {
QMutexLocker locker(&m_mutex);
int num = (int)v;
- if (num < m_preview_decks.size()) {
+ if (num < m_previewDecks.size()) {
// The request was invalid -- don't set the value.
kLogger.debug() << "Ignoring request to reduce the number of preview decks to" << num;
return;
}
- while (m_preview_decks.size() < num) {
+ while (m_previewDecks.size() < num) {
addPreviewDeckInner();
}
- m_pCONumPreviewDecks->setAndConfirm(m_preview_decks.size());
+ m_pCONumPreviewDecks->setAndConfirm(m_previewDecks.size());
}
void PlayerManager::slotChangeNumMicrophones(double v) {
@@ -358,8 +358,9 @@ void PlayerManager::addConfiguredDecks() {
void PlayerManager::addDeckInner() {
// Do not lock m_mutex here.
- QString group = groupForDeck(m_decks.count());
- VERIFY_OR_DEBUG_ASSERT(!m_players.contains(group)) {
+ ChannelHandleAndGroup handle_group =
+ m_pEngine->registerChannelGroup(groupForDeck(m_decks.count()));
+ VERIFY_OR_DEBUG_ASSERT(!m_players.contains(handle_group.handle())) {
return;
}
@@ -371,7 +372,7 @@ void PlayerManager::addDeckInner() {
m_pEffectsManager,
m_pVisualsManager,
deckIndex % 2 == 1 ? EngineChannel::RIGHT : EngineChannel::LEFT,
- group);
+ handle_group);
connect(pDeck->getEngineDeck(),
&EngineDeck::noPassthroughInputConfigured,
this,
@@ -388,7 +389,7 @@ void PlayerManager::addDeckInner() {
&PlayerManager::slotAnalyzeTrack);
}
- m_players[group] = pDeck;
+ m_players[handle_group.handle()] = pDeck;
m_decks.append(pDeck);
// Register the deck output with SoundManager.
@@ -405,7 +406,7 @@ void PlayerManager::addDeckInner() {
VERIFY_OR_DEBUG_ASSERT(pEqRack) {
return;
}
- pEqRack->setupForGroup(group);
+ pEqRack->setupForGroup(handle_group.name());
// BaseTrackPlayer needs to delay until we have setup the equalizer rack for
// this deck to fetch the legacy EQ controls.
@@ -418,7 +419,7 @@ void PlayerManager::addDeckInner() {
VERIFY_OR_DEBUG_ASSERT(pQuickEffectRack) {
return;
}
- pQuickEffectRack->setupForGroup(group);
+ pQuickEffectRack->setupForGroup(handle_group.name());
}
void PlayerManager::loadSamplers() {
@@ -434,17 +435,22 @@ void PlayerManager::addSampler() {
void PlayerManager::addSamplerInner() {
// Do not lock m_mutex here.
- QString group = groupForSampler(m_samplers.count());
-
- VERIFY_OR_DEBUG_ASSERT(!m_players.contains(group)) {
+ ChannelHandleAndGroup handle_group =
+ m_pEngine->registerChannelGroup(groupForSampler(m_samplers.count()));
+ VERIFY_OR_DEBUG_ASSERT(!m_players.contains(handle_group.handle())) {
return;
}
// All samplers are in the center
EngineChannel::ChannelOrientation orientation = EngineChannel::CENTER;
- Sampler* pSampler = new Sampler(this, m_pConfig, m_pEngine,
- m_pEffectsManager, m_pVisualsManager, orientation, group);
+ Sampler* pSampler = new Sampler(this,
+ m_pConfig,
+ m_pEngine,
+ m_pEffectsManager,
+ m_pVisualsManager,
+ orientation,
+ handle_group);
if (m_pTrackAnalysisScheduler) {
connect(pSampler,
&Sampler::newTrackLoaded,
@@ -452,7 +458,7 @@ void PlayerManager::addSamplerInner() {
&PlayerManager::slotAnalyzeTrack);
}
- m_players[group] = pSampler;
+ m_players[handle_group.handle()] = pSampler;
m_samplers.append(pSampler);
}
@@ -463,16 +469,22 @@ void PlayerManager::addPreviewDeck() {
void PlayerManager::addPreviewDeckInner() {
// Do not lock m_mutex here.
- QString group = groupForPreviewDeck(m_preview_decks.count());
- VERIFY_OR_DEBUG_ASSERT(!m_players.contains(group)) {
+ ChannelHandleAndGroup handle_group = m_pEngine->registerChannelGroup(
+ groupForPreviewDeck(m_previewDecks.count()));
+ VERIFY_OR_DEBUG_ASSERT(!m_players.contains(handle_group.handle())) {
return;
}
// All preview decks are in the center
EngineChannel::ChannelOrientation orientation = EngineChannel::CENTER;
- PreviewDeck* pPreviewDeck = new PreviewDeck(this, m_pConfig, m_pEngine,
- m_pEffectsManager, m_pVisualsManager, orientation, group);
+ PreviewDeck* pPreviewDeck = new PreviewDeck(this,
+ m_pConfig,
+ m_pEngine,
+ m_pEffectsManager,
+ m_pVisualsManager,
+ orientation,
+ handle_group);
if (m_pTrackAnalysisScheduler) {
connect(pPreviewDeck,
&PreviewDeck::newTrackLoaded,
@@ -480,8 +492,8 @@ void PlayerManager::addPreviewDeckInner() {
&PlayerManager::slotAnalyzeTrack);
}
- m_players[group] = pPreviewDeck;
- m_preview_decks.append(pPreviewDeck);
+ m_players[handle_group.handle()] = pPreviewDeck;
+ m_previewDecks.append(pPreviewDeck);
}
void PlayerManager::addMicrophone() {
@@ -524,12 +536,17 @@ void PlayerManager::addAuxiliaryInner() {
m_auxiliaries.append(pAuxiliary);
}
-BaseTrackPlayer* PlayerManager::getPlayer(QString group) const {
+BaseTrackPlayer* PlayerManager::getPlayer(const QString& group) const {
+ return getPlayer(m_pEngine->registerChannelGroup(group).handle());
+}
+
+BaseTrackPlayer* PlayerManager::getPlayer(const ChannelHandle& handle) const {
QMutexLocker locker(&m_mutex);
- if (m_players.contains(group)) {
- return m_players[group];
+
+ if (m_players.contains(handle)) {
+ return m_players[handle];
}
- return NULL;
+ return nullptr;
}
Deck* PlayerManager::getDeck(unsigned int deck) const {
@@ -548,7 +565,7 @@ PreviewDeck* PlayerManager::getPreviewDeck(unsigned int libPreviewPlayer) const
<< libPreviewPlayer;
return NULL;
}
- return m_preview_decks[libPreviewPlayer - 1];
+ return m_previewDecks[libPreviewPlayer - 1];
}
Sampler* PlayerManager::getSampler(unsigned int sampler) const {