BlinkenArea - GitList
Repositories
Blog
Wiki
libetherpix
Code
Commits
Branches
Tags
Search
Tree:
b320fb0
Branches
Tags
master
libetherpix
simulator
mapping.h
implement mapping table
Stefan Schuermans
commited
b320fb0
at 2017-06-11 13:35:25
mapping.h
Blame
History
Raw
/* * 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 void update(); protected: /// parameters of mapping: display := base + factor * video ** (1.0 / gamma) //@{ double m_base; double m_factor; double m_gamma; //@} /** mapping table from display values (from IPv4/UDP) to video values (to show on screen) */ uint8_t m_display2video[256]; }; #endif // #ifndef MAPPING_H