mirror of
				https://github.com/hyperion-project/hyperion.ng.git
				synced 2025-03-01 10:33:28 +00:00 
			
		
		
		
	%s/LedUdpDevice/ProviderUdp/g git mv LedUdpDevice.cpp ProviderUdp.cpp git mv LedUdpDevice.h ProviderUdp.h vi `grep -l LedHID *` %s/LedHIDDevice/ProviderHID/g git mv LedHIDDevice.cpp ProviderHID.cpp git mv LedHIDDevice.h ProviderHID.h vi `grep -l LedRs *` %s/LedRs232Device/ProviderRs232/g git mv LedRs232Device.cpp ProviderRs232.cpp git mv LedRs232Device.h ProviderRs232.h vi `grep -l LedSpi *` %s/LedSpiDevice/ProviderSpi/g git mv LedSpiDevice.cpp ProviderSpi.cpp git mv LedSpiDevice.h ProviderSpi.h
		
			
				
	
	
		
			46 lines
		
	
	
		
			990 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			990 B
		
	
	
	
		
			C++
		
	
	
	
	
	
 | 
						|
// Hyperion includes
 | 
						|
#include "LedDevicePaintpack.h"
 | 
						|
 | 
						|
// Use out report HID device
 | 
						|
LedDevicePaintpack::LedDevicePaintpack(const Json::Value &deviceConfig)
 | 
						|
	: ProviderHID(deviceConfig)
 | 
						|
{
 | 
						|
	_useFeature = false;
 | 
						|
}
 | 
						|
 | 
						|
LedDevice* LedDevicePaintpack::construct(const Json::Value &deviceConfig)
 | 
						|
{
 | 
						|
	return new LedDevicePaintpack(deviceConfig);
 | 
						|
}
 | 
						|
 | 
						|
int LedDevicePaintpack::write(const std::vector<ColorRgb> & ledValues)
 | 
						|
{
 | 
						|
	if (_ledBuffer.size() < 2 + ledValues.size()*3)
 | 
						|
	{
 | 
						|
		_ledBuffer.resize(2 + ledValues.size()*3, uint8_t(0));
 | 
						|
		_ledBuffer[0] = 3;
 | 
						|
		_ledBuffer[1] = 0;
 | 
						|
	}
 | 
						|
 | 
						|
	auto bufIt = _ledBuffer.begin()+2;
 | 
						|
	for (const ColorRgb & ledValue : ledValues)
 | 
						|
	{
 | 
						|
		*bufIt = ledValue.red;
 | 
						|
		++bufIt;
 | 
						|
		*bufIt = ledValue.green;
 | 
						|
		++bufIt;
 | 
						|
		*bufIt = ledValue.blue;
 | 
						|
		++bufIt;
 | 
						|
	}
 | 
						|
 | 
						|
	return writeBytes(_ledBuffer.size(), _ledBuffer.data());
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
int LedDevicePaintpack::switchOff()
 | 
						|
{
 | 
						|
	std::fill(_ledBuffer.begin() + 2, _ledBuffer.end(), uint8_t(0));
 | 
						|
	return writeBytes(_ledBuffer.size(), _ledBuffer.data());
 | 
						|
}
 |