Remove color class since not needed any more
This commit is contained in:
parent
7dd778628d
commit
9fdb27b397
@ -1,121 +0,0 @@
|
|||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
||||||
* *
|
|
||||||
* Copyright (C) 2016-2018 Simon Stürz <simon.stuerz@guh.io> *
|
|
||||||
* *
|
|
||||||
* This file is part of nymea. *
|
|
||||||
* *
|
|
||||||
* This library 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 2.1 of the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This library 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 this library; If not, see *
|
|
||||||
* <http://www.gnu.org/licenses/>. *
|
|
||||||
* *
|
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
||||||
|
|
||||||
#include "extern-plugininfo.h"
|
|
||||||
|
|
||||||
AveaColor::AveaColor(const QColor &color):
|
|
||||||
m_color(color)
|
|
||||||
{
|
|
||||||
// Convert rgb to wrgb
|
|
||||||
|
|
||||||
qCDebug(dcElgato()) << "Convert color" << m_color.red() << m_color.green() << m_color.blue();
|
|
||||||
|
|
||||||
ColorRgbw rgbw = rgbToRgbw(m_color.red(), m_color.green(), m_color.blue());
|
|
||||||
m_white = rgbw.white;
|
|
||||||
m_red = rgbw.red;
|
|
||||||
m_green = rgbw.green;
|
|
||||||
m_blue = rgbw.blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
AveaColor::AveaColor(uint white, uint red, uint green, uint blue):
|
|
||||||
m_white(white),
|
|
||||||
m_red(red),
|
|
||||||
m_green(green),
|
|
||||||
m_blue(blue)
|
|
||||||
{
|
|
||||||
// Convert rgbw to rgb
|
|
||||||
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
QColor AveaColor::color() const
|
|
||||||
{
|
|
||||||
return m_color;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::white() const
|
|
||||||
{
|
|
||||||
return m_white;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::red() const
|
|
||||||
{
|
|
||||||
return m_red;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::green() const
|
|
||||||
{
|
|
||||||
return m_green;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::blue() const
|
|
||||||
{
|
|
||||||
return m_blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray AveaColor::toByteArray()
|
|
||||||
{
|
|
||||||
return QByteArray();
|
|
||||||
}
|
|
||||||
|
|
||||||
// The saturation is the colorfulness of a color relative to its own brightness.
|
|
||||||
uint AveaColor::saturation(ColorRgbw rgbw)
|
|
||||||
{
|
|
||||||
// Find the smallest of all three parameters.
|
|
||||||
float low = qMin(rgbw.red, qMin(rgbw.green, rgbw.blue));
|
|
||||||
// Find the highest of all three parameters.
|
|
||||||
float high = qMax(rgbw.red, qMax(rgbw.green, rgbw.blue));
|
|
||||||
// The difference between the last two variables
|
|
||||||
// divided by the highest is the saturation.
|
|
||||||
return qRound(100 * ((high - low) / high));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::getWhite(ColorRgbw rgbw)
|
|
||||||
{
|
|
||||||
return (255 - saturation(rgbw)) / 255 * (rgbw.red + rgbw.green + rgbw.blue) / 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint AveaColor::getWhite(ColorRgbw rgbw, int redMax, int greenMax, int blueMax)
|
|
||||||
{
|
|
||||||
// Set the maximum value for all colors.
|
|
||||||
rgbw.red = (float)rgbw.red / 255.0 * (float)redMax;
|
|
||||||
rgbw.green = (float)rgbw.green / 255.0 * (float)greenMax;
|
|
||||||
rgbw.blue = (float)rgbw.blue / 255.0 * (float)blueMax;
|
|
||||||
return (255 - saturation(rgbw)) / 255 * (rgbw.red + rgbw.green + rgbw.blue) / 3;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorRgbw AveaColor::rgbToRgbw(uint red, uint green, uint blue)
|
|
||||||
{
|
|
||||||
uint white = 0;
|
|
||||||
ColorRgbw rgbw = {red, green, blue, white};
|
|
||||||
rgbw.white = getWhite(rgbw);
|
|
||||||
return rgbw;
|
|
||||||
}
|
|
||||||
|
|
||||||
QDebug operator<<(QDebug dbg, const AveaColor &color)
|
|
||||||
{
|
|
||||||
dbg.nospace() << "AveaColor(" << color.color() << " | R:" << color.red() << " G:" << color.green() << "B:" << color.blue() << "W:" << color.white() << ")";
|
|
||||||
return dbg;
|
|
||||||
}
|
|
||||||
@ -1,68 +0,0 @@
|
|||||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
||||||
* *
|
|
||||||
* Copyright (C) 2016-2018 Simon Stürz <simon.stuerz@guh.io> *
|
|
||||||
* *
|
|
||||||
* This file is part of nymea. *
|
|
||||||
* *
|
|
||||||
* This library 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 2.1 of the License, or (at your option) any later version. *
|
|
||||||
* *
|
|
||||||
* This library 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 this library; If not, see *
|
|
||||||
* <http://www.gnu.org/licenses/>. *
|
|
||||||
* *
|
|
||||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
|
||||||
|
|
||||||
#ifndef AVEACOLOR_H
|
|
||||||
#define AVEACOLOR_H
|
|
||||||
|
|
||||||
#include <QObject>
|
|
||||||
#include <QColor>
|
|
||||||
#include <QDebug>
|
|
||||||
|
|
||||||
struct ColorRgbw {
|
|
||||||
uint red;
|
|
||||||
uint green;
|
|
||||||
uint blue;
|
|
||||||
uint white;
|
|
||||||
};
|
|
||||||
|
|
||||||
class AveaColor
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
AveaColor(const QColor &color);
|
|
||||||
AveaColor(uint white, uint red, uint green, uint blue);
|
|
||||||
|
|
||||||
QColor color() const;
|
|
||||||
|
|
||||||
uint white() const;
|
|
||||||
uint red() const;
|
|
||||||
uint green() const;
|
|
||||||
uint blue() const;
|
|
||||||
|
|
||||||
QByteArray toByteArray();
|
|
||||||
|
|
||||||
private:
|
|
||||||
QColor m_color;
|
|
||||||
uint m_white = 0;
|
|
||||||
uint m_red = 0;
|
|
||||||
uint m_green = 0;
|
|
||||||
uint m_blue = 0;
|
|
||||||
|
|
||||||
uint saturation(ColorRgbw rgbw);
|
|
||||||
uint getWhite(ColorRgbw rgbw);
|
|
||||||
uint getWhite(ColorRgbw rgbw, int redMax, int greenMax, int blueMax);
|
|
||||||
ColorRgbw rgbToRgbw(unsigned int red, unsigned int green, unsigned int blue);
|
|
||||||
};
|
|
||||||
|
|
||||||
QDebug operator<<(QDebug dbg, const AveaColor &color);
|
|
||||||
|
|
||||||
|
|
||||||
#endif // AVEACOLOR_H
|
|
||||||
Loading…
x
Reference in New Issue
Block a user