summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2015-12-22 17:39:12 -0500
committerRJ Ryan <rryan@mixxx.org>2015-12-22 17:39:12 -0500
commit6080b6f821e4ab1c8c51e11dd7f6059071d9204b (patch)
tree008bb41ffef24e5517f38d4de2ff1706615ab63d /src
parent21951d157a44e38bd96e669a468f4615dd97d3e3 (diff)
Return a status from Controller::applyPreset.
Also make initializing the scripts optional.
Diffstat (limited to 'src')
-rw-r--r--src/controllers/controller.cpp13
-rw-r--r--src/controllers/controller.h6
-rw-r--r--src/controllers/controllermanager.cpp4
-rw-r--r--src/controllers/controllerpresetfilehandler.cpp1
-rw-r--r--src/controllers/midi/midicontroller.cpp5
-rw-r--r--src/controllers/midi/midicontroller.h2
6 files changed, 19 insertions, 12 deletions
diff --git a/src/controllers/controller.cpp b/src/controllers/controller.cpp
index c7adce6506..cddec3aba7 100644
--- a/src/controllers/controller.cpp
+++ b/src/controllers/controller.cpp
@@ -47,7 +47,7 @@ void Controller::stopEngine() {
m_pEngine = NULL;
}
-void Controller::applyPreset(QList<QString> scriptPaths) {
+bool Controller::applyPreset(QList<QString> scriptPaths, bool initializeScripts) {
qDebug() << "Applying controller preset...";
const ControllerPreset* pPreset = preset();
@@ -55,16 +55,19 @@ void Controller::applyPreset(QList<QString> scriptPaths) {
// Load the script code into the engine
if (m_pEngine == NULL) {
qWarning() << "Controller::applyPreset(): No engine exists!";
- return;
+ return false;
}
if (pPreset->scripts.isEmpty()) {
qWarning() << "No script functions available! Did the XML file(s) load successfully? See above for any errors.";
- return;
+ return true;
}
- m_pEngine->loadScriptFiles(scriptPaths, pPreset->scripts);
- m_pEngine->initializeScripts(pPreset->scripts);
+ bool success = m_pEngine->loadScriptFiles(scriptPaths, pPreset->scripts);
+ if (initializeScripts) {
+ m_pEngine->initializeScripts(pPreset->scripts);
+ }
+ return success;
}
void Controller::startLearning() {
diff --git a/src/controllers/controller.h b/src/controllers/controller.h
index ea0d84d0c6..7ceb3d0d59 100644
--- a/src/controllers/controller.h
+++ b/src/controllers/controller.h
@@ -78,8 +78,8 @@ class Controller : public QObject, ConstControllerPresetVisitor {
// this if they have an alternate way of handling such data.)
virtual void receive(const QByteArray data);
- // Initializes the controller engine
- virtual void applyPreset(QList<QString> scriptPaths);
+ // Initializes the controller engine and returns whether it was successful.
+ virtual bool applyPreset(QList<QString> scriptPaths, bool initializeScripts);
// Puts the controller in and out of learning mode.
void startLearning();
@@ -150,6 +150,8 @@ class Controller : public QObject, ConstControllerPresetVisitor {
bool m_bLearning;
friend class ControllerManager; // accesses lots of our stuff, but in the same thread
+ // For testing.
+ friend class ControllerPresetValidationTest;
};
#endif
diff --git a/src/controllers/controllermanager.cpp b/src/controllers/controllermanager.cpp
index d6665723da..43056a324d 100644
--- a/src/controllers/controllermanager.cpp
+++ b/src/controllers/controllermanager.cpp
@@ -243,7 +243,7 @@ int ControllerManager::slotSetUpDevices() {
}
continue;
}
- pController->applyPreset(getPresetPaths(m_pConfig));
+ pController->applyPreset(getPresetPaths(m_pConfig), true);
}
maybeStartOrStopPolling();
@@ -308,7 +308,7 @@ void ControllerManager::openController(Controller* pController) {
// If successfully opened the device, apply the preset and save the
// preference setting.
if (result == 0) {
- pController->applyPreset(getPresetPaths(m_pConfig));
+ pController->applyPreset(getPresetPaths(m_pConfig), true);
// Update configuration to reflect controller is enabled.
m_pConfig->set(ConfigKey(
diff --git a/src/controllers/controllerpresetfilehandler.cpp b/src/controllers/controllerpresetfilehandler.cpp
index f4a099401b..52c77c96a5 100644
--- a/src/controllers/controllerpresetfilehandler.cpp
+++ b/src/controllers/controllerpresetfilehandler.cpp
@@ -52,6 +52,7 @@ ControllerPresetPointer ControllerPresetFileHandler::loadPreset(const QString& p
}
// NOTE(rryan): We don't provide a device name. It's unused currently.
+ // TODO(rryan): Delete pHandler.
return pHandler->load(scriptPath, QString());
}
diff --git a/src/controllers/midi/midicontroller.cpp b/src/controllers/midi/midicontroller.cpp
index fe8957b15f..d2472d9296 100644
--- a/src/controllers/midi/midicontroller.cpp
+++ b/src/controllers/midi/midicontroller.cpp
@@ -58,9 +58,9 @@ bool MidiController::savePreset(const QString fileName) const {
return handler.save(m_preset, getName(), fileName);
}
-void MidiController::applyPreset(QList<QString> scriptPaths) {
+bool MidiController::applyPreset(QList<QString> scriptPaths, bool initializeScripts) {
// Handles the engine
- Controller::applyPreset(scriptPaths);
+ bool result = Controller::applyPreset(scriptPaths, initializeScripts);
// Only execute this code if this is an output device
if (isOutputDevice()) {
@@ -70,6 +70,7 @@ void MidiController::applyPreset(QList<QString> scriptPaths) {
createOutputHandlers();
updateAllOutputs();
}
+ return result;
}
void MidiController::createOutputHandlers() {
diff --git a/src/controllers/midi/midicontroller.h b/src/controllers/midi/midicontroller.h
index dd7bd68d89..d45dc4da7d 100644
--- a/src/controllers/midi/midicontroller.h
+++ b/src/controllers/midi/midicontroller.h
@@ -71,7 +71,7 @@ class MidiController : public Controller {
private slots:
// Initializes the engine and static output mappings.
- void applyPreset(QList<QString> scriptPaths);
+ bool applyPreset(QList<QString> scriptPaths, bool initializeScripts);
void learnTemporaryInputMappings(const MidiInputMappings& mappings);
void clearTemporaryInputMappings();