Skip to content

Commit

Permalink
Use a shared_ptr for EffectsManager in EngineChannel.
Browse files Browse the repository at this point in the history
  • Loading branch information
rryan committed Sep 17, 2018
1 parent d951200 commit e7bebe3
Show file tree
Hide file tree
Showing 12 changed files with 20 additions and 18 deletions.
5 changes: 3 additions & 2 deletions src/engine/engineaux.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
#include "engine/effects/engineeffectsmanager.h"
#include "util/sample.h"

EngineAux::EngineAux(const ChannelHandleAndGroup& handle_group, EffectsManager* pEffectsManager)
EngineAux::EngineAux(const ChannelHandleAndGroup& handle_group,
std::shared_ptr<EffectsManager> pEffectsManager)
: EngineChannel(handle_group, EngineChannel::CENTER, pEffectsManager),
m_pInputConfigured(new ControlObject(ConfigKey(getGroup(), "input_configured"))),
m_pPregain(new ControlAudioTaperPot(ConfigKey(getGroup(), "pregain"), -12, 12, 0.5)),
Expand Down Expand Up @@ -75,7 +76,7 @@ void EngineAux::process(CSAMPLE* pOut, const int iBufferSize) {
double pregain = m_pPregain->get();
if (sampleBuffer) {
SampleUtil::copyWithGain(pOut, sampleBuffer, pregain, iBufferSize);
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager ? m_pEffectsManager->getEngineEffectsManager() : nullptr;
if (pEngineEffectsManager != nullptr) {
pEngineEffectsManager->processPreFaderInPlace(
m_group.handle(), m_pEffectsManager->getMasterHandle(),
Expand Down
3 changes: 2 additions & 1 deletion src/engine/engineaux.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ class ControlAudioTaperPot;
class EngineAux : public EngineChannel, public AudioDestination {
Q_OBJECT
public:
EngineAux(const ChannelHandleAndGroup& handle_group, EffectsManager* pEffectsManager);
EngineAux(const ChannelHandleAndGroup& handle_group,
std::shared_ptr<EffectsManager> pEffectsManager);
virtual ~EngineAux();

bool isActive();
Expand Down
5 changes: 3 additions & 2 deletions src/engine/enginechannel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@

EngineChannel::EngineChannel(const ChannelHandleAndGroup& handle_group,
EngineChannel::ChannelOrientation defaultOrientation,
EffectsManager* pEffectsManager, bool isTalkoverChannel)
std::shared_ptr<EffectsManager> pEffectsManager,
bool isTalkoverChannel)
: m_group(handle_group),
m_pEffectsManager(pEffectsManager),
m_vuMeter(getGroup()),
Expand All @@ -49,7 +50,7 @@ EngineChannel::EngineChannel(const ChannelHandleAndGroup& handle_group,
m_pTalkover = new ControlPushButton(ConfigKey(getGroup(), "talkover"));
m_pTalkover->setButtonMode(ControlPushButton::POWERWINDOW);

if (m_pEffectsManager != nullptr) {
if (m_pEffectsManager) {
m_pEffectsManager->registerInputChannel(handle_group);
}
}
Expand Down
5 changes: 2 additions & 3 deletions src/engine/enginechannel.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class EngineChannel : public EngineObject {

EngineChannel(const ChannelHandleAndGroup& handle_group,
ChannelOrientation defaultOrientation = CENTER,
EffectsManager* pEffectsManager = nullptr,
std::shared_ptr<EffectsManager> pEffectsManager = std::shared_ptr<EffectsManager>(),
bool isTalkoverChannel = false);
virtual ~EngineChannel();

Expand Down Expand Up @@ -75,7 +75,7 @@ class EngineChannel : public EngineObject {

protected:
const ChannelHandleAndGroup m_group;
EffectsManager* m_pEffectsManager;
std::shared_ptr<EffectsManager> m_pEffectsManager;

EngineVuMeter m_vuMeter;
ControlProxy* m_pSampleRate;
Expand All @@ -98,4 +98,3 @@ class EngineChannel : public EngineObject {
};

#endif

4 changes: 2 additions & 2 deletions src/engine/enginedeck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
EngineDeck::EngineDeck(const ChannelHandleAndGroup& handle_group,
UserSettingsPointer pConfig,
EngineMaster* pMixingEngine,
EffectsManager* pEffectsManager,
std::shared_ptr<EffectsManager> pEffectsManager,
EngineChannel::ChannelOrientation defaultOrientation)
: EngineChannel(handle_group, defaultOrientation, pEffectsManager),
m_pConfig(pConfig),
Expand Down Expand Up @@ -84,7 +84,7 @@ void EngineDeck::process(CSAMPLE* pOut, const int iBufferSize) {
// Apply pregain
m_pPregain->process(pOut, iBufferSize);

EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager ? m_pEffectsManager->getEngineEffectsManager() : nullptr;
if (pEngineEffectsManager != nullptr) {
pEngineEffectsManager->processPreFaderInPlace(
m_group.handle(), m_pEffectsManager->getMasterHandle(),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/enginedeck.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class EngineDeck : public EngineChannel, public AudioDestination {
Q_OBJECT
public:
EngineDeck(const ChannelHandleAndGroup& handle_group, UserSettingsPointer pConfig,
EngineMaster* pMixingEngine, EffectsManager* pEffectsManager,
EngineMaster* pMixingEngine, std::shared_ptr<EffectsManager> pEffectsManager,
EngineChannel::ChannelOrientation defaultOrientation = CENTER);
virtual ~EngineDeck();

Expand Down
4 changes: 2 additions & 2 deletions src/engine/enginemicrophone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "util/sample.h"

EngineMicrophone::EngineMicrophone(const ChannelHandleAndGroup& handle_group,
EffectsManager* pEffectsManager)
std::shared_ptr<EffectsManager> pEffectsManager)
: EngineChannel(handle_group, EngineChannel::CENTER, pEffectsManager, true),
m_pInputConfigured(new ControlObject(ConfigKey(getGroup(), "input_configured"))),
m_pPregain(new ControlAudioTaperPot(ConfigKey(getGroup(), "pregain"), -12, 12, 0.5)),
Expand Down Expand Up @@ -75,7 +75,7 @@ void EngineMicrophone::process(CSAMPLE* pOut, const int iBufferSize) {
double pregain = m_pPregain->get();
if (sampleBuffer) {
SampleUtil::copyWithGain(pOut, sampleBuffer, pregain, iBufferSize);
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager->getEngineEffectsManager();
EngineEffectsManager* pEngineEffectsManager = m_pEffectsManager ? m_pEffectsManager->getEngineEffectsManager() : nullptr;
if (pEngineEffectsManager != nullptr) {
pEngineEffectsManager->processPreFaderInPlace(
m_group.handle(), m_pEffectsManager->getMasterHandle(),
Expand Down
2 changes: 1 addition & 1 deletion src/engine/enginemicrophone.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class EngineMicrophone : public EngineChannel, public AudioDestination {
Q_OBJECT
public:
EngineMicrophone(const ChannelHandleAndGroup& handle_group,
EffectsManager* pEffectsManager);
std::shared_ptr<EffectsManager> pEffectsManager);
virtual ~EngineMicrophone();

bool isActive();
Expand Down
2 changes: 1 addition & 1 deletion src/mixer/auxiliary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Auxiliary::Auxiliary(QObject* pParent, const QString& group, int index,
std::shared_ptr<EffectsManager> pEffectsManager)
: BasePlayer(pParent, group) {
ChannelHandleAndGroup channelGroup = pEngine->registerChannelGroup(group);
auto pAuxiliary = std::make_shared<EngineAux>(channelGroup, pEffectsManager.get());
auto pAuxiliary = std::make_shared<EngineAux>(channelGroup, pEffectsManager);
pEngine->addChannel(pAuxiliary);
AudioInput auxInput = AudioInput(AudioPath::AUXILIARY, 0, 2, index);
pSoundManager->registerInput(auxInput, pAuxiliary);
Expand Down
2 changes: 1 addition & 1 deletion src/mixer/basetrackplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ BaseTrackPlayerImpl::BaseTrackPlayerImpl(QObject* pParent,
ChannelHandleAndGroup channelGroup =
pMixingEngine->registerChannelGroup(group);
m_pChannel = std::make_shared<EngineDeck>(channelGroup, pConfig, pMixingEngine.get(),
pEffectsManager.get(), defaultOrientation);
pEffectsManager, defaultOrientation);

m_pInputConfigured = std::make_unique<ControlProxy>(group, "input_configured", this);
m_pPassthroughEnabled = std::make_unique<ControlProxy>(group, "passthrough", this);
Expand Down
2 changes: 1 addition & 1 deletion src/mixer/microphone.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Microphone::Microphone(QObject* pParent, const QString& group, int index,
: BasePlayer(pParent, group) {
ChannelHandleAndGroup channelGroup = pEngine->registerChannelGroup(group);
auto pMicrophone = std::make_shared<EngineMicrophone>(
channelGroup, pEffectsManager.get());
channelGroup, pEffectsManager);
pEngine->addChannel(pMicrophone);
AudioInput micInput = AudioInput(AudioPath::MICROPHONE, 0, 2, index);
pSoundManager->registerInput(micInput, pMicrophone);
Expand Down
2 changes: 1 addition & 1 deletion src/test/enginemicrophonetest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class EngineMicrophoneTest : public SignalPathTest {

// No need for a real handle in this test.
m_pMicrophone = new EngineMicrophone(
ChannelHandleAndGroup(ChannelHandle(), "[Microphone]"), m_pEffectsManager.get());
ChannelHandleAndGroup(ChannelHandle(), "[Microphone]"), m_pEffectsManager);
m_pTalkover = ControlObject::getControl(ConfigKey("[Microphone]", "talkover"));
}

Expand Down

0 comments on commit e7bebe3

Please sign in to comment.