Program Listing for File channelvalidity.cpp

Return to documentation for file (datatypes/spikedata/channelvalidity.cpp)

// ---------------------------------------------------------------------
// This file is part of falcon-core.
//
// Copyright (C) 2015, 2016, 2017 Neuro-Electronics Research Flanders
//
// Falcon-server is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Falcon-server is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with falcon-core. If not, see <http://www.gnu.org/licenses/>.
// ---------------------------------------------------------------------

#include "channelvalidity.hpp"
#include <vector>

ChannelValidityMask::ChannelValidityMask(unsigned int n_channels,
                                         ChannelDetection::Validity validity) {
  mask_.assign(n_channels, validity);
}

unsigned int ChannelValidityMask::n_channels() const { return mask_.size(); }

std::vector<ChannelDetection::Validity> &ChannelValidityMask::validity_mask() {
  return mask_;
}

void ChannelValidityMask::set_validity(size_t channel_index,
                                       ChannelDetection::Validity value) {
  mask_[channel_index] = value;
}

bool ChannelValidityMask::is_channel_valid(size_t channel_index) const {
  return mask_[channel_index] == ChannelDetection::Validity::VALID;
}

bool ChannelValidityMask::all_channels_valid() const {
  for (auto m : mask_) {
    if (m != ChannelDetection::Validity::VALID) {
      return false;
    }
  }
  return true;
}

void ChannelValidityMask::reset(ChannelDetection::Validity validity_value) {
  mask_.assign(this->n_channels(), validity_value);
}