Skip to content

Commit 9289d3d

Browse files
committed
Reset electrode counters when last spike channel gets deleted
1 parent 47530ae commit 9289d3d

1 file changed

Lines changed: 25 additions & 1 deletion

File tree

Plugins/BasicSpikeDisplay/SpikeDetector/SpikeDetector.cpp

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,12 +552,36 @@ SpikeChannel* SpikeDetector::addSpikeChannel (SpikeChannel::Type type,
552552

553553
void SpikeDetector::removeSpikeChannel (SpikeChannel* spikeChannel)
554554
{
555+
556+
LOGC("Total spike channels: ", spikeChannels.size());
557+
LOGC("Removing spike channel: ", spikeChannel->getName(), " from stream ", spikeChannel->getStreamId());
558+
//LOGC("Current stream has ", settings[spikeChannel->getStreamId()]->spikeChannels.size(), " spike channels");
555559

556560
spikeChannels.removeObject(spikeChannel);
561+
562+
//Reset electrode and channel counters if no more spike channels after this delete
563+
if (!spikeChannels.size())
564+
{
565+
566+
nextAvailableChannel = 0;
567+
singleElectrodeCount = 0;
568+
stereotrodeCount = 0;
569+
tetrodeCount = 0;
570+
571+
for (auto& stream : getDataStreams())
572+
{
573+
settings[stream->getStreamId()]->singleElectrodeCount = 0;
574+
settings[stream->getStreamId()]->stereotrodeCount = 0;
575+
settings[stream->getStreamId()]->tetrodeCount = 0;
576+
577+
settings[stream->getStreamId()]->nextAvailableChannel = 0;
578+
}
579+
580+
//TODO: Can make this smarter by resetting by electrode type
581+
}
557582

558583
}
559584

560-
561585
Array<SpikeChannel*> SpikeDetector::getSpikeChannelsForStream(uint16 streamId)
562586
{
563587
Array<SpikeChannel*> channels;

0 commit comments

Comments
 (0)