Skip to content

Commit

Permalink
Rename Engine to LmmsCore, but typedef'd as Engine to prevent name co…
Browse files Browse the repository at this point in the history
…nflicts with ZASFx

Document the Engine renaming better & link to relevant issues/PRs
  • Loading branch information
Wallacoloo committed Dec 30, 2015
1 parent d31ac17 commit c519921
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 24 deletions.
4 changes: 2 additions & 2 deletions include/ConfigManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#include "MemoryManager.h"
#include "lmmsversion.h"

class Engine;
class LmmsCore;


const QString PROJECTS_PATH = "projects/";
Expand Down Expand Up @@ -284,7 +284,7 @@ class EXPORT ConfigManager
settingsMap m_settings;


friend class Engine;
friend class LmmsCore;

} ;

Expand Down
23 changes: 17 additions & 6 deletions include/Engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,19 @@ class Song;
class Ladspa2LMMS;


class EXPORT Engine : public QObject
// Note: This class is called 'LmmsCore' instead of 'Engine' because of naming
// conflicts caused by ZynAddSubFX. See https://github.com/LMMS/lmms/issues/2269
// and https://github.com/LMMS/lmms/pull/2118 for more details.
//
// The workaround was to rename Lmms' Engine so that it has a different symbol
// name in the object files, but typedef it back to 'Engine' and keep it inside
// of Engine.h so that the rest of the codebase can be oblivious to this issue
// (and it could be fixed without changing every single file).

class LmmsCore;
typedef LmmsCore Engine;

class EXPORT LmmsCore : public QObject
{
Q_OBJECT
public:
Expand Down Expand Up @@ -91,11 +103,11 @@ class EXPORT Engine : public QObject
}
static void updateFramesPerTick();

static inline Engine * inst()
static inline LmmsCore * inst()
{
if( s_instanceOfMe == NULL )
{
s_instanceOfMe = new Engine();
s_instanceOfMe = new LmmsCore();
}
return s_instanceOfMe;
}
Expand Down Expand Up @@ -128,12 +140,11 @@ class EXPORT Engine : public QObject
static Ladspa2LMMS * s_ladspaManager;

// even though most methods are static, an instance is needed for Qt slots/signals
static Engine * s_instanceOfMe;
static LmmsCore * s_instanceOfMe;

friend class GuiApplication;
};




#endif

2 changes: 1 addition & 1 deletion include/Ladspa2LMMS.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class EXPORT Ladspa2LMMS : public LadspaManager
l_sortable_plugin_t m_analysisTools;
l_sortable_plugin_t m_otherPlugins;

friend class Engine;
friend class LmmsCore;

} ;

Expand Down
2 changes: 1 addition & 1 deletion include/Mixer.h
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ class EXPORT Mixer : public QObject

bool m_metronomeActive;

friend class Engine;
friend class LmmsCore;
friend class MixerWorkerThread;

} ;
Expand Down
2 changes: 1 addition & 1 deletion include/Song.h
Original file line number Diff line number Diff line change
Expand Up @@ -366,7 +366,7 @@ private slots:
VstSyncController m_vstSyncController;


friend class Engine;
friend class LmmsCore;
friend class SongEditor;
friend class mainWindow;
friend class ControllerRackView;
Expand Down
26 changes: 13 additions & 13 deletions src/core/Engine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,21 @@

#include "GuiApplication.h"

float Engine::s_framesPerTick;
Mixer* Engine::s_mixer = NULL;
FxMixer * Engine::s_fxMixer = NULL;
BBTrackContainer * Engine::s_bbTrackContainer = NULL;
Song * Engine::s_song = NULL;
ProjectJournal * Engine::s_projectJournal = NULL;
Ladspa2LMMS * Engine::s_ladspaManager = NULL;
DummyTrackContainer * Engine::s_dummyTC = NULL;
float LmmsCore::s_framesPerTick;
Mixer* LmmsCore::s_mixer = NULL;
FxMixer * LmmsCore::s_fxMixer = NULL;
BBTrackContainer * LmmsCore::s_bbTrackContainer = NULL;
Song * LmmsCore::s_song = NULL;
ProjectJournal * LmmsCore::s_projectJournal = NULL;
Ladspa2LMMS * LmmsCore::s_ladspaManager = NULL;
DummyTrackContainer * LmmsCore::s_dummyTC = NULL;




void Engine::init( bool renderOnly )
void LmmsCore::init( bool renderOnly )
{
Engine *engine = inst();
LmmsCore *engine = inst();

emit engine->initProgress(tr("Generating wavetables"));
// generate (load from file) bandlimited wavetables
Expand Down Expand Up @@ -82,7 +82,7 @@ void Engine::init( bool renderOnly )



void Engine::destroy()
void LmmsCore::destroy()
{
s_projectJournal->stopAllJournalling();
s_mixer->stopProcessing();
Expand Down Expand Up @@ -110,10 +110,10 @@ void Engine::destroy()



void Engine::updateFramesPerTick()
void LmmsCore::updateFramesPerTick()
{
s_framesPerTick = s_mixer->processingSampleRate() * 60.0f * 4 /
DefaultTicksPerTact / s_song->getTempo();
}

Engine * Engine::s_instanceOfMe = NULL;
LmmsCore * LmmsCore::s_instanceOfMe = NULL;

0 comments on commit c519921

Please sign in to comment.