/*
* EtherPix simulator
*
* Copyright 2017 Stefan Schuermans <stefan schuermans info>
*
* This program 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, version 3 of the License.
*
*
* This program 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 Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MAPPING_H
#define MAPPING_H
#include <stdint.h>
/// mapping of input values to LED output values for a color channel
class Mapping
{
public:
/// color channel number
enum Channel {
Red,
Green,
Blue,
ChannelCount
};
public:
/// default constructor
Mapping();
/// constructor based on parameters
Mapping(double base, double factor, double gamma);
/// map display value to video value
uint8_t display2video(uint8_t display) const
{
return m_display2video[display];
}
protected:
/// update internal mapping table based on parameters