mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
73 lines
1.5 KiB
C++
73 lines
1.5 KiB
C++
|
|
#pragma once
|
|
|
|
// STL includes
|
|
#include <ctime>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
// Local includes
|
|
#include <utils/RgbColor.h>
|
|
|
|
// Forward class declarations
|
|
namespace Json { class Value; }
|
|
|
|
/**
|
|
* The Led structure contains the definition of the image portion used to determine a single led's
|
|
* color.
|
|
* <pre>
|
|
* |--------------------image--|
|
|
* | minX maxX |
|
|
* | |-----|maxY |
|
|
* | | | |
|
|
* | |-----|minY |
|
|
* | |
|
|
* | |
|
|
* | |
|
|
* |---------------------------|
|
|
* <endpre>
|
|
*/
|
|
struct Led
|
|
{
|
|
/** The index of the led */
|
|
unsigned index;
|
|
|
|
/** The minimum vertical scan line included for this leds color */
|
|
double minX_frac;
|
|
/** The maximum vertical scan line included for this leds color */
|
|
double maxX_frac;
|
|
/** The minimum horizontal scan line included for this leds color */
|
|
double minY_frac;
|
|
/** The maximum horizontal scan line included for this leds color */
|
|
double maxY_frac;
|
|
};
|
|
|
|
class LedString
|
|
{
|
|
public:
|
|
static LedString construct(const Json::Value& ledConfig, const Json::Value& colorConfig);
|
|
|
|
LedString();
|
|
|
|
~LedString();
|
|
|
|
const std::vector<Led>& leds() const;
|
|
|
|
private:
|
|
std::vector<Led> mLeds;
|
|
|
|
public:
|
|
/**
|
|
* Color adjustements per color
|
|
*/
|
|
struct
|
|
{
|
|
/** The color gradient */
|
|
double gamma;
|
|
/** The color offset */
|
|
double adjust;
|
|
/** The minimum required level for the led to turn on */
|
|
double blacklevel;
|
|
} red, green, blue;
|
|
};
|