diff --git a/elgato/aveacolor.cpp b/elgato/aveacolor.cpp deleted file mode 100644 index dd4b6f9e..00000000 --- a/elgato/aveacolor.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * * - * Copyright (C) 2016-2018 Simon Stürz * - * * - * 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 * - * . * - * * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#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; -} diff --git a/elgato/aveacolor.h b/elgato/aveacolor.h deleted file mode 100644 index 352e4b29..00000000 --- a/elgato/aveacolor.h +++ /dev/null @@ -1,68 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * * - * Copyright (C) 2016-2018 Simon Stürz * - * * - * 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 * - * . * - * * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#ifndef AVEACOLOR_H -#define AVEACOLOR_H - -#include -#include -#include - -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