Skip to content

Commit

Permalink
Merge branch '2.4' of github.com:mixxxdj/mixxx
Browse files Browse the repository at this point in the history
  • Loading branch information
Holzhaus committed Sep 11, 2023
2 parents 258067a + 291669c commit 33e3815
Show file tree
Hide file tree
Showing 77 changed files with 481 additions and 475 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,7 @@
* Library preferences: Uncheck Serato metadata export when file metadata export is unchecked
[#11782](https://github.com/mixxxdj/mixxx/pull/11782)
[#11226](https://github.com/mixxxdj/mixxx/issues/11226)
* Denon MC6000MK2: Delete mapping for master gain
* Denon MC6000MK2: Delete mapping for main gain
[#11792](https://github.com/mixxxdj/mixxx/pull/11792)
* Improve output in case of some failed file system operations
[#11783](https://github.com/mixxxdj/mixxx/pull/11783)
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -783,7 +783,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/engine/effects/engineeffectsmanager.cpp
src/engine/enginebuffer.cpp
src/engine/enginedelay.cpp
src/engine/enginemaster.cpp
src/engine/enginemixer.cpp
src/engine/engineobject.cpp
src/engine/enginepregain.cpp
src/engine/enginesidechaincompressor.cpp
Expand Down Expand Up @@ -1856,7 +1856,7 @@ add_executable(mixxx-test
src/test/enginebuffertest.cpp
src/test/engineeffectsdelay_test.cpp
src/test/enginefilterbiquadtest.cpp
src/test/enginemastertest.cpp
src/test/enginemixertest.cpp
src/test/enginemicrophonetest.cpp
src/test/enginesynctest.cpp
src/test/fileinfo_test.cpp
Expand Down
6 changes: 3 additions & 3 deletions res/linux/org.mixxx.Mixxx.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -96,11 +96,11 @@
Do not edit it manually.
-->
<releases>
<release version="2.5.0" type="development" date="2023-08-12" timestamp="1691865042">
<release version="2.5.0" type="development" date="2023-09-10" timestamp="1694376244">
<description>
</description>
</release>
<release version="2.4.0" type="development" date="2023-08-12" timestamp="1691865042">
<release version="2.4.0" type="development" date="2023-09-10" timestamp="1694376244">
<description>
<p>
Cover Art
Expand Down Expand Up @@ -2009,7 +2009,7 @@
#11226
</li>
<li>
Denon MC6000MK2: Delete mapping for master gain
Denon MC6000MK2: Delete mapping for main gain
#11792
</li>
<li>
Expand Down
5 changes: 3 additions & 2 deletions src/broadcast/broadcastmanager.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#include "broadcast/broadcastmanager.h"

#include <shoutidjc/shout.h>

#include "broadcast/broadcastmanager.h"
#include "broadcast/defs_broadcast.h"
#include "engine/enginemaster.h"
#include "engine/enginemixer.h"
#include "engine/sidechain/enginenetworkstream.h"
#include "engine/sidechain/enginesidechain.h"
#include "moc_broadcastmanager.cpp"
Expand Down
6 changes: 3 additions & 3 deletions src/controllers/controlpickermenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
: QMenu(pParent) {
m_effectMasterOutputStr = tr("Main Output");
m_effectMainOutputStr = tr("Main Output");
m_effectHeadphoneOutputStr = tr("Headphone Output");
m_deckStr = tr("Deck %1");
m_samplerStr = tr("Sampler %1");
Expand Down Expand Up @@ -894,8 +894,8 @@ ControlPickerMenu::ControlPickerMenu(QWidget* pParent)
m_effectUnitStr.arg(iEffectUnitNumber));

addControl(effectUnitGroup, "group_[Master]_enable",
assignString + m_effectMasterOutputStr, // in ComboBox
assignString + m_effectMasterOutputStr, // description below
assignString + m_effectMainOutputStr, // in ComboBox
assignString + m_effectMainOutputStr, // description below
effectUnitGroups,
false,
groupDescriptionPrefix);
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/controlpickermenu.h
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ class ControlPickerMenu : public QMenu {

int addAvailableControl(const ConfigKey& key, const QString& title, const QString& description);

QString m_effectMasterOutputStr;
QString m_effectMainOutputStr;
QString m_effectHeadphoneOutputStr;
QString m_deckStr;
QString m_previewdeckStr;
Expand Down
8 changes: 4 additions & 4 deletions src/coreservices.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include "controllers/keyboard/keyboardeventfilter.h"
#include "database/mixxxdb.h"
#include "effects/effectsmanager.h"
#include "engine/enginemaster.h"
#include "engine/enginemixer.h"
#include "library/coverartcache.h"
#include "library/library.h"
#include "library/library_prefs.h"
Expand Down Expand Up @@ -258,7 +258,7 @@ void CoreServices::initialize(QApplication* pApp) {
emit initializationProgressUpdate(20, tr("effects"));
m_pEffectsManager = std::make_shared<EffectsManager>(pConfig, pChannelHandleFactory);

m_pEngine = std::make_shared<EngineMaster>(
m_pEngine = std::make_shared<EngineMixer>(
pConfig,
"[Master]",
m_pEffectsManager.get(),
Expand Down Expand Up @@ -615,8 +615,8 @@ void CoreServices::finalize() {
CLEAR_AND_CHECK_DELETED(m_pBroadcastManager);
#endif

// EngineMaster depends on Config and m_pEffectsManager.
qDebug() << t.elapsed(false).debugMillisWithUnit() << "deleting EngineMaster";
// EngineMixer depends on Config and m_pEffectsManager.
qDebug() << t.elapsed(false).debugMillisWithUnit() << "deleting EngineMixer";
CLEAR_AND_CHECK_DELETED(m_pEngine);

qDebug() << t.elapsed(false).debugMillisWithUnit() << "deleting EffectsManager";
Expand Down
4 changes: 2 additions & 2 deletions src/coreservices.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class QApplication;
class CmdlineArgs;
class KeyboardEventFilter;
class EffectsManager;
class EngineMaster;
class EngineMixer;
class SoundManager;
class PlayerManager;
class RecordingManager;
Expand Down Expand Up @@ -130,7 +130,7 @@ class CoreServices : public QObject {
std::shared_ptr<EffectsManager> m_pEffectsManager;
// owned by EffectsManager
LV2Backend* m_pLV2Backend;
std::shared_ptr<EngineMaster> m_pEngine;
std::shared_ptr<EngineMixer> m_pEngine;
std::shared_ptr<SoundManager> m_pSoundManager;
std::shared_ptr<PlayerManager> m_pPlayerManager;
std::shared_ptr<RecordingManager> m_pRecordingManager;
Expand Down
2 changes: 1 addition & 1 deletion src/effects/backends/builtin/autopaneffect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ EffectManifestPointer AutoPanEffect::getManifest() {
smoothing->setDefaultLinkType(EffectManifestParameter::LinkType::Linked);
smoothing->setRange(0.25, 0.50, 0.50); // There are two steps per period so max is half

// TODO(Ferran Pujol): when KnobComposedMaskedRing branch is merged to master,
// TODO(Ferran Pujol): when KnobComposedMaskedRing branch is merged to main,
// make the scaleStartParameter for this be 1.

// Width : applied on the channel with gain reducing.
Expand Down
2 changes: 1 addition & 1 deletion src/effects/backends/builtin/graphiceqeffect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ EffectManifestPointer GraphicEQEffect::getManifest() {
pManifest->setDescription(QObject::tr(
"An 8-band graphic equalizer based on biquad filters"));
pManifest->setEffectRampsFromDry(true);
pManifest->setIsMasterEQ(true);
pManifest->setIsMainEQ(true);

// Display rounded center frequencies for each filter
float centerFrequencies[8] = {45, 100, 220, 500, 1100, 2500, 5500, 12000};
Expand Down
2 changes: 1 addition & 1 deletion src/effects/backends/builtin/loudnesscontoureffect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ void LoudnessContourEffect::processChannel(
gainKnob = math_clamp(gainKnob, 0.03, 1.0); // Limit at 0 .. -30 dB
double gainKnobDb = ratio2db(gainKnob);
filterGainDb = loudness * gainKnobDb / kMaxLoGain;
gain = 1; // No need for adjust gain because master gain follows
gain = 1; // No need for adjust gain because main gain follows
} else {
filterGainDb = -loudness;
// compensate filter boost to avoid clipping
Expand Down
2 changes: 1 addition & 1 deletion src/effects/backends/builtin/parametriceqeffect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ EffectManifestPointer ParametricEQEffect::getManifest() {
"An gentle 2-band parametric equalizer based on biquad filters.\n"
"It is designed as a complement to the steep mixing equalizers."));
pManifest->setEffectRampsFromDry(true);
pManifest->setIsMasterEQ(true);
pManifest->setIsMainEQ(true);

EffectManifestParameterPointer gain1 = pManifest->addParameter();
gain1->setId("gain1");
Expand Down
12 changes: 6 additions & 6 deletions src/effects/backends/effectmanifest.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class EffectManifest {
EffectManifest()
: m_backendType(EffectBackendType::Unknown),
m_isMixingEQ(false),
m_isMasterEQ(false),
m_isMainEQ(false),
m_effectRampsFromDry(false),
m_bAddDryToWet(false),
m_metaknobDefault(0.0) {
Expand Down Expand Up @@ -104,12 +104,12 @@ class EffectManifest {
m_isMixingEQ = value;
}

const bool& isMasterEQ() const {
return m_isMasterEQ;
const bool& isMainEQ() const {
return m_isMainEQ;
}

void setIsMasterEQ(const bool value) {
m_isMasterEQ = value;
void setIsMainEQ(const bool value) {
m_isMainEQ = value;
}

bool hasMetaKnobLinking() const;
Expand Down Expand Up @@ -183,7 +183,7 @@ class EffectManifest {
QString m_description;
/// This helps us at DlgPrefEQ's basic selection of Equalizers
bool m_isMixingEQ;
bool m_isMasterEQ;
bool m_isMainEQ;
QList<EffectManifestParameterPointer> m_parameters;
bool m_effectRampsFromDry;
bool m_bAddDryToWet;
Expand Down
4 changes: 2 additions & 2 deletions src/effects/backends/effectprocessor.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
///
/// Each EffectState instance tracks the state for one combination of input signal
/// and output signal. Input signals can be any EngineChannel, but output channels
/// are hardcoded in EngineMaster as the postfader processing for the main mix
/// are hardcoded in EngineMixer as the postfader processing for the main mix
/// and prefader processing for headphones. There can be many EffectStates for one
/// EffectProcessorImpl, allowing a single EffectProcessorImpl to maintain
/// independent state for each combination of input and output signal. This allows
Expand Down Expand Up @@ -114,7 +114,7 @@ class EffectProcessor {

/// EffectProcessorImpl manages a separate EffectState for every combination of
/// input channel to output channel. This allows for processing effects in
/// parallel for PFL and post-fader for the master output.
/// parallel for PFL and post-fader for the main output.
/// EffectSpecificState must be a subclass of EffectState.
template<typename EffectSpecificState>
class EffectProcessorImpl : public EffectProcessor {
Expand Down
12 changes: 6 additions & 6 deletions src/effects/chains/outputeffectchain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,22 @@ OutputEffectChain::OutputEffectChain(EffectsManager* pEffectsManager,
addEffectSlot("[OutputEffectRack_[Master]_Effect1]");
m_effectSlots[0]->setEnabled(true);

// Register the master channel
const ChannelHandleAndGroup* masterHandleAndGroup = nullptr;
// Register the main channel
const ChannelHandleAndGroup* mainHandleAndGroup = nullptr;

// TODO(Be): Remove this hideous hack to get the ChannelHandleAndGroup
const QSet<ChannelHandleAndGroup>& registeredChannels =
m_pEffectsManager->registeredInputChannels();
for (const ChannelHandleAndGroup& handle_group : registeredChannels) {
if (handle_group.name() == "[MasterOutput]") {
masterHandleAndGroup = &handle_group;
mainHandleAndGroup = &handle_group;
break;
}
}
DEBUG_ASSERT(masterHandleAndGroup != nullptr);
DEBUG_ASSERT(mainHandleAndGroup != nullptr);

registerInputChannel(*masterHandleAndGroup);
enableForInputChannel(*masterHandleAndGroup);
registerInputChannel(*mainHandleAndGroup);
enableForInputChannel(*mainHandleAndGroup);
m_pControlChainMix->set(1.0);
sendParameterUpdate();
}
Expand Down
2 changes: 1 addition & 1 deletion src/effects/effectchain.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class EngineEffectChain;
/// EffectChain is the main thread representation of an effect chain.
/// EffectChain owns the ControlObjects for the routing switches that assign
/// chains to process audio inputs (decks, microphones, auxiliary inputs,
/// master mix). EffectChain also owns the ControlObject for the superknob
/// main mix). EffectChain also owns the ControlObject for the superknob
/// which manipulates the metaknob of each EffectSlot in the chain.
///
/// EffectChains are created and destroyed by EffectsManager during Mixxx
Expand Down
2 changes: 1 addition & 1 deletion src/effects/effectsmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class EffectsManager {
return m_pEngineEffectsManager.get();
}

const ChannelHandle getMasterHandle() const {
const ChannelHandle getMainHandle() const {
return m_pChannelHandleFactory->getOrCreateHandle("[Master]");
}

Expand Down
26 changes: 13 additions & 13 deletions src/encoder/encoderopus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ constexpr int kMaxOpusBufferSize = 1+1275;
constexpr int kOpusFrameMs = 60;
constexpr int kOpusChannelCount = 2;
// Opus only supports 48 and 96 kHz samplerates
constexpr mixxx::audio::SampleRate kMasterSamplerate = mixxx::audio::SampleRate(48000);
constexpr mixxx::audio::SampleRate kMainSampleRate = mixxx::audio::SampleRate(48000);

const mixxx::Logger kLogger("EncoderOpus");

Expand Down Expand Up @@ -73,8 +73,8 @@ int getSerial() {
} // namespace

//static
mixxx::audio::SampleRate EncoderOpus::getMasterSamplerate() {
return kMasterSamplerate;
mixxx::audio::SampleRate EncoderOpus::getMainSampleRate() {
return kMainSampleRate;
}

//static
Expand Down Expand Up @@ -140,18 +140,18 @@ void EncoderOpus::setEncoderSettings(const EncoderSettings& settings) {
int EncoderOpus::initEncoder(mixxx::audio::SampleRate sampleRate, QString* pUserErrorMessage) {
Q_UNUSED(pUserErrorMessage);

if (sampleRate != kMasterSamplerate) {
kLogger.warning() << "initEncoder failed: samplerate not supported by Opus";
if (sampleRate != kMainSampleRate) {
kLogger.warning() << "initEncoder failed: samplerate not supported by Opus";

const QString invalidSamplerateMessage = getInvalidSamplerateMessage();
const QString invalidSamplerateMessage = getInvalidSamplerateMessage();

ErrorDialogProperties* props = ErrorDialogHandler::instance()->newDialogProperties();
props->setType(DLG_WARNING);
props->setTitle(QObject::tr("Encoder"));
props->setText(invalidSamplerateMessage);
props->setKey(invalidSamplerateMessage);
ErrorDialogHandler::instance()->requestErrorDialog(props);
return -1;
ErrorDialogProperties* props = ErrorDialogHandler::instance()->newDialogProperties();
props->setType(DLG_WARNING);
props->setTitle(QObject::tr("Encoder"));
props->setText(invalidSamplerateMessage);
props->setKey(invalidSamplerateMessage);
ErrorDialogHandler::instance()->requestErrorDialog(props);
return -1;
}
m_sampleRate = sampleRate;
DEBUG_ASSERT(m_sampleRate == 8000 || m_sampleRate == 12000 ||
Expand Down
2 changes: 1 addition & 1 deletion src/encoder/encoderopus.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

class EncoderOpus: public Encoder {
public:
static mixxx::audio::SampleRate getMasterSamplerate();
static mixxx::audio::SampleRate getMainSampleRate();
static QString getInvalidSamplerateMessage();

explicit EncoderOpus(EncoderCallback* pCallback = nullptr);
Expand Down
8 changes: 4 additions & 4 deletions src/engine/channelhandle.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#include "util/compatibility/qhash.h"

// ChannelHandle defines a unique identifier for channels of audio in the engine
// (e.g. headphone output, master output, deck 1, microphone 3). Previously we
// (e.g. headphone output, main output, deck 1, microphone 3). Previously we
// used the group string of the channel in the engine to uniquely identify it
// and key associative containers (e.g. QMap, QHash) but the downside to this is
// that we waste a lot of callback time hashing and re-hashing the strings.
Expand All @@ -23,7 +23,7 @@
// (since the keys are numbered [0, num_channels]).

/// A wrapper around an integer handle. Used to uniquely identify and refer to
/// channels (headphone output, master output, deck 1, microphone 4, etc.) while
/// channels (headphone output, main output, deck 1, microphone 4, etc.) while
/// avoiding slow QString comparisons incurred when using the group.
///
/// A helper class, ChannelHandleFactory, keeps a running count of handles that
Expand Down Expand Up @@ -130,11 +130,11 @@ inline qhash_seed_t qHash(
return qHash(handleGroup.handle(), seed);
}

// A helper class used by EngineMaster to assign ChannelHandles to channel group
// A helper class used by EngineMixer to assign ChannelHandles to channel group
// strings. Warning: ChannelHandles produced by different ChannelHandleFactory
// objects are not compatible and will produce incorrect results when compared,
// stored in the same container, etc. In practice we only use one instance in
// EngineMaster.
// EngineMixer.
class ChannelHandleFactory {
public:
ChannelHandleFactory() : m_iNextHandle(0) {
Expand Down
Loading

0 comments on commit 33e3815

Please sign in to comment.