mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Added 'rainbow' boot sequence
Moved color transform to utils lib
This commit is contained in:
parent
6ee94409dc
commit
3d02fecc7a
32
include/bootsequence/RainbowBootSequence.h
Normal file
32
include/bootsequence/RainbowBootSequence.h
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// QT includes
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
// Hyperion includes
|
||||||
|
#include <hyperion/Hyperion.h>
|
||||||
|
|
||||||
|
class RainbowBootSequence : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
RainbowBootSequence(Hyperion * hyperion);
|
||||||
|
|
||||||
|
void start();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void update();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QTimer _timer;
|
||||||
|
|
||||||
|
Hyperion * _hyperion;
|
||||||
|
|
||||||
|
int _priority;
|
||||||
|
|
||||||
|
std::vector<RgbColor> _ledColors;
|
||||||
|
int _iterationCounter;
|
||||||
|
};
|
||||||
|
|
@ -16,10 +16,8 @@
|
|||||||
#include <hyperion/PriorityMuxer.h>
|
#include <hyperion/PriorityMuxer.h>
|
||||||
|
|
||||||
// Forward class declaration
|
// Forward class declaration
|
||||||
namespace hyperion {
|
class HsvTransform;
|
||||||
class HsvTransform;
|
class ColorTransform;
|
||||||
class ColorTransform;
|
|
||||||
}
|
|
||||||
|
|
||||||
class Hyperion : public QObject
|
class Hyperion : public QObject
|
||||||
{
|
{
|
||||||
@ -74,10 +72,10 @@ private:
|
|||||||
|
|
||||||
PriorityMuxer _muxer;
|
PriorityMuxer _muxer;
|
||||||
|
|
||||||
hyperion::HsvTransform * _hsvTransform;
|
HsvTransform * _hsvTransform;
|
||||||
hyperion::ColorTransform * _redTransform;
|
ColorTransform * _redTransform;
|
||||||
hyperion::ColorTransform * _greenTransform;
|
ColorTransform * _greenTransform;
|
||||||
hyperion::ColorTransform * _blueTransform;
|
ColorTransform * _blueTransform;
|
||||||
|
|
||||||
LedDevice* _device;
|
LedDevice* _device;
|
||||||
|
|
||||||
|
@ -3,9 +3,6 @@
|
|||||||
// STL includes
|
// STL includes
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
namespace hyperion
|
|
||||||
{
|
|
||||||
|
|
||||||
/// Transform for a single color byte value
|
/// Transform for a single color byte value
|
||||||
///
|
///
|
||||||
/// Transforms are applied in the following order:
|
/// Transforms are applied in the following order:
|
||||||
@ -51,5 +48,3 @@ private:
|
|||||||
|
|
||||||
uint8_t _mapping[256];
|
uint8_t _mapping[256];
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace hyperion
|
|
30
include/utils/HsvTransform.h
Normal file
30
include/utils/HsvTransform.h
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
// STL includes
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
class HsvTransform
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HsvTransform();
|
||||||
|
HsvTransform(double saturationGain, double valueGain);
|
||||||
|
~HsvTransform();
|
||||||
|
|
||||||
|
void setSaturationGain(double saturationGain);
|
||||||
|
double getSaturationGain() const;
|
||||||
|
|
||||||
|
void setValueGain(double valueGain);
|
||||||
|
double getValueGain() const;
|
||||||
|
|
||||||
|
void transform(uint8_t & red, uint8_t & green, uint8_t & blue) const;
|
||||||
|
|
||||||
|
/// integer version of the conversion are faster, but a little less accurate
|
||||||
|
/// all values are unsigned 8 bit values and scaled between 0 and 255 except
|
||||||
|
/// for the hue which is a 16 bit number and scaled between 0 and 360
|
||||||
|
static void rgb2hsv(uint8_t red, uint8_t green, uint8_t blue, uint16_t & hue, uint8_t & saturation, uint8_t & value);
|
||||||
|
static void hsv2rgb(uint16_t hue, uint8_t saturation, uint8_t value, uint8_t & red, uint8_t & green, uint8_t & blue);
|
||||||
|
|
||||||
|
private:
|
||||||
|
double _saturationGain;
|
||||||
|
double _valueGain;
|
||||||
|
};
|
@ -3,7 +3,8 @@
|
|||||||
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include)
|
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include)
|
||||||
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc)
|
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc)
|
||||||
|
|
||||||
add_subdirectory(hyperion)
|
add_subdirectory(bootsequence)
|
||||||
add_subdirectory(dispmanx-grabber)
|
add_subdirectory(dispmanx-grabber)
|
||||||
|
add_subdirectory(hyperion)
|
||||||
add_subdirectory(jsonserver)
|
add_subdirectory(jsonserver)
|
||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
|
29
libsrc/bootsequence/CMakeLists.txt
Normal file
29
libsrc/bootsequence/CMakeLists.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
# Define the current source locations
|
||||||
|
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/bootsequence)
|
||||||
|
SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/bootsequence)
|
||||||
|
|
||||||
|
# Group the headers that go through the MOC compiler
|
||||||
|
SET(BootsequenceQT_HEADERS
|
||||||
|
${CURRENT_HEADER_DIR}/RainbowBootSequence.h
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(BootsequenceHEADERS
|
||||||
|
)
|
||||||
|
|
||||||
|
SET(BootsequenceSOURCES
|
||||||
|
${CURRENT_SOURCE_DIR}/RainbowBootSequence.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
QT4_WRAP_CPP(BootsequenceHEADERS_MOC ${BootsequenceQT_HEADERS})
|
||||||
|
|
||||||
|
add_library(bootsequence
|
||||||
|
${BootsequenceHEADERS}
|
||||||
|
${BootsequenceQT_HEADERS}
|
||||||
|
${BootsequenceHEADERS_MOC}
|
||||||
|
${BootsequenceSOURCES}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(bootsequence
|
||||||
|
hyperion
|
||||||
|
${QT_LIBRARIES})
|
54
libsrc/bootsequence/RainbowBootSequence.cpp
Normal file
54
libsrc/bootsequence/RainbowBootSequence.cpp
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
#include <utils/HsvTransform.h>
|
||||||
|
|
||||||
|
#include <bootsequence/RainbowBootSequence.h>
|
||||||
|
|
||||||
|
RainbowBootSequence::RainbowBootSequence(Hyperion * hyperion) :
|
||||||
|
_timer(),
|
||||||
|
_hyperion(hyperion),
|
||||||
|
_priority(0),
|
||||||
|
_ledColors(hyperion->getLedCount()),
|
||||||
|
_iterationCounter(hyperion->getLedCount())
|
||||||
|
{
|
||||||
|
for (unsigned iLed=0; iLed<_hyperion->getLedCount(); ++iLed)
|
||||||
|
{
|
||||||
|
RgbColor& color = _ledColors[iLed];
|
||||||
|
HsvTransform::hsv2rgb(iLed*360/_hyperion->getLedCount(), 255, 255, color.red, color.green, color.blue);
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned sequenceLength_ms = 3000;
|
||||||
|
|
||||||
|
_timer.setInterval(sequenceLength_ms/_hyperion->getLedCount());
|
||||||
|
_timer.setSingleShot(false);
|
||||||
|
QObject::connect(&_timer, SIGNAL(timeout()), this, SLOT(update()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void RainbowBootSequence::start()
|
||||||
|
{
|
||||||
|
_timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RainbowBootSequence::update()
|
||||||
|
{
|
||||||
|
if (_iterationCounter == 0)
|
||||||
|
{
|
||||||
|
_timer.stop();
|
||||||
|
_hyperion->clear(_priority);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Rotate the colors left
|
||||||
|
const RgbColor headColor = _ledColors.front();
|
||||||
|
for (unsigned i=1; i<_ledColors.size(); ++i)
|
||||||
|
{
|
||||||
|
_ledColors[i-1] = _ledColors[i];
|
||||||
|
}
|
||||||
|
_ledColors.back() = headColor;
|
||||||
|
|
||||||
|
// Write the colors to hyperion
|
||||||
|
_hyperion->setColors(_priority, _ledColors, -1);
|
||||||
|
|
||||||
|
// Decrease the loop count
|
||||||
|
--_iterationCounter;
|
||||||
|
}
|
||||||
|
}
|
@ -27,6 +27,28 @@ namespace hyperion
|
|||||||
|
|
||||||
/// The size of detected border (negative if not applicable)
|
/// The size of detected border (negative if not applicable)
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Compares this BlackBorder to the given other BlackBorder
|
||||||
|
///
|
||||||
|
/// @param[in] other The other BlackBorder
|
||||||
|
///
|
||||||
|
/// @return True if this is the same border as other
|
||||||
|
///
|
||||||
|
inline bool operator== (const BlackBorder& other) const
|
||||||
|
{
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case none:
|
||||||
|
case unknown:
|
||||||
|
return other.type == type;
|
||||||
|
case horizontal:
|
||||||
|
case vertical:
|
||||||
|
return type == other.type && size == other.size;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
|
@ -13,7 +13,7 @@ BlackBorderProcessor::BlackBorderProcessor(
|
|||||||
_blurRemoveCnt(blurRemoveCnt),
|
_blurRemoveCnt(blurRemoveCnt),
|
||||||
_detector(),
|
_detector(),
|
||||||
_currentBorder({BlackBorder::unknown, 0}),
|
_currentBorder({BlackBorder::unknown, 0}),
|
||||||
_lastDetectedBorder({BlackBorder::unknown, 0}),
|
_previousDetectedBorder({BlackBorder::unknown, 0}),
|
||||||
_consistentCnt(0)
|
_consistentCnt(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@ -32,35 +32,50 @@ bool BlackBorderProcessor::process(const RgbImage& image)
|
|||||||
{
|
{
|
||||||
const BlackBorder imageBorder = _detector.process(image);
|
const BlackBorder imageBorder = _detector.process(image);
|
||||||
|
|
||||||
if (imageBorder.type == _lastDetectedBorder.type && imageBorder.size == _lastDetectedBorder.size)
|
if (imageBorder == _previousDetectedBorder)
|
||||||
{
|
{
|
||||||
++_consistentCnt;
|
++_consistentCnt;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_lastDetectedBorder = imageBorder;
|
_previousDetectedBorder = imageBorder;
|
||||||
_consistentCnt = 0;
|
_consistentCnt = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_currentBorder == imageBorder)
|
||||||
|
{
|
||||||
|
// No change required
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool borderChanged = false;
|
bool borderChanged = false;
|
||||||
switch (_lastDetectedBorder.type)
|
switch (imageBorder.type)
|
||||||
{
|
{
|
||||||
case BlackBorder::none:
|
case BlackBorder::none:
|
||||||
borderChanged = (_currentBorder.type != BlackBorder::none);
|
if (_consistentCnt == 0)
|
||||||
_currentBorder = _lastDetectedBorder;
|
{
|
||||||
|
_currentBorder = imageBorder;
|
||||||
|
borderChanged = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case BlackBorder::horizontal:
|
case BlackBorder::horizontal:
|
||||||
case BlackBorder::vertical:
|
if (_currentBorder.type == BlackBorder::vertical || imageBorder.size < _currentBorder.size || _consistentCnt == _borderSwitchCnt)
|
||||||
if (_consistentCnt == _borderSwitchCnt)
|
|
||||||
{
|
{
|
||||||
_currentBorder = _lastDetectedBorder;
|
_currentBorder = imageBorder;
|
||||||
|
borderChanged = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BlackBorder::vertical:
|
||||||
|
if (_currentBorder.type == BlackBorder::horizontal || imageBorder.size < _currentBorder.size || _consistentCnt == _borderSwitchCnt)
|
||||||
|
{
|
||||||
|
_currentBorder = imageBorder;
|
||||||
borderChanged = true;
|
borderChanged = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BlackBorder::unknown:
|
case BlackBorder::unknown:
|
||||||
if (_consistentCnt == _unknownSwitchCnt)
|
if (_consistentCnt == _unknownSwitchCnt)
|
||||||
{
|
{
|
||||||
_currentBorder = _lastDetectedBorder;
|
_currentBorder = imageBorder;
|
||||||
borderChanged = true;
|
borderChanged = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -30,7 +30,7 @@ namespace hyperion
|
|||||||
|
|
||||||
BlackBorder _currentBorder;
|
BlackBorder _currentBorder;
|
||||||
|
|
||||||
BlackBorder _lastDetectedBorder;
|
BlackBorder _previousDetectedBorder;
|
||||||
|
|
||||||
unsigned _consistentCnt;
|
unsigned _consistentCnt;
|
||||||
};
|
};
|
||||||
|
@ -17,8 +17,6 @@ SET(Hyperion_HEADERS
|
|||||||
|
|
||||||
${CURRENT_SOURCE_DIR}/BlackBorderDetector.h
|
${CURRENT_SOURCE_DIR}/BlackBorderDetector.h
|
||||||
${CURRENT_SOURCE_DIR}/BlackBorderProcessor.h
|
${CURRENT_SOURCE_DIR}/BlackBorderProcessor.h
|
||||||
${CURRENT_SOURCE_DIR}/ColorTransform.h
|
|
||||||
${CURRENT_SOURCE_DIR}/HsvTransform.h
|
|
||||||
${CURRENT_SOURCE_DIR}/ImageToLedsMap.h
|
${CURRENT_SOURCE_DIR}/ImageToLedsMap.h
|
||||||
${CURRENT_SOURCE_DIR}/LedDeviceTest.h
|
${CURRENT_SOURCE_DIR}/LedDeviceTest.h
|
||||||
${CURRENT_SOURCE_DIR}/LedDeviceWs2801.h
|
${CURRENT_SOURCE_DIR}/LedDeviceWs2801.h
|
||||||
@ -33,8 +31,6 @@ SET(Hyperion_SOURCES
|
|||||||
|
|
||||||
${CURRENT_SOURCE_DIR}/BlackBorderDetector.cpp
|
${CURRENT_SOURCE_DIR}/BlackBorderDetector.cpp
|
||||||
${CURRENT_SOURCE_DIR}/BlackBorderProcessor.cpp
|
${CURRENT_SOURCE_DIR}/BlackBorderProcessor.cpp
|
||||||
${CURRENT_SOURCE_DIR}/ColorTransform.cpp
|
|
||||||
${CURRENT_SOURCE_DIR}/HsvTransform.cpp
|
|
||||||
${CURRENT_SOURCE_DIR}/ImageToLedsMap.cpp
|
${CURRENT_SOURCE_DIR}/ImageToLedsMap.cpp
|
||||||
${CURRENT_SOURCE_DIR}/LedDeviceWs2801.cpp
|
${CURRENT_SOURCE_DIR}/LedDeviceWs2801.cpp
|
||||||
${CURRENT_SOURCE_DIR}/LedDeviceTest.cpp
|
${CURRENT_SOURCE_DIR}/LedDeviceTest.cpp
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include <cstdint>
|
|
||||||
|
|
||||||
namespace hyperion
|
|
||||||
{
|
|
||||||
|
|
||||||
class HsvTransform
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
HsvTransform();
|
|
||||||
HsvTransform(double saturationGain, double valueGain);
|
|
||||||
~HsvTransform();
|
|
||||||
|
|
||||||
void setSaturationGain(double saturationGain);
|
|
||||||
double getSaturationGain() const;
|
|
||||||
|
|
||||||
void setValueGain(double valueGain);
|
|
||||||
double getValueGain() const;
|
|
||||||
|
|
||||||
void transform(uint8_t & red, uint8_t & green, uint8_t & blue) const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
/// integer version of the conversion are faster, but a little less accurate
|
|
||||||
/// all values are unsigned 8 bit values and scaled between 0 and 255 except
|
|
||||||
/// for the hue which is a 16 bit number and scaled between 0 and 360
|
|
||||||
static void rgb2hsv(uint8_t red, uint8_t green, uint8_t blue, uint16_t & hue, uint8_t & saturation, uint8_t & value);
|
|
||||||
static void hsv2rgb(uint16_t hue, uint8_t saturation, uint8_t value, uint8_t & red, uint8_t & green, uint8_t & blue);
|
|
||||||
|
|
||||||
private:
|
|
||||||
double _saturationGain;
|
|
||||||
double _valueGain;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace hyperion
|
|
@ -13,10 +13,9 @@
|
|||||||
|
|
||||||
#include "LedDeviceWs2801.h"
|
#include "LedDeviceWs2801.h"
|
||||||
#include "LedDeviceTest.h"
|
#include "LedDeviceTest.h"
|
||||||
#include "ColorTransform.h"
|
|
||||||
#include "HsvTransform.h"
|
|
||||||
|
|
||||||
using namespace hyperion;
|
#include <utils/ColorTransform.h>
|
||||||
|
#include <utils/HsvTransform.h>
|
||||||
|
|
||||||
LedDevice* constructDevice(const Json::Value& deviceConfig)
|
LedDevice* constructDevice(const Json::Value& deviceConfig)
|
||||||
{
|
{
|
||||||
|
@ -2,9 +2,10 @@
|
|||||||
// Hyperion includes
|
// Hyperion includes
|
||||||
#include <hyperion/ImageProcessor.h>
|
#include <hyperion/ImageProcessor.h>
|
||||||
|
|
||||||
|
#include <utils/ColorTransform.h>
|
||||||
|
|
||||||
// Local-Hyperion includes
|
// Local-Hyperion includes
|
||||||
#include "BlackBorderProcessor.h"
|
#include "BlackBorderProcessor.h"
|
||||||
#include "ColorTransform.h"
|
|
||||||
#include "ImageToLedsMap.h"
|
#include "ImageToLedsMap.h"
|
||||||
|
|
||||||
using namespace hyperion;
|
using namespace hyperion;
|
||||||
|
@ -6,9 +6,13 @@ SET(CURRENT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/libsrc/utils)
|
|||||||
add_library(hyperion-utils
|
add_library(hyperion-utils
|
||||||
${CURRENT_HEADER_DIR}/RgbColor.h
|
${CURRENT_HEADER_DIR}/RgbColor.h
|
||||||
${CURRENT_HEADER_DIR}/RgbImage.h
|
${CURRENT_HEADER_DIR}/RgbImage.h
|
||||||
|
${CURRENT_HEADER_DIR}/ColorTransform.h
|
||||||
|
${CURRENT_HEADER_DIR}/HsvTransform.h
|
||||||
|
|
||||||
${CURRENT_SOURCE_DIR}/RgbColor.cpp
|
${CURRENT_SOURCE_DIR}/RgbColor.cpp
|
||||||
${CURRENT_SOURCE_DIR}/RgbImage.cpp
|
${CURRENT_SOURCE_DIR}/RgbImage.cpp
|
||||||
|
${CURRENT_SOURCE_DIR}/ColorTransform.cpp
|
||||||
|
${CURRENT_SOURCE_DIR}/HsvTransform.cpp
|
||||||
|
|
||||||
${CURRENT_HEADER_DIR}/jsonschema/JsonFactory.h
|
${CURRENT_HEADER_DIR}/jsonschema/JsonFactory.h
|
||||||
${CURRENT_HEADER_DIR}/jsonschema/JsonSchemaChecker.h
|
${CURRENT_HEADER_DIR}/jsonschema/JsonSchemaChecker.h
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
// STL includes
|
// STL includes
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
#include "ColorTransform.h"
|
#include <utils/ColorTransform.h>
|
||||||
|
|
||||||
using namespace hyperion;
|
|
||||||
|
|
||||||
ColorTransform::ColorTransform() :
|
ColorTransform::ColorTransform() :
|
||||||
_threshold(0),
|
_threshold(0),
|
@ -1,6 +1,4 @@
|
|||||||
#include "HsvTransform.h"
|
#include <utils/HsvTransform.h>
|
||||||
|
|
||||||
using namespace hyperion;
|
|
||||||
|
|
||||||
HsvTransform::HsvTransform() :
|
HsvTransform::HsvTransform() :
|
||||||
_saturationGain(1.0),
|
_saturationGain(1.0),
|
@ -3,6 +3,7 @@ add_executable(hyperiond
|
|||||||
hyperiond.cpp)
|
hyperiond.cpp)
|
||||||
|
|
||||||
target_link_libraries(hyperiond
|
target_link_libraries(hyperiond
|
||||||
|
bootsequence
|
||||||
hyperion
|
hyperion
|
||||||
dispmanx-grabber
|
dispmanx-grabber
|
||||||
jsonserver)
|
jsonserver)
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
// Hyperion includes
|
// Hyperion includes
|
||||||
#include <hyperion/Hyperion.h>
|
#include <hyperion/Hyperion.h>
|
||||||
|
#include <bootsequence/RainbowBootSequence.h>
|
||||||
|
|
||||||
// Dispmanx grabber includes
|
// Dispmanx grabber includes
|
||||||
#include <dispmanx-grabber/DispmanxWrapper.h>
|
#include <dispmanx-grabber/DispmanxWrapper.h>
|
||||||
@ -44,6 +45,9 @@ int main(int argc, char** argv)
|
|||||||
Hyperion hyperion(configFile);
|
Hyperion hyperion(configFile);
|
||||||
std::cout << "Hyperion created and initialised" << std::endl;
|
std::cout << "Hyperion created and initialised" << std::endl;
|
||||||
|
|
||||||
|
RainbowBootSequence bootSequence(&hyperion);
|
||||||
|
bootSequence.start();
|
||||||
|
|
||||||
DispmanxWrapper dispmanx(64, 64, 10, &hyperion);
|
DispmanxWrapper dispmanx(64, 64, 10, &hyperion);
|
||||||
dispmanx.start();
|
dispmanx.start();
|
||||||
std::cout << "Frame grabber created and started" << std::endl;
|
std::cout << "Frame grabber created and started" << std::endl;
|
||||||
|
@ -2,9 +2,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
#include <../../libsrc/hyperion/ColorTransform.h>
|
#include <utils/ColorTransform.h>
|
||||||
|
|
||||||
using namespace hyperion;
|
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user