diff --git a/Source/CoreServices.cpp b/Source/CoreServices.cpp index 84a668fd697378d7d4e042cf2d1ea5aef302b787..f17620830644cc9276486889f22a137a99c862ed 100644 --- a/Source/CoreServices.cpp +++ b/Source/CoreServices.cpp @@ -107,6 +107,16 @@ void setAppendTextToRecordingDir(String text) getControlPanel()->setAppendText(text); } +String getSelectedRecordEngineId() +{ + return getControlPanel()->getSelectedRecordEngineId(); +} + +bool setSelectedRecordEngineId(String id) +{ + return getControlPanel()->setSelectedRecordEngineId(id); +} + namespace RecordNode { void createNewrecordingDir() @@ -145,7 +155,7 @@ int addSpikeElectrode(SpikeRecordInfo* elec) } }; -PLUGIN_API const char* getApplicationResource(const char* name, int& size) +const char* getApplicationResource(const char* name, int& size) { return BinaryData::getNamedResource(name, size); } diff --git a/Source/CoreServices.h b/Source/CoreServices.h index 4b46d403afc7ba1d76aefeeecc221147d6487962..b8e254d4a6bdcd85e5e3001b685077b25d145614 100644 --- a/Source/CoreServices.h +++ b/Source/CoreServices.h @@ -78,6 +78,14 @@ PLUGIN_API void setPrependTextToRecordingDir(String text); /** Manually set the text to be appended to the recording directory */ PLUGIN_API void setAppendTextToRecordingDir(String text); +/** Gets the ID fo the selected Record Engine*/ +PLUGIN_API String getSelectedRecordEngineId(); + +/** Sets a specific RecordEngine to be used based on its id. +Return true if there is an engine with the specified ID and it's possible to +change the current engine or false otherwise. */ +PLUGIN_API bool setSelectedRecordEngineId(String id); + namespace RecordNode { /** Forces creation of new directory on recording */ diff --git a/Source/UI/ControlPanel.cpp b/Source/UI/ControlPanel.cpp index 987121fc30c86e2740f82e1dfd6e2076ac082bf7..b5328948a98abd20e0f53e1328070471e36d7bce 100755 --- a/Source/UI/ControlPanel.cpp +++ b/Source/UI/ControlPanel.cpp @@ -552,6 +552,30 @@ void ControlPanel::updateRecordEngineList() recordSelector->setSelectedId(selectedEngine, sendNotification); } +String ControlPanel::getSelectedRecordEngineId() +{ + return recordEngines[recordSelector->getSelectedId() - 1]->getID(); +} + +bool ControlPanel::setSelectedRecordEngineId(String id) +{ + if (getAcquisitionState()) + { + return false; + } + + int nEngines = recordEngines.size(); + for (int i = 0; i < nEngines; ++i) + { + if (recordEngines[i]->getID() == id) + { + recordSelector->setSelectedId(i + 1, sendNotificationSync); + return true; + } + } + return false; +} + void ControlPanel::createPaths() { /* int w = getWidth() - 325; diff --git a/Source/UI/ControlPanel.h b/Source/UI/ControlPanel.h index cec8bc11898f033caea0ed8bc4087bc965136579..f63296ecf6761813a3bc7548691443b6b1384e2d 100755 --- a/Source/UI/ControlPanel.h +++ b/Source/UI/ControlPanel.h @@ -365,6 +365,10 @@ public: void updateRecordEngineList(); + String getSelectedRecordEngineId(); + + bool setSelectedRecordEngineId(String id); + ScopedPointer<RecordButton> recordButton; private: ScopedPointer<PlayButton> playButton;