diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/controllers/controller.cpp | 13 | ||||
-rw-r--r-- | src/controllers/controller.h | 6 | ||||
-rw-r--r-- | src/controllers/controllermanager.cpp | 4 | ||||
-rw-r--r-- | src/controllers/controllerpresetfilehandler.cpp | 1 | ||||
-rw-r--r-- | src/controllers/midi/midicontroller.cpp | 5 | ||||
-rw-r--r-- | src/controllers/midi/midicontroller.h | 2 |
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(); |