WEEGChannelInfo.h 2.68 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
//---------------------------------------------------------------------------
//
// Project: OpenWalnut ( http://www.openwalnut.org )
//
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
// For more information see http://www.openwalnut.org/copying
//
// This file is part of OpenWalnut.
//
// OpenWalnut is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// OpenWalnut 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 Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
//
//---------------------------------------------------------------------------

#ifndef WEEGCHANNELINFO_H
#define WEEGCHANNELINFO_H

#include <cstddef>

#include <string>

#include <boost/shared_ptr.hpp>

34
#include "../common/math/linearAlgebra/WPosition.h"
35
#include "WEEGPositionsLibrary.h"
36 37
#include "exceptions/WDHException.h"
#include "io/WPagerEEG.h"
38

39 40 41 42 43 44 45


/**
 * Class which contains information about one channel of an EEG recording, read
 * from a WPagerEEG.
 * \ingroup dataHandler
 */
46
class WEEGChannelInfo // NOLINT
47 48 49 50 51
{
public:
    /**
     * Constructor
     *
52 53 54
     * \param channelID        number of this channel
     * \param pager            pager class which contains the data, read from a
     *                         file on demand
55 56
     * \param positionsLibrary class which contains the positions of the
     *                         electrodes
57
     */
58 59 60
    WEEGChannelInfo( std::size_t channelID,
                     boost::shared_ptr< WPagerEEG > pager,
                     boost::shared_ptr< WEEGPositionsLibrary > positionsLibrary );
61

62 63 64 65 66 67 68
    /**
     * Get the unit used by the recording of the channel.
     *
     * \return unit as string
     */
    std::string getUnit() const;

69 70 71 72 73 74 75
    /**
     * Get the label of the channel.
     *
     * \return label as string
     */
    std::string getLabel() const;

76 77 78 79 80
    /**
     * Get the position of the electrode.
     *
     * \return position
     */
81
    WPosition getPosition() const;
82

83 84
protected:
private:
85
    std::string m_unit; //!< unit used by the recording of the channel
86
    std::string m_label; //!< label of the channel
87
    bool m_hasPosition; //!< whether there is a valid position for this electrode
88
    WPosition m_position; //!< position of the electrode
89 90 91
};

#endif  // WEEGCHANNELINFO_H