Skip to content

Commit be70d18

Browse files
committed
Add CoreServices methods to set and get the selected record engine
1 parent d4c7a7e commit be70d18

4 files changed

Lines changed: 47 additions & 1 deletion

File tree

Source/CoreServices.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,16 @@ void setAppendTextToRecordingDir(String text)
107107
getControlPanel()->setAppendText(text);
108108
}
109109

110+
String getSelectedRecordEngineId()
111+
{
112+
return getControlPanel()->getSelectedRecordEngineId();
113+
}
114+
115+
bool setSelectedRecordEngineId(String id)
116+
{
117+
return getControlPanel()->setSelectedRecordEngineId(id);
118+
}
119+
110120
namespace RecordNode
111121
{
112122
void createNewrecordingDir()
@@ -145,7 +155,7 @@ int addSpikeElectrode(SpikeRecordInfo* elec)
145155
}
146156
};
147157

148-
PLUGIN_API const char* getApplicationResource(const char* name, int& size)
158+
const char* getApplicationResource(const char* name, int& size)
149159
{
150160
return BinaryData::getNamedResource(name, size);
151161
}

Source/CoreServices.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,14 @@ PLUGIN_API void setPrependTextToRecordingDir(String text);
7878
/** Manually set the text to be appended to the recording directory */
7979
PLUGIN_API void setAppendTextToRecordingDir(String text);
8080

81+
/** Gets the ID fo the selected Record Engine*/
82+
PLUGIN_API String getSelectedRecordEngineId();
83+
84+
/** Sets a specific RecordEngine to be used based on its id.
85+
Return true if there is an engine with the specified ID and it's possible to
86+
change the current engine or false otherwise. */
87+
PLUGIN_API bool setSelectedRecordEngineId(String id);
88+
8189
namespace RecordNode
8290
{
8391
/** Forces creation of new directory on recording */

Source/UI/ControlPanel.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,30 @@ void ControlPanel::updateRecordEngineList()
552552
recordSelector->setSelectedId(selectedEngine, sendNotification);
553553
}
554554

555+
String ControlPanel::getSelectedRecordEngineId()
556+
{
557+
return recordEngines[recordSelector->getSelectedId() - 1]->getID();
558+
}
559+
560+
bool ControlPanel::setSelectedRecordEngineId(String id)
561+
{
562+
if (getAcquisitionState())
563+
{
564+
return false;
565+
}
566+
567+
int nEngines = recordEngines.size();
568+
for (int i = 0; i < nEngines; ++i)
569+
{
570+
if (recordEngines[i]->getID() == id)
571+
{
572+
recordSelector->setSelectedId(i + 1, sendNotificationSync);
573+
return true;
574+
}
575+
}
576+
return false;
577+
}
578+
555579
void ControlPanel::createPaths()
556580
{
557581
/* int w = getWidth() - 325;

Source/UI/ControlPanel.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ class ControlPanel : public Component,
365365

366366
void updateRecordEngineList();
367367

368+
String getSelectedRecordEngineId();
369+
370+
bool setSelectedRecordEngineId(String id);
371+
368372
ScopedPointer<RecordButton> recordButton;
369373
private:
370374
ScopedPointer<PlayButton> playButton;

0 commit comments

Comments
 (0)