From be70d18aea0f68d9629378bbc532d7b97d0519c6 Mon Sep 17 00:00:00 2001 From: Aaron Cuevas Lopez <aacuelo@teleco.upv.es> Date: Tue, 5 Apr 2016 19:51:02 +0200 Subject: [PATCH] Add CoreServices methods to set and get the selected record engine --- Source/CoreServices.cpp | 12 +++++++++++- Source/CoreServices.h | 8 ++++++++ Source/UI/ControlPanel.cpp | 24 ++++++++++++++++++++++++ Source/UI/ControlPanel.h | 4 ++++ 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/Source/CoreServices.cpp b/Source/CoreServices.cpp index 84a668fd6..f17620830 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 4b46d403a..b8e254d4a 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 987121fc3..b5328948a 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 cec8bc118..f63296ecf 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; -- GitLab